NXP RT1052 固件库

根据https://blog.csdn.net/ldinvicible/article/details/90232569此路径文档下载SDK包。

参考:I.MX-RX库开发实战指南

选择CMSIS DSP 库、 FatFs 文件系统、 USB、 lwIP 协议栈、 emwin 图形界面库、 FreeRTOS 实时系统。

1、SDK目录文件简介


1.1、boards:示例程序,boards 目录包含了 NXP 官方评估版 i.MX RT1050 EVK 的各种示例程序。

cmsis_driver_examples 提供了一些按照 CMSIS 标准编写的驱动范例。目前它仅包含I2C、 SPI 和 UART 的例子
demo_apps 包含了一些应用范例,如串口打印“hello world”、使用 lwip 协议栈进行网络通讯等内容。

driver_example 包含了 RT1052 每种片上外设的使用范例。(在其中的“gpio”目录下又包含了使用 gpio 外设点亮 LED 灯和中断检测的例子)

emwin_examples 包含了使用 emWin 图形软件库编写的图形界面示例。
project_template 包含了官方示例使用的一些必备文件,这些文件主要是针对官方评估板做了一些引脚定义、时钟配置等功能。

rtos_examples 包含了使用 FreeRTOS 实时操作系统的应用范例。
usb_examples 包含了各种 USB 程序示例。

 

1.2、CMSIS:包含 CMSIS 标准相关的文件

1.2.1、CMSIS 标准及库层次关系

因为基于 Cortex 系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件在同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的 Cortex 微控制器软件 的兼容性问题, ARM 与芯片厂商建立了 CMSIS 标准(CortexMicroController Software Interface Standard)。

所谓 CMSIS 标准,实际是新建了一个软件抽象层

CMSIS 标准中最主要的为 CMSIS 层,它包括了:
 CMSIS 核心层:其中包含用于访问内核寄存器的名称、地址定义,主要由 ARM 公司提供。
 设备外设函数层:提供了片上的核外外设的地址和中断定义,我们所说的固件库基本上是指这部分,主要由芯片生产商提供。
 CMSIS-DSP 层:包含各种 DSP 处理的运算库函数,主要由 ARM 公司提供。
 CMSIS 实时系统 API 层:包含了一些系统接口,主要由系统软件厂商定制。

 

方便软件的移植:CMSIS 层位于硬件层与操作系统或用户层之间,提供了与芯片生产商无关的硬件抽象层,可以为接口外设、实时操作系统提供简单的处理器软件接口,屏蔽了硬件差异。

 

 

1.2.2、CMSIS\Driver 目录: 片上外设相关的驱动原型
SDK 中的 CMSIS 下又分为 CMSIS\Driver 和 CMSIS\Include 目录,它们分别对应 CMSI核心层和设备外设函数层的内容

这两个目录分别包含了一些关于片上外设的 C 源文件和C 头文件,如 CAN、 I2C、 USART 等外设。

从这两个文件可以了解到, ARM 针对核外外设定义了 CMSIS 标准,相当于完成了软件架构师的工作,把外设驱动的模样大致勾勒出来,只有当芯片厂商针对自己的芯片定制之后,才会有真正可用的外设驱动库函数。

1.2.3、CMSIS\Include 目录:内核相关头文件

这就是 CMSIS 核心层,与前面只有架构的外设驱动不同,它们是由 ARM 公司提供的直接可用的内核驱动文件。具体包含了针对编译环境差异屏蔽的 core_compiler.h、cmsis_armcc.h 等文件,包含了定义 CMSIS 版本号的文件 cmsis_version.h 文件以及针对不同内核寄存器定义的 core_cm3.h、 core_cm4、 core_cm7.h 等文件。

1.2.4、DSP库

ARM 还针对自己的芯片提供了 DSP 处理的运算库函数,例如定点运算、傅利叶变换、PID 算法等。
 

2.1 devices: RT1052 固件库

SDK 中的 devices 目录包含的内容就是外设驱动固件库,该目录下的 MIMXRT1052 文件夹即是针对 RT1052 芯片的固件库。

fsl_device_registers.h 文件

固件库通常可以兼容很多型号的芯片,不同的芯片部分寄存器定义、芯片特性等内容可能会有差异,在此文件中通过宏条件来兼容不同芯片。

MIMXRT1052.h 文件

包含 RT1052 芯片的各种寄存器定义。
 

MIMXRT1052_features.h 文件
定义了一些关于 RT1052 芯片特性的内容。
 

system_MIMXRT1052.c\h 文件
头文件 system_MIMXRT1052.h中主要包含时钟、晶振定义以及源文件相应函数的声明。
system_MIMXRT1052.c 中则主要包含系统初始化和配置系统时钟的函数。

MIMXRT1052.xml 文件
MIMXRT1052.xml 文件是 NXP 的开发环境 MCUXpresso 需要的一些记录信息
 

2.1.2、arm、 gcc、 iar 及 mcuxpresso 目录
在不同的编译平台下,使用汇编语言编写的启动文件、各种版本的分散加载文件的语法稍有区别arm、 gcc、 iar 和 mcuxpresso 文件夹分别对应 KEIL、 ARM-GCC、 IAR 和 NXP 的 MCUxpresso 开发环境。

2.1.3、devices\MIMXRT1052\cmsis_drivers 目录

cmsis_drivers 目录下包含了一些 NXP 严格根据 CMSIS 标准编写的外设驱动文件。平台的可移植性。

2.1.4、devices\MIMXRT1052\drivers 目录
drivers 目录是固件库的主体,也称为外设驱动库。
drivers 目录下的文件侧重于把芯片外设的功能特性都尽可能展现出来,而 cmsis_drivers 目录下的文件因为注重CMSIS 标准的兼容性所以功能有所裁剪。

2.1.5、devices\MIMXRT1052\project_template 目录

这个 MIMXRT1052\project_template 目录与前面 boards\project_template 目录下都具有同名的文件,都是设计用于进行引脚定义、时钟配置功能的文件。
MIMXRT1052\project_template 目录下的文件是boards\project_template 中的文件的原型,即此目录下的文件大多只提供一个空壳,而boards\project_template 中的文件则是根据官方评估板做的定制。
 

2.1.6、devices\MIMXRT1052\template 目录
针对 KEIL 软件的 RTE 功能提供的外设驱动原型。


2.1.7、devices\MIMXRT1052\utilities 目录

utilities 是实用工具集的意思,此目录下包含了开发常用的一些调试工具,如串口输出、运行日志、通知功能以及 shell,通常我们都会把这些文件加到工程以方便开发。

2.1.8、devices\MIMXRT1052\xip 目录

这些文件主要是在 NOR Flash 存储器使用 XIP(executed in place)功能时需要的启动或加载程序。
 

3.1、docs:部分说明文档

《Getting Started with MCUXpresso SDK for i.MX RT1050 Derivatives》它介绍了使用官方评估板时的基础使用步骤。
 

4.1、middleware:中间件

SDK 中的 middleware 文件夹主要包含一些中间层软件,即这些软件常为应用层提供一些协议、架构上的支撑,它的主要部分又与芯片底层的硬件外设驱动(前面 drivers 目录中的文件)联系不甚紧密,是不同芯片之间通用的一些构件

 dma_manager:这部分用于管理芯片的 DMA 外设。
 emwin:这是应用广泛的嵌入式图形软件库,使用它提供的函数可以轻松开发出漂亮的图形界面。
 fatfs:这是一个嵌入式常用的文件系统,有了文件系统后能更好地管理存储器以及使用通用的文件形式来访问存储器。
 libjpeg:这是 JPEG 的编码解码库,使用它可以解析或生成 JPEG 格式的图片。
 lwip:这是嵌入式常用网络 TCP/IP 协议栈,使用协议栈可以方便地接入网络。
 sdmmc:它是遵照 SDIO 协议编写的集成识别、读写 SD 存储卡功能的驱动。
 usb:包含了遵照 USB 协议编写的基本驱动,在它之上可方便地编写 USB 应用程序。
 

5.1、rtos:实时操作系统

SDK 目录下的 rtos 文件夹包含了 FreeRTOS 实时操作系统的源代码及移植范例,使用操作系统可进行多任务编程。

6.1、tools:开发工具

tools 包含了一些开发工具,如 cmake,该工具可用于生成 GCC 开发环境编译需要的makefile 文件。
 

7.1、

在 SDK 的根目录下还包含了几个 xml 和 txt 文件,主要是包含MCUXpresso 生成的信息和 SDK 第三方构件的一些版权、、出处说明。
 

二、库各文件间的关系

使用固件库开发的程序架构

库文件关系

三、SDK_doc 帮助文档目录、文件说明

“MCUXpresso SDK API Reference Manual_MIMXRT105x”文件夹以及《MCUXpresso SDK API Reference Manual_MIMXRT105x.pdf》文件,它们就是关于固件外设驱动库的参考手册,它们分别以网页以及 pdf 文档的形式展现,内容是一样的。其它几个文件夹则分别对应 lwIP、 RTOS 以及 USB 组件的说明文档。
 

其它常用官方资料
除了 SDK 中的 API 参考手册外,我们还常常查询以下介绍芯片功能特性的文档, 这些资料已整理到了本书附录资料的“芯片文档”文件夹中。
 《IMXRT1050RM》 (参考手册)
这个文件全方位介绍了 RT1052 芯片的各种片上外设,它把 RT1052 的时钟、存储器架构、及各种外设、寄存器都描述得清清楚楚。当我们对 RT1052 的外设感到困惑时,可查阅这个文档。 以直接配置寄存器方式开发的话,查阅这个文档寄存器部分的频率会相当高,但这样开发效率太低了。
 《IMXRT1050CEC》 (数据手册)
本文档相当于 RT1052 的 datasheet,包含了 RT1052 芯片的芯片架构、外设列表和芯片电器特性等说明。是制作硬件电路时常常参考的文档。
 《DDI0489D_cortex_m7_trm》 (Cortex-M7 技术参考手册)。
这个手册是由 ARM 公司提供的,它详细讲解了 Cortex 内核的架构和特性,要深入了解 Cortex-M 内核,这是首选,经典中的经典。

 

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值