《DN8P1开发指南_V1.0》第六章 瑞萨FSP灵活软件包简介

第六章 瑞萨FSP灵活软件包简介

瑞萨电子灵活配置软件包(FSP) 是用于嵌入式系统设计的高质量增强型软件包,支持瑞萨电子RA产品家族Arm微控制器,提供用户友好的界面且可灵活扩展,确保从入门级到高性能的整个RA微控制器的软件兼容性。 在全新Arm® TrustZone®和其他高级安全功能的支持下FSP提供一种快速、通用的方式,使用量产级驱动程序、Azure RTOS、FreeRTOS™和其他中间件协议栈来构建安全、互联的物联网设备。
本章将分为如下几个小节:
6.1 初识FSP软件包
6.2 FSP的整体架构与分层
6.3 新建FSP工程

6.1 初识FSP软件包
FSP(Flexible Software Package),中文称为灵活软件包,是瑞萨电子专为 RA 系列 Cortex‑M 内核 MCU 打造的官方通用软件开发平台,类似于STM32的HAL/LL库、GD32的标准库,但功能更强大、更自动化。简单来讲:FSP软件包 = 驱动库 + 可视化配置工具 + RTOS + 中间件 + 自动代码生成。
FSP 的主要特点:
1,图形化可视化配置:时钟、引脚、外设、中断、DMA全部点点鼠标配置,自动生成初始化代码。
2,高质量量产级驱动:所有外设驱动经过严格验证,稳定、高效、低内存占用。
3,支持多种运行模式:裸机、FreeRTOS和Azure RTOS(ThreadX)。
4,丰富中间件:集成USB、以太网、CAN、IoT协议、安全加密等组件
5,强大安全性:原生支持 TrustZone、安全启动、加密加速,适合物联网与工业产品。

6.2 FSP的整体架构与分层
FSP(Flexible Software Package)是瑞萨为RA系列MCU打造的分层式固件库,由BSP、HAL、中间件和应用层组合而成,并原生集成RTOS,兼顾高性能、低开销与跨型号移植性。下图为FSP整体架构总览:

image001

图6.2.1 FSP整体架构

上图中,从下到上分为四层核心结构,由底层硬件支撑到上层应用逻辑逐层封装,整体结构:BSP板级支持包HAL硬件抽象层中间件/RTOS层TrustZone多核安全框架每一层都依赖下层提供基础能力,同时为上层提供标准化接口,实现软硬件解耦。

一、BSP 板级支持包(最底层)
芯片启动文件、向量表、时钟初始化、内存布局等,提供最底层硬件支撑。

二、HAL 硬件抽象层(核心)
提供FSP的核心驱动层,连接底层BSP与上层应用,实现硬件无关化编程,也是我们日常开发使用最多的层级。
1,基础外设模块
包含ADC、DAC、UART、SPI、I2C、定时器、看门狗、DMA、时钟控制器等传统单片机外设驱动,提供标准化的R_xxx_Open/Read/Write系列 API,直接对接芯片寄存器。
2,存储与接口模块
包含SD/MMC、QSPI Flash、MRAM、MIPI CSI、PDM音频接口等高速外设驱动,适配工业、物联网常用存储与音视频硬件。
3,人机交互模块
包含电容触摸、按键、JPEG图像编解码、2D图形引擎等,用于实现屏幕显示、触控交互功能。
4,传感器与控制模块
包含电机控制、传感器信号采集、低功耗检测、低功耗模式管理,适配电机驱动、电池供电设备。
5,安全加密模块(SCE)
提供硬件加密、解密、哈希校验接口,对接芯片内置安全引擎,用于数据加密、固件防篡改。

三、RTOS 操作系统层& Middleware 中间件层
基于 HAL 层驱动,提供操作系统、通信、文件系统、图形界面等应用级功能组件,分为 Azure RTOS、FreeRTOS两大生态,二者组件功能对齐,仅API不同。
1,实时操作系统(Real‑Time OS)
提供嵌入式多任务运行环境,支持任务调度、优先级管理、消息队列、信号量等核心RTOS能力,分为两大体系:
Azure RTOS(ThreadX):瑞萨官方主推RTOS,稳定性强、资源占用小,适配高可靠工业场景;
FreeRTOS:开源免费 RTOS,社区生态完善,适合通用物联网、低成本产品。

2,配套中间件组件(两大RTOS生态通用)
(1)连接通信组件(Connectivity)
基于串口、以太网硬件驱动,封装BLE、WiFi、MQTT、USB 设备协议(CDC、MSC、HID),实现设备联网、蓝牙透传、USB通信等功能;
(2)安全组件(Security)
集成 TLS/SSL 传输加密、硬件加密加速,实现网络通信、数据存储的安全防护;
(3)文件系统(File System)
对接 Flash、SD卡硬件,提供exFAT、LittleFS等文件系统,实现文件读写、存储管理;
(4)图形界面(Graphics)
包含 GUIX、emWin 图形库,搭配配套开发工具,快速实现人机交互界面;
(5)跟踪调试组件(Trace)
用于系统性能监控、任务调度调试,辅助定位RTOS运行异常。

3,独立功能组件
除RTOS配套组件外,架构还提供独立安全组件、AI组件、触控组件:
(1)安全组件:安全启动、固件加密、TinyCrypt轻量加密库;
(2)AI组件:对接Ethos‑U NPU硬件,提供TinyML推理、AI算子加速接口;
(3)触控组件:标准化电容触摸API,可直接调用HAL层触摸驱动。

四、ARM TrustZone &多核框架
FSP的顶层安全框架,用于构建安全域+非安全域的双域运行环境,支持多核处理器调度。
FSP是瑞萨RA MCU的官方核心软件开发平台,以图形化配置、自动代码生成、跨芯片兼容、RTOS原生支持、高安全性为核心优势,大幅降低开发难度、提升开发效率与稳定性。
掌握FSP,是学习瑞萨 RA 系列单片机的第一步,也是最重要一步。

6.3 新建FSP工程
本章基于RA8P1(M85+M33双核+NPU),采用瑞萨官方 e²studio IDE+FSP软件包,分步完成工程创建、时钟图形化配置、编译下载等。

6.3.1 开发环境前置准备
1,e² studio下载与安装,请参考本教程的第三章节。
2,FSP固件包,本教程和例程使用的是FSP_6.4.0版本。
3,调试器,推荐使用E2 Lite下载器
这些前置准备完成后,才能进行工程新建和工程下载与调试。

6.3.2 工程新建七步流程
1,打开e²studio,单击文件新建(N)瑞萨C/C++项目Renesas RA,如下图所示。

image003

图6.3.2.1 进入新建Renesas RA项目界面

2,进入Renesas RA 项目模板后,单击“Renesas RA C/C++ Project”选项,如下图所示。

image005

图6.3.2.2 选择项目模板

3,编写项目名称和项目地址,如下图所示。

image007

图6.3.2.3 编写项目名称和项目地址

注意:项目名称和项目地址禁止使用中文、空格、特殊字符。

4,进入项目工程配置,选择FSP版本、目标芯片、操作内核、编程语言、下载器等参数。注意:本教程选用FSP6.4.0版本、目标芯片为R7KA8P1KFLCAC芯片、LLVM编译工具和E2 Lite(ARM)下载器,如下图所示。

image009

图6.3.2.4 项目工程配置

5,下一步后,进入项目类型选择,一般我们选择“Flat (Non-TrustZone) Project”无TrustZone类型项目。

image011
image013
图6.3.2.5 选择无TrustZone工程

6,进入构建项目和RTOS选择,这里我们选择“No RTOS”,如下图所示。

image015

图6.3.2.6 选择“No RTOS”工程

7,项目模板选择(Project Template Selection),选择瑞萨基础例程,如下图所示。

image017

图6.3.2.7 项目模板选择

点击“完成”后,即可创建工程,此时e²studio提示是否打开FSP Comfiguration透视图,如下图所示。

image019

图6.3.2.8 打开透视图

到了这里,创建瑞萨项目完成。下面笔者重点讲解基础工程的文件结构,如下图所示。

image021

图6.3.2.9 00_basics工程

接下来将按照“文件夹→文件”的顺序,逐项详细说明各个文件夹和文件说明如下:
1,.settings:e² studio IDE 工程配置缓存目录,存放IDE界面配置、编译环境、编辑器格式、工具链路径、代码格式化、索引配置。
2,Debug:编译输出目录(Debug调试版),工程Build后生成的中间文件、目标文件.o、链接文件.elf、烧录文件.mot/.hex全部在此。
3,ra:存放瑞萨FSP底层HAL驱动源码:BSP内核初始化、CGC时钟、SCI/SPI/GPT/ADC/ETH等外设驱动源码。
4,ra_cfg:硬件配置头文件目录(FSP图形化配置生成的宏定义)。
5,ra_gen:FSP自动生成的初始化源文件(最核心配置代码目录)。比如FSP图形配置后一键生成硬件初始化C代码,对接时钟树、外设初始化等。
① hal_data.c/h:全局外设实例结构体(如g_uart0_ctrl、g_cgc0_cfg时钟配置结构体,CGC 时钟配置全部存在这里);
② pin_data.c:所有IO引脚复用配置代码(外设引脚配置);
6,script:存储瑞萨FSP工程的链接脚本。
7,src:用户应用源码目录。src/hal_entry.c文件定义了工程入口函数void hal_entry(void),替代传统main(),系统BSP初始化完成后进入这里。用户新建.c/.h全部放在src,外设业务代码、应用逻辑、测试代码。
8,工程根目录配置文件:
① .cproject:Eclipse (e²studio基于Eclipse) 工程标识文件,定义工程类型、工作空间关联、项目属性。
② .project:编译配置核心,GCC编译器参数、头文件包含路径、宏定义、链接参数、源码编译筛选,FSP自动维护。
9,TrustZone安全分区配置文件(RA8P1双核工程特有,Flat无安全工程没有):
① .secure_xml:FSP安全配置编辑器配置文件,对应Security标签页CGFSAR寄存器配置(时钟/外设寄存器安全权限:Secure/NonSecure);
② .secure_rzone/azone:IDAU/MSAU地址分区配置,对应最开始的芯片地址映射表,划分 Secure 安全域(CPU1)、NonSecure 非安全域(CPU0)的MRAM/SRAM/外设寄存器地址;
在FSP Security页面修改安全配置后,这三个文件自动变更,决定链接脚本分区
10,00_basics Debug_Flat.launch:调试启动配置文件:e²studio Debug调试配置,E2-Link/Jlink下载参数、调试接口、下载地址(MRAM起始地址)、调试脚本;双击 Debug 即读取这个launch配置下载调试。
11,configuration.xml:FSP工程配置总文件(FSP Configurator源文件)。简单来讲:存储你在FSP可视化配置器全部配置:
① CGC时钟配置(MOS/SOS/PLL1/PLL2分频参数)、PIN引脚配置、Stack外设添加、BSP 堆栈、RTOS选型;
② 双击打开就是FSP图形配置界面,所有时钟/外设配置全存在这个xml,备份工程只要保留此文件即可恢复所有配置。
从上述工程目录解析可以看出,FSP 工程默认仅提供 src 文件夹用于存放用户代码,当项目规模较大时,容易出现代码结构混乱、层次不清、文件查找困难、难以维护等问题。
为了让工程结构更加清晰规范,我们在工程根目录下新增三个自定义文件夹ATK_Middlewares、BSP和Readme。
ATK_Middlewares:用于存放第三方中间件、组件库、协议栈等通用模块;
BSP:用于存放用户自行编写的板级驱动程序,如LED、按键、UART、SPI、I2C等底层驱动,如下图所示。

image023

图6.3.2.10 BSP文件夹存储驱动库

Readme:用于存放工程说明文档(readme.txt),记录工程用途、功能实现、使用说明等信息。如下图所示。

image025

图6.3.2.11 Readme文件夹内容

通过对工程目录分层规划,规避了原生src单目录代码杂乱的弊端,实现驱动、第三方组件、工程文档分类管理,后续项目迭代、功能拓展与项目交接都更加便捷,为本工程规范化开发打下良好基础。

posted @ 2026-10-21 11:09  正点原子  阅读(8)  评论(0)    收藏  举报