nr_micro_shell、MCU命令行工具

Nrush/nr_micro_shell - 码云 - 开源中国 (gitee.com)

命令行特殊显示效果\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)

 

posted @ 2022-08-03 11:56  yeshenmeng  阅读(379)  评论(0编辑  收藏  举报