拿到一块STM32板子如何快速上手rt-thread
开发板 NUCLEO-H7A3ZI-Q 见图
拿到开发板但是不了解这款芯片啊,时钟配置、内存大小、下载调试…都是需要了解的。
借助两大快速上手神器 cubeMX和Scons
1.cubeMX
打开cubeMX,自动弹出一个I need to对话框,有三个选项,分别是选择一款MCU、选择一款开发板、示例。一般用到前两个,如果你拿到的电路板是ST官方出品的,那么选择第二项,如果是自己淘的、或者是其他朋友同事设计的硬件,那么就选择第二项。无论选哪一个,选择了自己手上的STM32后,都会有一个快捷的窗口,可以很方便的查找关于你选择的STM32的各种手册PDF。
以我的板子为例,窗口中有板子的简要介绍、图片,切换标签页有各种下载资源,电路设计工程、元器件清单等。点击Start Project或者双击下方搜索出来的1个item就可以进入具体的配置了,这里不多介绍,可自行搜索cubeMX的使用。
2.Scons
Scons是RT-Thread的辅助开发工具,在RT-Thread官网下载Scons以及RT-Thread源码后便可开始了。
RT-Thread源码下载到本地后,内容如下图所示,其中有一个bsp文件夹,即板级支持包,里面罗列了RT-Thread支持的各种芯片级板子。
当然,bsp文件夹里可能没有你使用的型号的芯片,或你手里的开发板型号,RT-Thread早就考虑到了这一点,深入贯彻CV大法的精髓。我们首先要在bsp里选择一款相似的板子,以我的NUCLEO-H7A3ZI-Q开发板为例,bsp里就没有,那么我可以以stm32h743-st-nucleo为模板来修改,如果你手里的开发板比如野火的STM32H750Pro在这里也没有,你也可以基于stm32h750-artpi来修改
进入选中的开发板,在空白处点击右键,再点ConEmu Here打开scons窗口
在窗口中输入Scons –dist,按回车运行。运行完成后,在当前的文件夹下就会生成名为dist的文件夹,接着把这个dist文件夹剪切到写的地方,作为你的工程目录(一般我们不会把自己的工程目录放到rt-thread的源码文件夹中)
显然,我的芯片是STM32H7A3,但是生成的拷贝工程芯片型号是STM32H743,这代码烧进去肯定跑不起来。进入你的工程目录,打开board\CubeMX_Config文件夹,这里是存放cubeMX的地方,将原来的.ico工程文件删掉,换成自己的。这时你在cubeMX中生成的代码便会保存到… \board\CubeMX_Config\Core中,这里面有一个main文件,但是main文件没有被加入Keil工程,只是参考用的
返回上一层 board文件夹中,打开Sconscript文件可以看到使用cubeMX生成的文件是如何被添加到Keil工程的。第10行,将cubeMX生成的stm32h7xx_hal_msp.c添加到Keil工程中。第13行,添加头文件路径。第17~22行,选择启动文件,bsp拷贝出来的原始启动文件是stm32h743的,当然要改成你自己使用的,可以在工程目录中打开…\Templates\arm\目录,查看有哪些芯片的启动文件。第26行,配置宏定义,当然也是选择你自己选择的芯片。
然后再工程目录中再次打开Scons窗口,输入Scons –target=mdk5,回车运行,就生成了Keil5工程。注意目录中有一个template.uvprojx文件,也是Keil工程文件,但是是模板,Scons –target=mdk5命令是以template.uvprojx为模板,生成project.uvprojx。生成之前你也可以自己修改模板,这里主要是把模板里面的芯片型号换成你使用的型号,设置以下仿真器,比如我的开发板就是用ST-LINK。生成工程后再打开project. Uvprojx,这个时候就已经可以编译、烧录了,RT-Thread就这样跑起来了。