Bootstrap

nr_micro_shell使用

移植

1.下载源码
git clone git@github.com:Nrusher/nr_micro_shell.git
2.将c文件和头文件复制到项目中,并包含相应的头文件路径

image-20211021161838709

3.修改nr_micro_shell_config.h
//屏蔽rt-theard注释
#ifndef NR_MICRO_SHELL_SIMULATOR
//#include <rtconfig.h>
//#include <rtthread.h>

//修改shell的输出接口
/* If you use RTOS, you may need to do some special processing for printf(). */
#define shell_printf(fmt, args...) printf(fmt, ##args);
#define ansi_show_char(x) SEGGER_RTT_PutChar(0, x);//putchar(x)

4.获取输入
//采用JLINK RTT输入,在main函数或者任务中周期调用以下代码
int key = SEGGER_RTT_GetKey();
if(key >= 0)
{
    shell((char)key);
}

问题

编译源码有警告,主要是因为数组下标为有符号char,强制转形为unsigned char即可。

image-20211019172614690

warn:array subscript has type 'char' [-Wchar-subscripts]	
//其中一处修改为这样
if (fp == NULL)
{
    if (isalpha((unsigned char)str[0]))
    {
        shell_printf("no command named: %s"NR_SHELL_NEXT_LINE, token);
    }
}

简述

移植
d named: %s"NR_SHELL_NEXT_LINE, token);
}
}


;