一、RA产品家族简介
RA 产品家族单片机 (MCU) 于 2019 年 10 月推出, 丰富了瑞萨的 32 位 MCU 系列产品。 在此之前,瑞萨拥有基于 Arm® Cortex®-M 内核的 Renesas Synergy™ 平台, 该平台将 MCU 与商业级、有品质保证的软件和开发工具融于一体。 瑞萨的另一条产品线 Renesas eXtreme (RX) 产品家族则采用自有的 RX 内核,具有业界领先的32 位 CoreMark®/MHz 性能以及大容量代码闪存和 SRAM。 瑞萨 RA 家族单片机,将 Synergy 平台与 RX 产品的优势有机融合,使该产品能够满足客户的不同需求并为助力客户创造价值。全新 RA 产品家族包括: RA2 系列,适用于低功耗应用; RA4 系列,适用于需要低功耗、高性能和高安全性的设备; RA6 系列,具有卓越的连接性能和安全性能; RA8 系列,可以为采用人机界面、连接、安全和模拟功能的应用提供出色性能。
RA 产品家族的工具生态系统可为工程师提供支持,这套系统提供了基于 Eclipse 的 e2 studio 集成开发环境(IDE)、编译器、片上调试器、 评估板、设计文件、原理图、印刷电路板 (PCB) 布线和物料清单 (BOM)。 瑞萨开发了易于使用的灵活配置软件包 (FSP),可提供一种开放式架构,允许设计人员重用其原有代码,并将这些代码与瑞萨的软件示例相结合。此外, 瑞萨还构建了一个全面的 RA 合作伙伴生态系统,以提供开箱即用的其他软件和硬件构建模块。
瑞萨 RA 产品家族单片机包括四个系列——已经发布的 RA2、 RA4 和 RA6 系列,以及计划发布的 RA8 系列——适用于从小型电池供电的传感器应用到高性能、处理密集型的嵌入式终端产品。借助用于模拟、连接、人机界面、安全、电机和逆变器控制等的片内外设,该产品家族非常适合快速扩张的物联网 (IoT) 和边缘计算应用领域,但并不仅限于此。所有 RA MCU 均基于 32 位的 Arm® Cortex®-M 内核: RA2 系列基于 M23 内核,而 RA4 和 RA6 系列器件基于M4F 内核或带有 Arm v8-M TrustZone® 的 M33F 内核。所有这些器件均包含 Arm 的标准外设,如嵌套矢量中断控制器 (NVIC)、 Arm 存储器保护单元 (MPU) 或串行线调试 (SWD) 和嵌入式跟踪缓冲器 (ETB),非常便于开发。此外, 瑞萨还在 Arm 没有解决方案和需要额外性能或功能的领域加入了自己的知识产权 (IP) 模块。这些额外的 IP 模块基于瑞萨的成熟技术,可满足 RA 产品家族的需求。
RA 产品家族产品型号中的不同数字和字母并不容易,因此下图解释了不同字段的含义
灵活配置软件包
适用于 RA 产品家族单片机的瑞萨灵活配置软件包 (FSP) 提供了一种快速的通用方法,可创建智能物联网安全互联设备所需的软件,并已专门针对 RA 单片机的架构进行过优化。 FSP 具有开箱即用的中间件-和协议(例如 TCP/IP 协议或安全功能协议)、板级支持包 (BSP)(可为瑞萨的 MCU 和开发板提供启动和初始化代码),以及用于所有外设的硬件抽象层 (HAL) 驱动程序。这些驱动程序不仅性能高,而且占用的存储空间也极小。
所有驱动程序、 协议栈和中间件功能均可通过易于使用的应用程序编程接口 (API) 进行访问,从而轻松实现互换,并可与实时操作系统 (RTOS) 以及裸机实现搭配使用。此外,软件的各个层均内置了对 Arm 的 TrustZone的感知,并使用 Arm 的统一 API 来保证安全。 FSP 是开源软件,提供完整的源代码,但仅限用于瑞萨的硬件。除了上述软件外, FSP 还采用 Amazon 的 FreeRTOS® 作为实时操作系统。此系统可通过符合 Cortex 微控制器软件接口标准 (CMSIS) 的 Arm RTOS 接口进行访问。借助此标准接口,软件工程师能够使用其选择的任何RTOS,而不会失去 FSP 的优势。
灵活配置软件包 (FSP) 专门针对 RA 产品家族 MCU 的架构进行优化, RA 产品家族 MCU 的开发也充分兼顾该软件的特性。在开发 FSP 的过程中,首要目标是为工程师提供简单高效的功能和驱动程序,以简化嵌入式系统中常见用例(如通信和安全)的实现。它们构成了一个开放的软件生态系统,可以灵活使用旧代码并与第三方工具结合使用。
FSP 集成了中间件协议栈、独立于 RTOS 的硬件抽象层 (HAL) 驱动程序(适用于生产),以及作为所有这些组件基础工具的板级支持包 (BSP),还有广泛使用的来自 Amazon Web Services® 的 FreeRTOS™ 实时操作系统 (RTOS)。以此为嵌入式系统设计提供了一个经过优化且易于使用的高质量软件包,该软件包可扩展,并且可以通过操作简单而功能强大的应用程序编程接口 (API) 调用来访问所有功能,从而轻松实现互换性。整个 FSP 完全由瑞萨公司提供支持,开发人员可以从集成开发环境或 FSP 的 GitHub® 库 (https://github.com/renesas/fsp/releases) 查看
或下载 FSP 的源代码,从而全面了解 FSP。
如前文所述,灵活配置软件包 (FSP) 是一款综合性软件,旨在以较低的内存占用量提供快速高效的驱动程序和协议栈,可满足嵌入式系统软件开发阶段的大多数需求。 FSP 中包括以下部分:
板级支持包 (BSP),针对每个硬件评估板和 RA 产品家族的微控制器进行定制。它为所有支持的模块提供起始代码并作为这些模块的基础,以确保 FSP 模块顺利运行。使用自定义硬件的开发人员也可以充分利用BSP,因为开发人员可以借助 e2 studio 中内置的 User Pack Creator 针对其最终产品和电路板来定制 BSP。
-
独立于 RTOS 的硬件抽象层 (HAL) 驱动程序,以较少的内存占用量为所有片上外设和系统服务提供高效的驱动程序。它们可以从您的硬件中提取位设置和寄存器地址,因此无需对微控制器中底层硬件的文档进行大量的深入研究。
-
中间件栈和协议,可以独立使用或与 RTOS 结合使用,使用 Arm® 提供的统一 API。它们简化了连接功能的实现,如 WiFi、 Bluetooth® 低功耗或到云服务的 MQTT 连接。还包括其他协议栈,例如支持 USB 传输、图形处理或电容式触摸的协议栈。
-
FreeRTOS™ 实时操作系统提供可进行多任务处理的实时内核(采用抢占式调度形式), 面向对象的灵活RAM 分配,以及用于任务通知、队列、信号量和缓冲区的不同实现方法。 FreeRTOS+FAT 和 FreeRTOS+TCP库为需要网络连接的应用提供额外的功能。 用户可自行选择是否使用 FreeRTOS; FSP 也可以与裸机系统或任何其他 RTOS 一起使用。
-
FSP 中还包含其他第三方软件解决方案。例如, Arm® Cortex® 微控制器软件接口标准(CMSIS) 硬件抽象层、 Arm Mbed™ Crypto 和 TLS 加密库、 Arm Littlefs 故障安全文件系统、 emWin 嵌入式图形库和 Segger的 J-Link® 调试器软件,以及 TES D/AVE 2D 图形渲染库。
在 FSP 开发过程中要实现的一个目标是,创建简单易用的软件以及条理清晰、整齐划一的 API,并进行规范的文档记录。工程师针对每个模块都编制了详细的用户文档(包括示例代码),位于 GitHub 资源库中或通过e2 studio 的智能手册功能,可在需要的位置(即开发环境内部)显示信息。 FSP 使用 Doxygen 作为默认的文档工具,因此各模块源代码的 Doxygen 注释中也提供了其他详细信息
灵活配置软件包的 API 简介
瑞萨的设计人员在为 RA 产品家族单片机开发灵活配置软件包 (FSP) 时,考虑到了易用性。 FSP 功能十分强大,但使用却极其简单,这是因为它的应用程序编程接口 (API) 架构非常简单和全面,在封装了 FSP 复杂性的同时,可由程序员完全控制各种功能。即使对诸如 USB 传输之类的复杂任务进行编程,也只需几行代码就可以实现,无需阅读厚厚的手册或研究指定单片机外设的寄存器组的每一个特性,让开发人员可以专注于开发应用程序的函数集,而不是编写对设计毫无价值但编写和测试却相当耗时的低级代码,因此极大地减轻了他们的负担。我们来了解一下 API 的一些详细信息!
在深入了解 API 的详细信息之前,我们应大致了解不同 API 和文件的命名约定。了解后,不仅应用程序编程变得更容易,而且数月之后,也更容易理解其他程序员的代码或自己的代码。后面这一点不容小觑,但我们往往会低估它的作用。掌握这些知识后,灵活配置软件包 (FSP) 所提供的清晰结构会大有裨益。
一般来说,内部函数遵循“NounNounVerb”(名词名词动词)的命名约定,例如 communicationAbort()。所有数据均在函数的输出参数中返回,并且第一个参数始终是指向其控制结构的指针。由于此结构存储了模块实例的内存地址,因此用户应用程序可以灵活地决定将其放置在何处。
下面是 FSP 中常用前缀的列表:
来源:《瑞萨 RA MCU 基础》