人工智能操作系统的相关说明(机器人控制系统需使用实时操作系统)
743
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
设置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小时内删除侵权内容。