简介在开发调试过程中经常会需要触发某些测试函数来验证功能是否正常工作,这时候我们可以在代码中写死测试函数不过这样不是很灵活,我们可以在项目中实现个shell,通过shell命令触发对应的函数这样就会方便很多,可以在程序异常的时候通过命令查看特定的运行状态。我们基于上一个串口实验的基础上参考RT-thread 的shell 的实现逻辑创建shell 工程添加shell 文件我们在原有工程基础上,向工程里添加shell的源代码,添加如下。 shell 的实现是在flash 中定义一个FSymTab 的section,代码中在 FSymTab 起始地址和结束地址范围内进行检索查找输入的命令是否吻合,如果一致的话就执行绑定的函数,在工程的stm32mp13xx_a7_ddr.ld 文件中加入如下 FSymTab section 区间。修改链接脚本添加如下section定义。 shell 依赖串口底层接收输出函数,输出使用printf接口,输入函数使用HAL库的接口对接下即可,对应代码如下:
在main函数内调用shell 入口函数即可,至此shell 已经编译通过移植适配完成。 下载验证编写如下测试代码,添加led 测试命令通过shell 控制板卡点灯
编译通过后按照该贴方法https://shequ.stmicroelectronics.cn/thread-642184-1-1.html 制作镜像包烧写到sd卡验证,输入led on命令可以按照预期的方式点亮led,输入 led off 熄灭led,至此基于STM32MP135裸机的方式shell 移植就告一段落。 shell 实现的细节再此就不展开了,可以查看代码,代码路径已上传如下路径: |
《STM32MPU安全启动》学习笔记+STM32MP系列mpu安全启动解析
《STM32MPU安全启动》学习笔记 - STM32MPU安全启动学**结
【STM32H7S78-DK评测】CoreMark移植和优化--兼记printf重定向实现方法及常见问题
刘氓兔的64位入门挑战【2】——MP257和cubemx
STM32新增安卓支持 — OpenSTDROID,开启MPU应用新格局
刘氓兔的64位入门挑战【1】——MP257芯片下单和硬件准备
刘氓兔的64位入门挑战【0】——MP257选型
【问答有礼】问答小课堂:如何将AI方案无缝集成到STM32MP2项目中?
聊聊 STM32 MPU OpenSTLinux 实时扩展包 X-LINUX-RT
意法半导体最具性价比、速度最快的单核MPU STM32MP13现已支持运行RTOS
感谢分享