4. Alios 指令集使用

4.1. 系统信息

4.1.1. help

该命令将打印 alios 所有命令列表并简要描述每个命令的作用。

--> help
    --> ================ AliOS Things Command List ==============
    --> help           : print this
    --> reboot         : reboot system
    --> proc_codec     : codec info
    --> proc_rc        : rc info
    --> proc_jpege     : jpeg encode info
    --> proc_h264e     : h264 encode info
    --> proc_h265e     : h265 encode info
    --> proc_venc      : venc info
    --> proc_vdec      : vdec info
    --> proc_ai        : audio info
    --> proc_ao        : ao info
    --> proc_mipi_rx   : proc mipi rx

4.1.2. reboot

重启 alios 系统,Linux 系统也会随之重启。

4.1.3. ccs

console cli console show,用于显示命令台界面内容。
--> ccs
    --> -------- console show -----------
    --> id    name     att
    --> 1    cli-uart  0  c

4.1.4. sysver

显示系统 kernel 版本。
--> sysver
    --> kernel version :12000

4.1.5. time

显示系统启动运动到现在的毫秒数。
--> time
    --> UP time 263888 ms

4.1.6. msleep

以毫秒时间休眠。系统休眠 2000ms 后重启。

--> msleep 2000
    -->                 #系统休眠2000ms后重启

4.1.7. f

表示运行一个函数(f 后需要跟函数名)。
--> f
    --> para error

4.1.8. devname

打印板端设备的名称。该设备是 cv181xc 系列的 evb 板。
--> devname
    --> device name: cv181xc_evb

4.1.9. err2cli

系统从 panic 状态转换到控制台。
--> err2cli 0
    --> set panic_runto_cli flag:0x0

--> err2cli 1
    --> set panic_runto_cli flag:0x21314916

4.2. 进程信息

4.2.1. 多媒体进程

4.2.1.1. proc_vb

该指令用于记录当前 VB 模块的 buffer 使用情况(VB: Video Block)。

_images/proc_vb.png

4.2.1.2. proc_sys

该指令用来记录当前 SYS 模块的使用情况。

_images/proc_sys.png

4.2.1.3. proc_vi_dbg

该指令用来打印 vi 进程的 debug 信息。

_images/proc_vi_dbg.png

4.2.1.4. proc_vi

该指令记录当前视频输入设备及信道的属性配置以及状态信息。

_images/proc_vi.png

模块参数:

  • VI MODE (VI模式)

  • VI DEV ATTR1 (VI设备特征)

  • VI DEV ATTR2 (VI设备特征)

  • VI BIND ATTR (VI关联特征)

  • VI DEV TIMING ATTR (VI时间特征)

  • VI CHN ATTR1 (VI通道特征)

  • VI CHN OUTPUT RESOLUTION (VI通道输出分辨率)

  • VI CHN ROTATE INFO (VI通道旋转信息)

  • VI CHN EARLY INTERRUPT INFO (VI通道中断信息)

  • VI CHN CROP INFO (VI通道裁剪信息)

  • VI CHN STATUS (VI通道状态)

4.2.1.5. proc_gdc

该指令用于记录 GDC 模块最近完成的若干任务、最近耗时最大的任务及历史累计信息。

_images/proc_gdc.png

4.2.1.6. proc_mipi_rx

该指令用于显示 mipi_rx 进程的信息。

_images/proc_mipi_rx.png

4.2.1.7. proc_vo

该指令用于记录当前 VO 的使用状况及其属性配置,包含设备状态、视频层状态和通道状态。

用于动态获取 VO 的使用状态以调试测试。

_images/proc_vo.png

4.2.1.8. proc_rgn

该指令用于记录当前区域资源信息。

_images/proc_rgn.png

4.2.1.9. proc_codec

该指令用于显示编码器与解码器的信息。

_images/proc_codec.png

4.2.1.10. proc_vdec

该指令用于显示视频解码器的信息。

_images/proc_vdec.png

4.2.1.11. proc_rc

该指令用于显示当前编码码率控制信息。

_images/proc_rc.png

4.2.1.12. proc_jpege

该指令用于显示 JPEG 编码过程中各通道编码属性状态。

_images/proc_jpege.png

4.2.1.13. proc_h264e

该指令用于显示 H.264 视频编码属性配置以及状态信息。

_images/proc_h264e.png

4.2.1.14. proc_h265e

该指令用于显示 H.265 视频编码属性配置以及状态信息。

_images/proc_h265e.png

4.2.1.15. proc_venc

该指令用于显示当前视频编码属性配置以及状态信息。

_images/proc_venc.png

4.2.1.16. testMedia_switch_pipeline

该指令用于测试媒体切换 pipeline。

_images/testMedia_switch_pipeline.png

4.2.1.17. testMedia_video_Deinit

该指令用于测试媒体视频资源释放。

_images/testMedia_video_Deinit.png

4.2.1.18. testMedia_video_init

该指令用于测试媒体视频初始化。

4.2.1.19. dump_isp_pqgram

该指令用于显示 dump_isp 参数信息。

_images/dump_isp_pqgram.png

4.2.1.20. proc_log

该指令用于显示当前各个模块的调试级别。

_images/proc_log.png

4.2.2. ipcm 进程

4.2.2.1. ipcm_dbg

该指令用于打印大小核间通信调试信息。

_images/ipcm_dbg.png

4.2.2.2. ipcm_dbg pool_info

该指令用于显示大小核通信 buffer 池使用情况。

_images/ipcm_dbg_pool_info.png

4.2.2.3. ipcm_dbg log0_on

该指令用于打开 ipcm 的第一个调试日志。

4.2.2.4. ipcm_dbg log0_off

该指令用于关闭 ipcm 的第一个调试日志。

4.2.2.5. ipcm_dbg logall_on

该指令用于打开 ipcm 的所有调试日志。

4.2.2.6. ipcm_dbg logall_off

该指令用于关闭 ipcm 的所有调试日志。

4.2.3. 进程整体信息

4.2.3.1. tasklist

该指令用于打印进程列表。

::
–> tasklist

–> ——————————————————————————– –> Name ID State Prio StackSize MinFreesize Runtime Candidate –> ——————————————————————————– –> dyn_mem_proc_task 1 PEND 6 4096 3368 1031 N –> idle_task 2 RDY 61 4288 3720 141756526 N –> DEFAULT-WORKQUEUE 3 PEND 20 4096 3432 153 N –> timer_task 4 PEND 30 3840 3112 58990 N –> cpu_stats 5 SLP 60 2640 2016 50717 N –> app_task 6 SLP 32 8192 4168 206587 N –> cli-uart 7 RDY 60 8192 6392 444838 Y –> heartbeat 8 SLP 27 1024 400 62195 N –> _isp_post_thread 9 PEND 17 4096 3344 164 N –> cvitask_isp_pre 10 PEND 17 4096 2896 117 N –> cvitask_isp_err 11 PEND 17 4096 3344 118 N –> gdc_job_worker 12 PEND 17 4096 3200 58340 N –> MediaMsg 13 PEND 16 103424 101416 45291 N –> workq_thread 14 PEND 22 4096 3344 56578 N –> workq_thread 15 PEND 22 4096 3344 35171 N –> workq_thread 16 PEND 22 4096 3344 24530 N –> workq_thread 17 PEND 22 4096 3344 38924 N –> anon proc 18 PEND 32 8192 7504 14625 N –> ——————————————————————————–

  • Name 是task名称

  • ID 是taskID

  • State 是task现在状态

  • Prio 指的是优先级

  • StackSize 指的是栈空间M

  • inFreesize 指的是最小自由块大小

  • Runtime 指的是运行时间

4.2.3.2. taskbt

该指令用于通过 task ID 查看任务的调用栈信息。

::
–> taskbt

–> task_btn <taskname>

–> taskbt 6

–> task name : app_task –> ========== Call stack ========== –> backtrace : 0x8220150A –> backtrace : 0x822EFD16 –> backtrace : 0x82220822 –> backtrace : ^task entry^ –> ========== End ==========

–> taskbt 7

–> task name : cli-uart –> ========== Call stack ========== –> backtrace : 0x823FC1C0 –> Status of task is ‘Running’, Can not backtrace! –> ========== End ==========

4.2.3.3. taskbtn

该指令用于通过 task Name 查看任务的调用栈信息。

--> taskbtn
    --> task_btn <taskname>

--> taskbtn cli-uart
    --> ========== Call stack ==========
    --> backtrace : 0x8221CD40
    --> Status of task is 'Running', Can not backtrace!
    --> ==========    End     ==========

--> taskbtn app_task
    --> ========== Call stack ==========
    --> backtrace : 0x8220150A
    --> backtrace : 0x822EFD16
    --> backtrace : 0x82220822
    --> backtrace : ^task entry^
    --> ==========    End     ==========

参数:

  • Name: 任务名称

  • ID: 任务 ID

  • State: 任务现在状态

  • Priorio: 优先级

  • StackSize: 栈空间

  • MinFreesize: 最小自由块大小

  • Runtime: 运行时间

4.2.4. CPU 信息

4.2.4.1. cpuusage

该指令用于查看 CPU 使用率,会进行实时更新。

--> cpuusage
    --> -----------------------
    --> CPU usage :  0.17%
    --> ---------------------------
    --> Name               %CPU
    --> ---------------------------
    --> dyn_mem_proc_task    0.00
    --> idle_task           99.83
    --> DEFAULT-WORKQUEUE    0.00
    --> timer_task           0.00
    --> cpu_stats            0.00
    --> app_task             0.00
    --> cli-uart             0.00
    --> heartbeat            0.00
    --> _isp_post_thread     0.00
    --> cvitask_isp_pre      0.00
    --> cvitask_isp_err      0.00
    --> gdc_job_worker       0.00
    --> MediaMsg             0.00
    --> workq_thread         0.00
    --> workq_thread         0.00
    --> workq_thread         0.00
    --> workq_thread         0.00
    --> anon proc            0.00
    --> cpuusage             0.16
    --> ---------------------------

4.3. 内存信息

4.3.1. 查看内存信息

4.3.1.1. p

该指令用于打印物理内存内容。
::
–> p

–> p <addr> <nunits> <width> –> addr : address to display –> nunits: number of units to display (default is 16) –> width : width of unit, 1/2/4 (default is 4)

p<addr> <nunits> <width>

--> p 0x80000000 64 2
  --> 0x80000000: 0433 0005 84b3 0005 0933 0006 00ef 59c0
  --> 0x80000010: 0833 0005 0533 0004 85b3 0004 0633 0009
  --> 0x80000020: 58fd 0463 0118 1d63 0b05 0817 0000 0813
  --> 0x80000030: 3c68 4885 282f 0118 1463 0a08 0297 0000
  --> 0x80000040: 8293 3c42 0317 0000 0313 fbc3 b023 0062
  --> 0x80000050: 0297 0000 8293 3b82 b283 0002 03b3 4053
  --> 0x80000060: 0e17 0000 0e13 388e 3023 007e 6297 0001
  --> 0x80000070: 8293 4342 7317 0001 0313 4943 8363 0662

4.3.1.2. p _offcheck

该指令用于打印物理内存内容,但是不进行内存地址合理性检查

::
–> p 0x800000

–> p <addr> <nunits> <width> –> addr : address to display –> nunits: number of units to display (default is 16) –> width : width of unit, 1/2/4 (default is 4) –> –> #使用p打印非法地址,会提示打印p打印物理地址的用法,使用p_offcheck 打印非法地址会陷入dump状态。 –> (0x82402410): 0x20202020 0x20202020 0x19191919 0x19191919 –> (0x82402420): 0x18181818 0x18181818 0x09090909 0x09090909 –> (0x82402430): 0x08080808 0x08080808 0x8221FCCC 0x00000000 –> !!!!!!!!!! dump end !!!!!!!!!!

4.3.2. 修改内存信息

4.3.2.1. m

该指令用于修改物理内存内容。

::
–> m

–> m <addr> <value> <width> –> addr : address to modify –> value : new value (default is 0) –> width : width of unit, 1/2/4 (default is 4)

_images/m.png
  • 第一个参数:物理地址

  • 第二个参数:要修改的 新数值 (不填写,默认修改为0)

  • 第三个参数:修改的字节个数(可选项为 1/2/4 ,不填写,默认修改4个字节)

  • 左侧 m 0x80000000 1 4 指的是将 0x80000000 地址内容修改4Byte修改的新数值为1,

  • 修改后该地址处内容由00050433修改为00000001

4.3.3. 内存调试信息

4.3.3.1. ddumpsys

该指令用于显示系统调试信息。

4.3.3.2. dumpsys mm

该指令用于显示系统调试内存信息。

-->  dumpsys mm
    -->  ---------------------------------------------------------------------------
    -->  [HEAP]| TotalSz    | FreeSz     | UsedSz     | MinFreeSz  | MaxFreeBlkSz  |
    -->        | 0x005066C0 | 0x004AE580 | 0x00058140 | 0x004AE100 | 0x004AE580    |
    -->  ---------------------------------------------------------------------------
    -->  ---------------------------------------------------------------------------
    -->  [HEAP]| TotalSz    | FreeSz     | UsedSz     | MinFreeSz  | MaxFreeBlkSz  |
    -->        | 0x015A0000 | 0x00E3BCC0 | 0x00764340 | 0x00E3BCC0 | 0x00E3BCC0    |
    -->  ---------------------------------------------------------------------------

4.3.3.3. dumpsys mm_info

该指令用于显示alios内存分区信息。

_images/dumpsys_mm_info.png

4.3.3.4. dumpsys mm_info_resv

该指令用于显示alios resv分区内存信息。
_images/dump_sys_mm_info_resv.png

4.3.3.5. mmlk

该指令用于显示内存泄漏信息。
::
–> mmlk

–> memory leak chec—————–All new alloced blocks:—————- –> Blk_Addr Stat Len Chk Caller Point –> ————–New alloced blocks info ends.————- –> —————–All new alloced blocks:—————- –> Blk_Addr Stat Len Chk Caller Point –> ————–New alloced blocks info ends.————- –> k start. –> Add tag 1 when malloc

4.4. 调试信息

4.4.1. debug

该指令用于显示系统 debug 信息,包括堆栈信息、任务列表、信号量以及锁的等待情况。

_images/debug.png