1 本文的目的和结构
1.1 本文的目的和背景
RT-Thread 完全开源开放,支持几十款 BSP,支持多种编译器,支持众多基础组件以及数量持续增长的软件包,然而对于工程项目开发来说,只需要支持一款或者有限几款 MCU,使用一种熟悉的 IDE 开发环境,使用有限的外设和组件,本文档旨在指导用户在全功能 RT-Thread 版本基础上,根据项目需求搭建 RT-Thread 工程框架。
1.2 本文的结构
本文首先介绍了一下必须的准备工作,然后介绍了如何使用 RT-Thread 提供的 Env 工具配置工程,最后介绍了如何添加自己的应用代码和管理自己的模块。
2 准备工作
下载 RT-Thread 源代码。
准备 Env 开发环境
安装好 MDK 软件或者 IAR 软件。
3 标准工程管理
3.1 选择 BSP
用户获取 RT-Thread 源代码后就可以根据自己手上的开发板型号找到对应的 BSP,就可以运行 BSP 提供的默认工程了。大部分 BSP 都支持 MDK﹑IAR 开发环境和 GCC 编译器,并且已经提供了默认的 MDK 和 IAR 工程。
本文后续章节将使用正点原子 STM32F4 探索者开发板演示相关操作。此开发板 MCU 型号是 STM32F407ZGT6,对应使用的 BSP 为 stm32f4xx-HAL,在 RT-Thread 源代码的 BSP 目录下。
这个 BSP 支持 MCU 型号为 stm32f4xx 的 开发板, 默认使用串口 2 作为 shell 控制台输出使用串口,用户可以查看 README.md 文件查看自己开发板使用的串口。本文使用 SEGGER JLINK 连接 JTAG 调试,使用 USB SLAVE(USART1)供电。
3.2 搭建项目框架
打开 Env 工具进入 stm32f4xx-HAL 目录,运行scons --dist命令。使用此命令会在 stm32f4xx-HAL BSP 目录下生成名为 dist 目录,这便是开发项目的目录结构,RT-Thread 源码位于项目文件夹内,仅包含stm32f4xx-HAL 的 BSP,可以随意拷贝到任何目录下运行。
3.3 修改工程模板
对工程的一些基本配置,用户需要针对自己的需求做一些工程配置,比如配置 MCU 型号,设置调试选项等。建议大家直接修改工程模板,这样下面阶段生成的新工程,也都会包含对模板的修改,MDK 的模板工程为 template.uvprojx。IAR 的模板工程为 template.eww,注意 IAR 工程模板这样修改可能会导致生成的新工程低版本 IAR 软件用不了。
下图为修改 MDK 工程模板文件的芯片型号示例。
然后根据自己使用的调试工具选择对应的调试选项,相关配置修改完成后就可以关闭模板工程。
注意:有其他需要对工程配置进行修改的地方都建议修改模板文件,但是自己应用代码的添加不建议在工程模板里添加。
3.4 配置和裁剪 RT-Thread
每个 BSP 下的工程都有默认的配置,比如系统内核支持的最大线程优先级、系统时钟频率、使用的设备驱动、控制台使用的串口等。RT-Thread 操作系统具有高度的可裁剪性,用户可以根据自己的需求使用 env 工具进行配置和裁剪。
双击 env.exe 打开配置界面,然后使用cd d: epository t-threadspstm32f4xx-HAL命令进入 BSP 工程目录,cd 后面跟用户自己的工程目录。然后在使用menuconfig命令打开配置界面。
menuconfig 常用快捷键如图所示:
3.5 使能在线软件包
下图使能了 mqtt 相关的软件包。
3.6 生成工程
配置工程后都使用scons --target=mdk5命令或者scons --target=iar命令生成 MDK 或者 IAR 工程。如果大家直接修改 MDK 工程文件 project.uvprojx 或者 IAR 的工程文件 project.ewww 添加自己的代码,或者修改工程的一些基本配置,生成的新工程会覆盖之前对工程文件 project 的手动修改。
打开新生成的 MDK 工程 project.uvprojx ,可以看到我们选择的 paho mqtt 相关的软件包源文件已经被添加到了工程中。
3.7 验证工程
编译工程,生成目标代码,然后就可以下载至开发板运行。本文使用终端软件 PuTTY 接收工程控制台对应串口 2 发送的数据,电脑右键→属性→设备管理器→端口(COM 和 LPT),即可查看串口 2 对应的 COM 号,本文为 COM14。打开 PuTTY 按照下图配置,波特率一般配置为 115200。
点击 open 打开,重启开发板后会看到 RT-Thread 的启动 logo 信息。
3.8 添加文件到工程
BSP 下的 applications 文件夹用于存放用户自己的应用代码,目前只有一个 main.c 文件。如果用户的应用代码不是很多,建议相关源文件都放在这个文件夹下面,本文在 applications 文件夹下新增了 2 个简单的文件 hello.c 和 hello.h。
/* file: hello.h */
全部0条评论
快来发表一下你的评论吧 !