前言
![](https://oscimg.oschina.net/oscnet/f82b7d07-0cce-4ccd-a0f5-734df0b56ee5.gif)
和 RT-Thread 以往提供的 i.MX RT 的 BSP 不同,新的框架将不会出现一个 BSP 通过 Env 配置来适配不同开发平台的情况。而是将这些不同的开发平台通过不同的 BSP 文件展示出来。这种方式不仅大大降低了代码的耦合性,减少了 BSP 的维护成本,而且让开发者可以更容易地找到自己需要的资源。
新的 BSP 框架还引入了 NXP 推出的图形化配置工具 MCUXpresso Config Tools
,可以使用该工具来对 MCU 的引脚和时钟进行配置。MCUXpresso 工具提供了图形化的配置界面,这种图形化的配置方式对开发者来说更加直观,不仅可以让开发者灵活地配置 BSP 中使用的资源,并且可以让开发者对资源的使用情况一目了然。
新 BSP 框架的主要特性如下:
-
提供使用和说明文档,使开发者可以快速上手。 -
提供多系列 BSP 和 BSP 模板,降低了添加新 BSP 的难度。 -
BSP 驱动文件比较完善,开发者可以方便地使用驱动。 -
使用 MCUXpresso Config Tools
工具配置引脚及时钟,解决引脚冲突问题。 -
BSP 框架结构如下图所示:
i.MX RT 系列新框架按模块可以分为五部分,分别是使用和说明文档、特定开发板的 BSP,NXP 官方 SDK、RT-Thread 通用驱动和各个系列的工程模板。
-
文档 imxrt/docs
:BSP 的说明和使用文档,包括外设驱动使用教程、BSP 制作教程、驱动介绍和外设驱动添加指南等文件,开发者通过阅读这些文件可以快速添加自己需要的外设来进行开发。 -
特定开发板的 BSP:目前新框架已经支持的 BSP 有: -
imxrt1052-atk-commander -
imxrt1052-fire-pro -
imxrt1052-nxp-evk -
imxrt1064-nxp-evk -
NXP 官方 SDK imxrt/libraries/MIMXRT1050NXP
:NXP 官方提供和维护的不同系列的 SDK,例如:MIMXRT1050
、MIMXRT1064
等。 -
RT-Thread 通用驱动 imxrt/libraries/drivers
:RT-Thread 为不同 i.MX RT 系列适配的通用驱动,例如:drv_gpio.c
、drv_uart.c
等。 -
工程模板 libraries/templates: RT-Thread 为不同 i.MX RT 系列提供的 BSP 通用模板,开发者可以根据不同系列模板快速的将 RT-Thread 移植到自己的板卡。
本节以 imxrt1052-fire-pro
开发板的 BSP 为例,讲解 i.MX RT 新框架是如何生成一个 BSP 工程的。下图展示了新 i.MX RT 框架生成工程所需的所有文件:
各个文件的具体描述如下。
applications
一般自己的应用代码都放在这个文件夹,在一个基础的 BSP 中,如果有 LED 的话,main 函数里会只放一个 LED 1HZ 闪烁的程序。
存放具体硬件相关的文件。
-
linker_scripts
:IAR、MDK 和 GCC 的链接脚本文件 -
MCUX_Config
:图形化配置工具生成的工程文件。虽然MCUXPresso Config
工具生成了很多工程文件,但是 RT-Thread 只使用clock_config.c
和pin_mux
以及对应的头文件来生成工程。所以这里只保留相应的时钟和引脚的初始化文件。这里使用 MCUXpresso 工具的一个好处就是可以图形化的配置引脚,不同子系列的芯片外设之间的区别一般是使用的引脚不一样,使用 RT-Thread 外设驱动的第一步就是需要配置外设对应的引脚,而外设的初始化不需要使用工具配置,这个过程在 RT-Thread 外设驱动中完成。MCUXPresso Config
生成的需要保留的工程文件如下图所示:
-
borad.c
:完成硬件相关的初始化工作。 -
由于 i.MX RT 系列下载时需要特定的算法,为了方便程序的下载,对应 BSP 的下载算法文件也会放在 board 文件夹下面。
根据命令 scons --target=xxx
通过 Env 工具生成基于不同开发平台的工程文件,常用的开发平台如下所示:
1scons --target=iar
2scons --target=mdk4
3scons --target=mdk5
如果 BSP 目录下提供其他 IDE 工程的模板文件也可以使用此命令生成对应的新工程,比如 ua、vs、cb、cdk。
生成工程所需的脚本文件
使用 Env 生成工程时会根据 rtconfig.py
、Sconscript
和 Sconstruct
文件指定的编译器以及源文件、头文件路径来生成工程。
在基于 Env 使用脚本生成基于不同开发平台的工程时,需要不同开发平台提供相应的模板文件来生成目标平台开发的工程。
本节基于 imxrt1050-fire-pro
开发板生成 MDK5 开发平台工程为例,讲解如何使用基于 i.MX RT 新框架 BSP。
使用 Env 工具生成工程
打开 Env 工具并输入 scons --target=mdk5 -s
命令来生成 MDK5 的工程,如下图所示:
使用 MDK5 编译工程
生成工程之后使用 MDK5 打开并编译工程
下载验证
为了支持更多 i.MX RT 系列 BSP,完善 RT-Thread 驱动,同时也为了便于开发者关于 i.MX RT 系列的学习与交流,RT-Thread 为开发者提供了学习交流群,可以添加小师妹微信:RT-Thread2006
为好友,审核通过后拉你进官方 i.MX RT 学习交流群!
加好友请备注:姓名 + 职业 + i.MX RT
《RT-Thread 源码》
链接:https://github.com/RT-Thread/rt-thread
《i.MX RT 系列 BSP 制作教程》
链接:https://github.com/RT-Thread/rt-thread/blob/master/bsp/imxrt/docs/IMXRT%E7%B3%BB%E5%88%97BSP%E5%88%B6%E4%BD%9C%E6%95%99%E7%A8%8B.md
《Env 手册》
链接:https://www.rt-thread.org/document/site/programming-manual/env/env/
(请将以上链接复制至外部浏览器打开)
RT-Thread线上活动
1、【RT-Thread能力认证考试12月——RCEA】经过第一次考试的验证,RT-Thread能力认证得到了更多社区开发者和产业界的大力支持!(点此查看)如果您有晋升、求职、寻找更好机会的需要,有深入学习和掌握RT-Thread的需求,欢迎垂询/报考!
能力认证官网链接:https://www.rt-thread.org/page/rac.html(在外部浏览器打开)
立即报名
#题外话# 喜欢RT-Thread不要忘了在GitHub上留下你的STAR
哦,你的star对我们来说非常重要!链接地址:https://github.com/RT-Thread/rt-thread
你可以添加微信18917005679为好友,注明:公司+姓名,拉进 RT-Thread 官方微信交流群
![](https://oscimg.oschina.net/oscnet/99560c51-608d-43dd-bac3-0967cae3f1bc.jpg)
RT-Thread
让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。
长按二维码,关注我们
![](https://oscimg.oschina.net/oscnet/1ab58105-ff69-41f2-8ae3-a52d1c4ec15e.png)
![](https://oscimg.oschina.net/oscnet/ebec0b07-cf63-4406-af34-5654b9b91758.gif)
点击阅读原文进入Github
本文分享自微信公众号 - RTThread物联网操作系统(RTThread)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
来源:oschina
链接:https://my.oschina.net/u/4428324/blog/4619324