魔法键使用方法
使用场景
系统未输出挂死相关信息,但是无响应时,可以通过魔法键查看中断是否有响应。在中断有响应的情况下,可以通过魔法键查看task信息中 的CPUP(CPU占用率),找到是哪个任务长时间占用CPU导致系统其他任务无响应(一般为比较高优先级任务一直抢占CPU,导致低优先级任务无响应)。
功能说明
在uart中断和usb转虚拟串口中断中,嵌入魔法键检查功能,对特殊按键进行识别,输出相关信息。
使用方法
- 通过make menuconfig开启魔法键功能。
- 该功能依赖于Shell,所以需要先使能Shell。
Debug ---> Enable a Debug Version ---> Enable Shell
- 该功能需要配置LOSCFG_ENABLE_MAGICKEY=y,若关闭该选项,则魔法键失效,开启该宏开关的菜单项为:
Debug ---> Enable MAGIC KEY
可以在menuconfig中光标移动到该选项上,输入“?”,查看帮助信息:Answer Y to enable LiteOS Magic key. ctrl + r : Magic key check switch; ctrl + z : Show all magic op key; ctrl + t : Show task information; ctrl + p : System panic; ctrl + e : Check system memory pool.
- 该功能依赖于Shell,所以需要先使能Shell。
- 输入“ctrl + r ” 键,打开或者关闭魔法键检测功能。
在连接uart或者usb转虚拟串口的情况下,输入“ctrl + r ” 键,打开魔法键检测功能,输出 “Magic key on”;再输入一次后,则关闭魔法键检测功能,输出“Magic key off”。魔法键功能如下:
- ctrl + z:帮助键,输出相关魔法键简单介绍。
- ctrl + t:输出任务相关信息。
- ctrl + p:系统主动进入panic,输出panic相关信息后,系统会挂住。
- ctrl + e:系统进行简单的内存池完整性检查,检查发现错误则输出相关错误信息,检查正常则输出“system memcheck over, all passed!”。
注意事项
魔法键检测功能打开情况下,如果需要通过uart或者usb转虚拟串口输入特殊字符需避免与魔法键值重复,否则魔法键会被误触发,而原有设计功能可能出现错误。