腾讯 tiny os shell移植

默认你已经调通tos,如果没有请移步官网
准备好要移植的文件
在这里插入图片描述
在这里插入图片描述
需要把shell文件夹下c和h文件加入到工程中(不会的请自行搜索)
因为是需要串口进行接收,需要用过平台调用st的库

调用
调用
shell框架
platform/hal/stm32xxx.c
我们自己cube生成的usart

在这里插入图片描述
如图,是将串口抽象的方式,就是上层和下层映射的关系。非常好理解。
在这里插入图片描述
串口接收中断回调函数,接收是一个字节一个字节接收的,所以实现就是先进先出队列,接收一个压入队列,满了时候就抛弃数据。取数据就直接取多少多少字节,非常普通的串口接收不定长数据的实现方式。接收中断所以需要第一次开启接收中断,我们只需要在初始化时调用一下void HAL_UART_RxCpltCallback(&huart2)即可。
我们的平台是F205,因为hal文件夹中没有我们的文件所以直接从F1中拷贝了一份
在这里插入图片描述
在这里插入图片描述
头文件修改所需要的,串口数量映射一下(函数在usart文件找),初始化几个串口就映射几个,不需要的就直接注释就好了
我试了许久也可腾讯大佬交流了,我这种大部分是没问题的。
注意:串口助手
在这里插入图片描述
绝对不可以在输入框输入\r\n和回车,使用要使用软件的回车和换行!!!不然会没反应。
在这里插入图片描述
在这里插入图片描述
只需要编写自己的需要的命令就可以了,这里就很简单了。

__STATIC__ int cmd_reboot(int argc, char *argv[])
{
    tos_shell_printf("reboot:\n");
    
    tos_task_delay(500);
    tos_shell_printf("..");
    
    tos_task_delay(500);
    tos_shell_printf("..");
    
    HAL_NVIC_SystemReset();
    
    return 0;
}

__STATIC__ const shell_cmd_t custom_shell_cmds0[] = {
    { "reboot",     cmd_reboot,     "reboot mcu" },
    { "test01",     cmd_test01,     "test01 cmd" },
    { K_NULL,       K_NULL,         K_NULL  }, /* never forget this!!!*/
};

可配置宏定义等如下

在这里插入图片描述
在这里插入图片描述

支持设置参数

在这里插入图片描述
比如输入参数:reboot空格123456\r\n
argv[0]=reboot
argv[1]=123456
argc 是表示几个输入参数,argv[0]是每个参数的指针,指向参数

实验结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值