内容介绍
本人自己设计了一个STM32H743VIT6为主控芯片的小开发板,打算将RTThread移植到这个板子上。懒得自己去做BSP,所以从RTThread的官网上找到了为ST官方的H743-Nucleo的BSP,它的MCU芯片型号STM32H743ZI。对这个程序进行简单的修改,运行在我自己做的板子上。
目录
实现流程
1.下载BSP
在 https://github.com/RT-Thread/rt-thread/ 上把RTThread源码克隆岛本地。上述Nucleo板子的BSP在bsp/stm32/stm32h743-st-nucleo/路径下。
2.构建工程
使用RTThread的env工具,运行scons工具构建BSP。在前面提到的本地BSP包的路径中打开env工具,输入scons --target=mdk5,之后会生成一个dist文件夹,在该文件夹中使用MDK5开发单片机程序。当然也可以生成其他软件的工程,请仔细阅读官网教程https://www.rt-thread.org/document/site/programming-manual/scons/scons/
3.修改配置
然后修改工程配置,将芯片改为STM32H743VI,同时一定要注意芯片的Flash和Ram大小,在程序Operation的Target选项中设置好存储器地址和大小,不同后缀的芯片,存储容量可能是不同的,我就是因为没有修改这里,导致程序的一些函数地址出错,死活调不出来程序,Debug了好几天,最后查看map文件才查出问题。
之后,利用ST官方的CubeMx工具,按照我的板子的实际情况设置好时钟配置的代码,复制并替换掉原程序中board.c文件中的SystemClock_Config函数。新复制的代码可能会有些编译上的小错误,一般是宏定义的问题,很容易解决。同时board.c还有与板子硬件相关的设置,如果需要修改也要注意修改。
4.下载程序并验证
RTThread的BSP在成功运行后,默认会从串口发出调试信息,所以上电后,通过串口连接PC与电路板,可以在PC上看到调试信息。这样说明RTThread操作系统程序运行正常。要注意使用哪个串口输出,比如我用的这个BSP默认是使用uart3输出,我在uart1上看了半天也没发现有信息传来。推测是RT_CONSOLE_DEVICE_NAME这个宏制定了输出的串口号。
最后,目前只是将操作系统和串口移植好了,还有其他功能没来得及验证。