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® 库 (github.com/renesas/fsp…) 查看
或下载 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 基础》
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新