LiteOS之shell使用

网友投稿 769 2022-05-29

在使用LiteOS系统时,需要使用到利用串口即console进行执行自己的进程,往往需要使用到shell命令,所以需要学习如何在自己的程序中增加shell的使用。

1、shell是啥

Shell在liteOS作为在线调试工具,可以通过串口工具输入输出,支持常用的基本调试功能。同时用户可以新增定制的命令,新增命令需重新编译烧录后才能执行。

2、shell的作用

1️⃣为LiteOS提供基础的命令供用户使用,用户可以利用这些命令控制LIteOS系统,并查询相相关信息;

2️⃣为用户提供接口,可以将自己的进程和任务进行命令输出,并在console进行交互。

3、如何才能使用Sell

首先,要在软件剪裁开关中打开sell功能,即在make menuconfig中选择打开Sell,Debug ---> Enable a Debug Version ---> Enable Shell

LiteOS之shell使用

设置shell连接uart端口,程序通过下面的程序将需要的串口和shell进行连接

UINT32 ShellStdinLoop(ShellCB *shellCB) { UINT8 ch; while (1) { ch = uart_read(); ShellCmdLineParse(ch, (pf_OUTPUT)dprintf, shellCB); } return 0; }

如果需要更改log的存储buf需要设置下面的宏

#define KERNEL_LOG_BUF_SIZE (8 * 1024)

打开shelll功能宏后,LiteOS系统的宏已经可以使用,如果需要自己的进程需要使用宏,需要注册,后面会讲到。

4、系统shell命令

设置好,studio IDE 设置好串口号,波特率设置为115200;

上电控制板,系统启动后在Log出现“Huawei LiteOS #”的提示符,就可以使用shell了;

shell有几个常用的键盘特殊字符操作:

回车键执行操作;

Tab键可自动联想补全,若有多个匹配项则补全共同字符,并打印多个匹配项。

退格键可删除一个字符,如果在UTF8格式下输入了中文字符,只能通过回退三次来删除。默认模式为英文输入。

方向键上下可选择历史命令。

常见的系统命令有:help、date、uname、task、free、memcheck、memused、hwi、queue、sem、mutex、dlock、swtmr、systeminfo、log、dmesg、stack、cpup、watch ;使用和Linux的shell比较相似,需要可以查询帮助。

5、自己的task如何注册到shell中

定义Shell命令需要处理的任务

int osShellCmdXX(int argc, const char **argv);

argc:Shell命令的参数个数。个数中是否包括命令关键字,和注册命令时的命令类型有关。

argv:为指针数组,每个元素指向一个字符串,该字符串就是执行shell命令时传入命令处理函数的参数。参数中是否包括命令关键字,和注册命令时的命令类型有关。

注册到shell命令:分为静态注册和动态注册,建议使用动态注册

静态注册XX命令到shell:

#include "shcmd.h" SHELLCMD_ENTRY(XX_shellcmd, CMD_TYPE_EX, "XX", XARGS, (CMD_CBK_FUNC)osShellCmdXX);

动态注册XX命令到shell:

#include "shell.h" osCmdReg(CMD_TYPE_EX, "XX", XARGS, (CMD_CBK_FUNC)osShellCmdXX);

注册好后,就可以在串口交互中使用XX命令,执行osshellXX函数的功能。

6、总结,善于使用shell是方便LiteOS找bug的很好地一个方法,把自己需要用的tsak在需要时时候打开,然后并且查询系统和进程中信息。

Shell 单片机 轻量级操作系统 LiteOS

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:数据类型和字符编码
下一篇:第十七届全国大学生智能汽车竞赛-航天智慧物流创意组 线下选拔赛赛题发布
相关文章