一、源代码下载
下载最新版的RT-Thread源代码:https://www.rt-thread.org/page/download.html
二、工程文件简介
2.1 我们将下载好的源码进行解压,可以看到共有以下文件夹,在这里我们只关注bsp文件夹下的内容。其他文件夹的内容暂时先不理会,有兴趣的伙伴可以先了解一下。
2.2 打开bsp文件夹,我们发现RT-Thread支持n多种厂商的MCU,iCore3 ARM+FPGA双核心板ARM采用的是ST的STM32F407IGT6,因此在这里我们打开stm32的文件夹。
2.3 打开stm32文件夹,可以看到这些文件夹可以大致分为3类,分别为docs文件夹,docs文件夹为官方提供的一些图文教程(相当详细);libraries文件夹,libraries文件夹为STM32的HAL库文件及RTT编写的STM32一些常外设的驱动文件;剩下的为各开发板的最简单的bsp工程。
三、BSP工程制作
3.1 CubeMX配置
需要创建一个基于目标芯片的CubeMX工程。默认的CubeMX_Config文件夹中,双击打开CubeMX_Config.ioc工程,注意看文件路径。
打开CubeMX选择自己板子上具体的芯片型号,iCore3是STM32F407IGT6。
打开RCC和SYS设置
ARM_LED引脚设置
在connectivity下配置串口工作模式,并打开串口中断
在Clock Configuration页面配置时钟,iCore3使用的是外部24MHz晶振
在Project Manager页面,配置工程名称和存储路径
生成MDK工程后只需要保留这四个文件,其他文件可以删除
3.2 修改脚本
在Src文件下打开main.c,复制SystemClock_Config初始化代码
将配置好的时钟初始化代码替换掉board.c中的时钟代码
board.h中配置了芯片的Flash和RAM大小,根据实际使用的芯片改为对应大小(我们这里参数匹配,不用修改)
修改Kconfig文件,打开Kconfig文件
然后要修改工程构建相关文件,修改链接脚本,打开linker_scripts下的link.sct文件。根据芯片的Flash和RAM大小修改这三个地方,要以十六进制标识(这里参数和iCore3一致,无需更改)
打开SConscript文件,修改启动文件和芯片型号(与iCore3一致,无需修改)
3.3 修改template文件
选择所用的仿真器型号
3.4 Env配置
以上修改完成后,打开menuconfig,开启UART4,并生成rtconfig.h文件
打开RT-Thread Kernel下的Kernel Device Object里的the device name for console 改为uart4
退出保存后再Env中输入命令scons --target=mdk5重新生成工程
四、 实验现象
新的BSP即生成,双击工程打开,修改LED灯引脚即可
编译通过后下载,ARM_LED灯循环闪烁,打开putty,成功打印RT Thread的Logo信息
代码包下载:
链接:https://pan.baidu.com/s/1BFXbRupGqrtuqHmg5xAA9A
提取码:et4e