更新时间:2021-07-08 GMT+08:00
分享

task

命令功能

task命令用于查询系统任务信息。

命令格式

task [ID]

参数说明

表1 参数说明

参数

参数说明

取值范围

ID

任务ID号,输入形式以十进制表示或十六进制表示皆可

[0, 0xFFFFFFFF]

使用指南

  • 参数缺省时,默认打印全部运行任务信息。
  • task后加ID,当ID参数在[0, 64]范围内时,返回指定ID号任务的任务名、任务ID、任务的调用栈信息(最大支持15层调用栈),其他取值时返回参数错误的提示。如果指定ID号对应的任务未创建,则提示。
  • 如果在task命令中,发现任务是Invalid状态,请确保pthread_create创建函数时有进行如下操作之一,否则资源无法正常回收。
    • 选择的是阻塞模式应该调用pthread_join()函数。
    • 选择的是非阻塞模式应该调用pthread_detach()函数。
    • 如果不想调用前面两个接口,就需要设置pthread_attr_t状态为PTHREAD_STATE_DETACHED,将attr参数传入pthread_create,此设置和调用pthread_detach函数一样,都是非阻塞模式。

使用实例

举例1:输入task 6。

举例2:输入task。

输出说明

执行task 0xb,查询ID号为b的任务信息:

Huawei LiteOS # task 0xb
TaskName = SerialEntryTask
TaskId = 0xb
*******backtrace begin*******
traceback 0 -- lr = 0x1d804    fp = 0xa86bc
traceback 1 -- lr = 0x1da40    fp = 0xa86e4
traceback 2 -- lr = 0x20154    fp = 0xa86fc
traceback 3 -- lr = 0x258e4    fp = 0xa8714
traceback 4 -- lr = 0x242f4    fp = 0xa872c
traceback 5 -- lr = 0x123e4    fp = 0xa8754
traceback 6 -- lr = 0x2a9d8    fp = 0xb0b0b0b

执行task,查询所有任务信息:

Huawei LiteOS # task
Name          TaskEntryAddr    TID   Priority  Status     StackSize  WaterLine  StackPoint  TopOfStack EventMask SemID  CPUUSE  CPUUSE10s  CPUUSE1s MEMUSE
----          ------------     ---   -------   --------   ---------  --------   ----------  ---------- -------  -----  -------  ---------  ------  -------
Swt_Task          0x40002770   0x0    0        QueuePend  0x6000     0x2cc     0x4015a318  0x401544e8  0x0      0xffff    0.0       0.0     0.0     0
IdleCore000       0x40002dc8   0x1    31       Ready      0x400      0x15c     0x4015a7f4  0x4015a550  0x0      0xffff   98.6      98.2    99.9     0
system_wq         0x400b80fc   0x3    1        Pend       0x6000     0x244     0x40166928  0x40160ab8  0x1      0xffff    0.0       0.0     0.0     0
SerialShellTask   0x40090158   0x5    9        Running    0x3000     0x55c     0x40174918  0x40171e70  0xfff    0xffff    1.2       1.7     0.0     48
SerialEntryTask   0x4008fe30   0x6    9        Pend       0x1000      0x2c4    0x40175c78  0x40174e88  0x1      0xffff    0.0       0.0     0.0     72
  1. 输出项说明:
    • Name:任务名。
    • TID:任务ID。
    • Priority:任务的优先级。
    • Status:任务当前的状态。
    • StackSize:任务栈大小。
    • WaterLine:该任务栈已经被使用的内存大小。
    • StackPoint:任务栈指针,表示栈的起始地址。
    • TopOfStack:栈顶的地址。
    • EventMask:当前任务的事件掩码,没有使用事件,则默认任务事件掩码为0(如果任务中使用多个事件,则显示的是最近使用的事件掩码)。
    • SemID:当前任务拥有的信号量ID,没有使用信号量,则默认0xFFFF(如果任务中使用了多个信号量,则显示的是最近使用的信号量ID)。
    • CPUUSE:系统启动以来的CPU占用率。
    • CPUUSE10s:系统最近10秒的CPU占用率。
    • CPUUSE1s:系统最近1秒的CPU占用率。
    • MEMUSE:截止到当前时间,任务所申请的内存大小,以字节为单位显示。MEMUSE仅针对系统内存池进行统计,不包括中断中处理的内存和任务启动之前的内存。

      任务申请内存,MEMUSE会增加,任务释放内存,MEMUSE会减小,所以MEMUSE会有正值和负值的情况。

      1)MEMUSE为0:说明该任务没有申请内存,或者申请的内存和释放的内存相同。

      2)MEMUSE为正值:说明该任务中有内存未释放。

      3)MEMUSE为负值:说明该任务释放的内存大于申请的内存。

  2. 系统任务说明(Huawei LiteOS系统初始任务有以下几种):
    • Swt_Task:软件定时器任务,用于处理软件定时器超时回调函数。
    • IdleCore000:系统空闲时执行的任务。
    • system_wq:系统默认工作队列处理任务。
    • SerialEntryTask:从底层buf读取用户的输入,初步解析命令,例如tab补全,方向键等。
    • SerialShellTask:接收命令后进一步解析,并查找匹配的命令处理函数,进行调用。
  3. 任务状态说明:
    • Ready:任务处于就绪状态。
    • Pend:任务处于阻塞状态。
    • PendTime:阻塞的任务处于等待超时状态。
    • Suspend:任务处于挂起状态。
    • Running:该任务正在运行。
    • Delay:任务处于延时等待状态。
    • SuspendTime:挂起的任务处于等待超时状态。
    • Invalid:非上述任务状态。

相关文档