nr_micro_shell、MCU命令行工具
Nrush/nr_micro_shell - 码云 - 开源中国 (gitee.com)
【嵌入式】开源shell命令行的移植和使用(1)——nr_micro_shell_嵌入式 shell 接收命令-CSDN博客
命令行特殊显示效果\033和发声音\007、颜色、左右移动 - yeshenmeng - 博客园 (cnblogs.com)涉及到的概念参考
1、遵循ANSI编码
2、'\033'代表控制指令,如左右移动光标、控制字符颜色等,其中033是8进制格式
3、需要定义NR_SHELL_END_OF_LINE长度,代表是使用\r还是\n结束指令输入
部分代码分析:
指令的存储布局:
通过NR_SECTION(x) __attribute__((section(".rodata.nr_shell_cmd" x)))定义相应的数据段。
1、指令通过NR_SHELL_CMD_EXPORT接口将自定义的指令存储在.rodata.nr_shell_cmd1段中
2、段.rodata.nr_shell_cmd0.end与.rodata.nr_shell_cmd1.end中,定义的函数为NULL
3、解析的时候通过从.rodata.nr_shell_cmd1段开始解析,遇到函数为NULL则停止
4、定义输出接口#define shell_printf(fmt, args...) printf(fmt, ##args)、ansi_show_char(x) putchar(x)