RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架

前言

i.MX RT 是 NXP 推出的跨界处理器系列。该系列下又包括 i.MX RT1020、i.MX RT1050 及 i.MX RT1060 等子系列芯片。为了方便管理各个子系列的 BSP 与 RT-Thread 适配的通用驱动,同时也为了让广大开发者更好、更方便地使用 BSP 进行开发。RT-Thread 开发团队联合 NXP 半导体公司在现有 i.MX RT 系列 BSP 的基础上进行了重构,推出了新的 BSP 框架。新的 BSP 框架在易用性、移植便利性、代码规范性等方面都有较大提升,在新的 BSP 框架下进行开发,可以大大提高应用的开发效率。

RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架_第1张图片

和 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 框架结构如下图所示:

RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架_第2张图片

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,例如:MIMXRT1050MIMXRT1064 等。

  • RT-Thread 通用驱动 imxrt/libraries/drivers:RT-Thread 为不同 i.MX RT 系列适配的通用驱动,例如:drv_gpio.cdrv_uart.c 等。

  • 工程模板 libraries/templates:RT-Thread 为不同 i.MX RT 系列提供的 BSP 通用模板,开发者可以根据不同系列模板快速的将 RT-Thread 移植到自己的板卡。                                                                                      

BSP工程文件组成

本节以 imxrt1052-fire-pro 开发板的 BSP 为例,讲解 i.MX RT 新框架是如何生成一个 BSP 工程的。下图展示了新 i.MX RT 框架生成工程所需的所有文件:

RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架_第3张图片

各个文件的具体描述如下。

applications

一般自己的应用代码都放在这个文件夹,在一个基础的 BSP 中,如果有 LED 的话,main 函数里会只放一个 LED 1HZ 闪烁的程序。

board

存放具体硬件相关的文件。

  • linker_scripts:IAR、MDK 和 GCC 的链接脚本文件

  • MCUX_Config:图形化配置工具生成的工程文件。虽然 MCUXPresso Config 工具生成了很多工程文件,但是 RT-Thread 只使用 clock_config.cpin_mux 以及对应的头文件来生成工程。所以这里只保留相应的时钟和引脚的初始化文件。这里使用 MCUXpresso 工具的一个好处就是可以图形化的配置引脚,不同子系列的芯片外设之间的区别一般是使用的引脚不一样,使用 RT-Thread 外设驱动的第一步就是需要配置外设对应的引脚,而外设的初始化不需要使用工具配置,这个过程在 RT-Thread 外设驱动中完成。MCUXPresso Config 生成的需要保留的工程文件如下图所示:

RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架_第4张图片

  • borad.c:完成硬件相关的初始化工作。

  • 由于 i.MX RT 系列下载时需要特定的算法,为了方便程序的下载,对应 BSP 的下载算法文件也会放在 board 文件夹下面。

IAR/MDK4/MDK5工程文件

根据命令 scons --target=xxx 通过 Env 工具生成基于不同开发平台的工程文件,常用的开发平台如下所示:

1scons --target=iar
2scons --target=mdk4
3scons --target=mdk5

如果 BSP 目录下提供其他 IDE 工程的模板文件也可以使用此命令生成对应的新工程,比如 ua、vs、cb、cdk。

生成工程所需的脚本文件

使用 Env 生成工程时会根据 rtconfig.pySconscriptSconstruct 文件指定的编译器以及源文件、头文件路径来生成工程。

用于生成 IAR/MDK4/MDK5 工程的模板文件

在基于 Env 使用脚本生成基于不同开发平台的工程时,需要不同开发平台提供相应的模板文件来生成目标平台开发的工程。

工程使用示例

本节基于 imxrt1050-fire-pro 开发板生成 MDK5 开发平台工程为例,讲解如何使用基于 i.MX RT 新框架 BSP。

使用 Env 工具生成工程

打开 Env 工具并输入 scons --target=mdk5 -s 命令来生成 MDK5 的工程,如下图所示:

RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架_第5张图片

使用 MDK5 编译工程

生成工程之后使用 MDK5 打开并编译工程

RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架_第6张图片

下载验证

将编译生成的代码下载到开发板中,此时开发板自带 LED 会以 1HZ 的频率闪烁。打开串口调试助手,波特率设置为 115200 ,复位开发板,串口会有 RT-Thread 的 logo 打印,如下图所示:

RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架_第7张图片

开发与维护

为了支持更多 i.MX RT 系列 BSP,完善 RT-Thread 驱动,同时也为了便于开发者关于 i.MX RT 系列的学习与交流,RT-Thread 为开发者提供了学习交流群,可以添加小师妹微信:RT-Thread2006 为好友,审核通过后拉你进官方 i.MX RT 学习交流群!

RT-Thread & NXP 发布 i.MX RT 系列 BSP 新框架_第8张图片

加好友请备注:姓名 + 职业 + 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/

(请将以上链接复制至外部浏览器打开)

END

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 官方微信交流群

RT-Thread


让物联网终端的开发变得简单、快速,芯片的价值得到最大化发挥。Apache2.0协议,可免费在商业产品中使用,不需要公布源码,无潜在商业风险。

长按二维码,关注我们

看这里,求赞!求转发!

点击阅读原文进入Github

你可能感兴趣的:(编程语言,github,物联网,单片机,jni)