
# sem
#### 命令功能
sem命令用于查询系统内核信号量的相关信息。
#### 命令格式
sem \[*ID*\]
sem fulldata
#### 参数说明
表1参数说明 
| 参数       | 参数说明                                                                                      | 取值范围              |
|:---|:---|:---|
| ID       | 信号量ID号，输入形式以十进制表示或十六进制表示皆可                                                                | \[0, 0xFFFFFFFF\] |
| fulldata | 查询所有在用的信号量信息，打印信息包括如下：SemID, Count, Original Count, Creater (TaskEntry), Last Access Time | N/A               |
   
#### 使用指南
- 参数缺省时，显示所有信号量的使用数及信号量总数。
- sem后加ID，当ID参数在\[0, 1023\]范围内时，返回指定ID号的信号量使用数（如果指定ID号的信号量未被使用则提示），其他取值时返回参数错误的提示。
- sem的参数ID和fulldata不可以混用。
- 参数fulldata依赖LOSCFG_DEBUG_SEMAPHORE，该宏开关可以通过make menuconfig在菜单项中开启"Enable Semaphore Debugging"使能。
  ```
  Debug  ---> Enable a Debug Version ---> Enable Debug LiteOS Kernel Resource ---> Enable Semaphore Debugging
  ```
  
 
#### 使用实例
举例1：输入sem 1。
举例2：输入sem和sem fulldata。
#### 输出说明
执行sem 1，查询指令结果：
```
Huawei LiteOS # sem 1
   SemID       Count
   ----------  -----
   0x00000001      0x1
No task is pended on this semphore!
```
执行sem和sem fulldata，查询所有在用的信号量信息：
```
Huawei LiteOS # sem
   SemID       Count
   ----------  -----
   0x00000000  1
   SemID       Count
   ----------  -----
   0x00000001  1
   SemID       Count
   ----------  -----
   0x00000002  1
   SemUsingNum   : 3
Huawei LiteOS # sem fulldata
Used Semaphore List:
   SemID   Count   OriginalCout   Creater(TaskEntry)   LastAccessTime
   ------  -----   ------------   -----------------    --------------
   0x2     0x1     0x1            0x80164d70           0x3
   0x0     0x1     0x1            0x0                  0x3
   0x1     0x1     0x1            0x0                  0x3
```
