[信息] 【经验分享】STM32G070 移植一个shell,方便调试。基于FreeRTOS

[复制链接]
1832|10
 楼主| 海滨消消 发表于 2021-11-15 11:31 | 显示全部楼层 |阅读模式
测试ST 官网的 FreeRTOS

移植shell
主要是串口对接, 需要重写两个函数
41826191d4629e2f5.png
增加了一个回调函数, 收到数据拷贝到shell_buf,  然后重新初始化串口中断接收参数,指针,size,count
342366191d490b0de2.png
 楼主| 海滨消消 发表于 2021-11-15 11:32 | 显示全部楼层
遇到的问题, 1. fgetc 不能直接调用HAL_UART_Receive, 否则会死等,导致其他任务无法运行。

解决这个问题的方法是,接收采用中断方式。

问题2. STM32CubeMX 生成的代码,串口中断接收是固定长度的方式, 对于shell 不适用。

解决这个问题的方法是,修改中断处理程序,如果是调试用的串口,直接处理接收数据
662886191d4cb9445e.png
问题3. shell 放在Mgr task里面,由于内存分配128*4 不够导致死机

解决这个问题的方法是,去掉没有用的shell 指令,限制最多支持64条指令。 任务内存分配加大 256*4

最终效果图

233818s7bpisx3ckyp3yby.png

wiba 发表于 2021-12-9 19:00 | 显示全部楼层
还真是没有移植过
zljiu 发表于 2021-12-9 19:02 | 显示全部楼层
如何解决的这个问题呢
coshi 发表于 2021-12-9 19:56 | 显示全部楼层
这样会不会限制程序的规模啊
aoyi 发表于 2021-12-9 19:59 | 显示全部楼层
请问什么叫做shell啊
drer 发表于 2021-12-9 19:59 | 显示全部楼层
在什么方面有便利呢
1988020566 发表于 2022-11-16 21:44 | 显示全部楼层
推荐nr_micro_shell   
jackcat 发表于 2022-11-16 22:12 | 显示全部楼层
在stm32上移植linux?  
kkzz 发表于 2022-11-16 22:34 | 显示全部楼层
运行 FreeRTOS 要考虑到阻塞机制,不能让 shell 任务一直不断的运行
vivilyly 发表于 2022-11-17 09:37 | 显示全部楼层
https://github.com/NevermindZZT/letter-shell,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

275

主题

1964

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部