1
nr_micro_shell介绍
原始工程 | 添加nr_micro_shell增加量 | 添加finsh增加量 | |
---|---|---|---|
ROM | 63660 | +3832 | +26908 |
RAM | 4696 | +1104 | +1304 |
名称 | 说明 |
---|---|
docs | 文档目录,包含演示的GIF图片等 |
examples | 例子目录,包括命令函数示例:nr_micro_shell_commands.c 和RT_Thread下使用示例 nr_micro_shell_thread.c |
inc | 头文件目录 |
src | 源代码目录 |
LICENSE
文件。2
Rt_Thread下ENV工具使用nr_micro_shell
RT-Thread online packages
tools packages --->
[*] nr_micro_shell:Lightweight command line interaction tool. --->
sapce
键选中后,按enter
可进行相关参数配置。然后让 RT-Thread 的包管理器自动更新,或者使用 pkgs --update
命令更新包到 BSP 中。Using console for kt_printf.
选项是被打开的,kt_printf可以正常工作,且Use components automatically initialization.
选项打开。编译直接下载或仿真便可以使用nr_micro_shell。命令行空白时按Tab,可显示所有支持的命令,测试示例命令可见doc/pic下的使用示例动图。自定义命令过程,参照下文3. 裸机下使用nr_micro_shell package中的方法。3
裸机下使用nr_micro_shell package
确保所有文件都已添加到项目中。
确保 nr_micro_shell_config.h 中的宏函数"shell_printf(),ansi_show_char()"可以在项目中正常使用。
使用示例如下
#include "nr_micro_shell.h"
int main(void)
{
/* 初始化 */
shell_init();
while(1)
{
if(USART GET A CHAR 'c')
{
/* nr_micro_shell接收字符 */
shell(c);
}
}
}
#include "nr_micro_shell.h"
int main(void)
{
unsigned int i = 0;
//匹配好结束符配置 NR_SHELL_END_OF_LINE 0
char test_line[] = "test 1 2 3\n"
/* 初始化 */
shell_init();
/* 初步测试代码 */
for(i = 0; i < sizeof(test_line)-1; i++)
{
shell(test_line[i]);
}
/* 正式工作代码 */
while(1)
{
if(USART GET A CHAR 'c')
{
/* nr_micro_shell接收字符 */
shell(c);
}
}
}
void your_command_funtion(char argc, char *argv)
{
.....
}
test -a 1
-------------------------------------------------------------
0x03|0x08|0x0b|'t'|'e'|'s'|'t'|'\0'|'-'|'a'|'\0'|'1'|'\0'|
-------------------------------------------------------------
/* "-a" */
printf(argv[argv[1]])
/* "1" */
printf(argv[argv[2]])
const static_cmd_st static_cmd[] =
{
.....
{"your_command_name",your_command_funtion},
.....
{"\0",NULL}
};
NR_SHELL_CMD_EXPORT(your_command_name,your_command_funtion);
4
Linux下使用nr_micro_shell仿真
./examples/simulator/
目录下存放着nr_micro_shell仿真代码,仍在./examples/nr_micro_shell_commands.c
文件中按上述方式添加自定义命令,添加完成后可以使用make命令编译源码,生产的可执行文件为./examples/simulator/out/nr_micro_shell
或./examples/simulator/out/nr_micro_shell_db
。可使用的make命令如下# 编译可执行文件
make
# 编译可仿真执行文件
make debug
# 清除编译生成文件
make clean
5
注意事项
const static_cmd_st static_cmd[] =
{
.....
{"\0",NULL}
};
原文来源于:维护:Nrusher
1.中国芯片替代方案公司名单公布(70个类别)
2.为什么原理图总画不好?这些技巧要知道
3.嵌入式设备如何显示IP属地?
4.RISC-V面向MCU/MPU、RTOS,但面临挑战。。。
5.单片机固件自更新的一个方法!
6.玄铁杯RISC-V应用创新大赛正式开赛,现开放报名!
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。