【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。

这篇具有很好参考价值的文章主要介绍了【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系列文章目录

 1.连续打卡第一天:提前对CPK_RA2E1是瑞萨RA系列开发板的初体验,了解一下

2.开发环境的选择和调试(从零开始,加油)

3.欲速则不达,今天是对RA2E1 基础知识的补充学习。

4.e2 studio 使用教程

5.Keil配置使用(使用 RASC 生成 Keil 工程)

6.Keil配置使用(使用 RASC 生成 Keil 工程)

7.(电脑重装系统)学习RA产品家族选型手册

8.问题解决、学习RA寄存器、用寄存器的方式点亮第一个LED灯。

9.继续学习RA寄存器


文章目录

目录

系列文章目录

前言

一、FSP层次架构?

二、FSP工程架构

三、FSP库的一些重要概念

总结


前言

        昨天学习了RA寄存器的基础和使用,今天学习FSP固件库的基础和使用,并使用FSP固件库点亮第一个灯。其实在环境搭建的时候已经点亮了LED,今天是系统的学习,之前是囫囵吞枣,做出来就开心了,知其然更要知其所以然。


一、FSP层次架构?

【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。

RA MCU

        位于最底层的是 RA 系列微控制器硬件。不同系列的 RA 微控制器之间具有非常一致、高度兼容的外设硬件, 这为软件开发人员提供了极大的便利。

BSP

        往上一层是板级支持包(BSP)。BSP 处于 FSP 软件的底层,是 FSP 的功能基础。 BSP 负责 MCU 复位后初始化系统使程序执行进入 main 函数,并为上层软件提供其他服务。

        BSP 函数名称以 R_BSP_ 开头,BSP 宏以 BSP_ 开头,数据类型定义以 _bsp 开头, 以便于与 FSP 的其他部分区分开来。

HAL

        在 BSP 之上是硬件抽象层(Hardware Abstraction Layer (HAL)), 它以较小的内存占用量为外设提供高效的设备驱动程序,实现易于使用的接口, 使开发人员不必直接处理单片机的寄存器组,并使处于 HAL 层以上的软件更容易在整个 RA 产品家族中移植。 它是模块(Modules)的集合, 每个模块都是 RA 系列微控制器中可用的外设的驱动程序(比如 SPI、I2C、ADC), 其名称以 r_ 开头。所有这些模块本质上均与 RTOS 无关。 HAL 层除了“模块”以外还有:“接口”“实例” 等关键概念。

        HAL 层的函数的名称以 R_ 开头,格式一般为 R_<MODULE>_<Function>。 默认情况下,所有驱动函数都是非阻塞的,并返回执行状态。驱动函数本身不分配任何内存,调用时需要将内存传递给函数。

操作系统和中间件

        FSP 库首选支持 FreeRTOS,可以通过软件快速配置。 FreeRTOS 是非常流行的实时操作系统,支持多任务调度、任务通知、队列、互斥、信号量和软件计时器等功能, 其系统开销非常小,占用的内存也很小,性能可靠,经常被用于内存资源十分有限且需要实时响应处理的操作环境。

        中间件介于 HAL 硬件抽象层和用户应用层之间,为应用层提供服务。 FSP 的中间件支持包括:TCP/IP协议栈、USB协议栈、WiFi和蓝牙BLE协议栈、电容式触摸、FAT文件系统、图形库、加密等等。 FSP 中间件函数的名称命名格式一般为:RM_<MODULE>_<Function>

应用层

        该层为 FSP 层次划分的最顶层,包含了用户的应用代码。 用户通过 FSP 底层提供的直观、简单和统一的 API 接口调用下面各层,从而访问 FSP 的所有功能, 这样用户就能以非常简单和直接的方式编写易于理解、维护简单、移植方便的代码。

 以上知识由  野火  官方提供,写的很详细,欢迎大家学习。


二、FSP工程架构

  • 第一部分为 FSP 库及其配置,包括 ra、ra_cfg、ra_gen 这3个文件夹,它们由软件生成。

  • 第二部分为用户代码,包括 src 文件夹。

  • 第三部分为编译输出文件,包括 Debug 或 Release 文件夹 

Project
├─ ra
│  ├─ arm               包含 ARM CMSIS 代码
│  └─ fsp               包含 FSP 库本体
│     ├─ inc
│     │  ├─ api         FSP 接口 (FSP Interfaces)(接口包含 API 定义)
│     │  └─ instances   FSP 实例 (FSP Instances)(接口的实例)
│     └─ src
│        ├─ bsp         BSP 层 (Board Support Package)
│        │  ├─ cmsis    包含寄存器定义文件和启动文件
│        │  └─ mcu      包含 BSP 代码
│        └─ r_<module>  FSP 模块 (FSP Modules)(接口由模块实现,模块通过接口提供通用功能)
├─ ra_cfg               包含用户的 FSP 配置
├─ ra_gen               包含 FSP 配置
├─ Debug/Release        包含编译后生成的中间文件和最终可执行文件等
└─ src
   └─hal_entry.c        包含了用户裸机应用程序的入口函数 hal_entry。
                        当没有使用 RTOS 的时候,hal_entry 函数由C语言 main 函数调用,
                        所以其作用基本等同于 main

       【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。

        以上的这些都是,有软件自动生成,只是我们需要做一个了解,由(RASC)自动生成,RASC在往期文章中已经讲过,大家可以自行翻阅。


三、FSP库的一些重要概念

        使用FSP库开发,会极大的提高我们写程序的效率,使用一个新的东西,学习一个新的东西必然是密不可分一些理论知识,所以以下的基础概念需要了解,在往期文章中也提过:

  1. 模块(Modules):模块可以是外设驱动程序、纯软件或介于这两者之间,并且是 FSP 的构建模块。 模块通常是独立的单元,但它们可能依赖于其他模块。可以通过组合多个模块来构建应用程序,为用户提供所需功能。

  2. 模块实例(Module Instance)单个、独立的实例化(配置)模块。 例如,USB 端口可能需要使用 r_dmac 模块的两个实例与其他端口之间来回传输数据。

  3. 接口(Interfaces)接口包含 API 定义,具有相似功能的模块可以共用这些 API 定义。 模块通过这些定义提供通用功能。通过这些 API 定义,使用相同接口的模块可以互换使用。 可以将接口视为两个模块之间的合同,两个模块均同意使用合同中达成一致的信息进行协作。 接口只是定义,并不会增加代码的大小。

  4. 实例(Instances)接口规定所提供的功能,而接口的实例则真正实现了这些功能。 每个实例都与特定的接口关联,并使用接口中的枚举、数据结构和 API 原型。这样,应用程序便可以在需要时交换实例。

  5. 堆叠(Stacks)FSP 架构所采用的设计方式是,模块可以堆叠起来协同工作,从而形成了一个 FSP 堆。 将一个模块所能提供的功能与另一个模块所需要的功能相匹配,这就是堆叠过程。堆由顶层模块及其所有依赖项组成。

  6. 应用程序(Application):归用户所有并由用户维护的代码。

  7. 回调函数(Callback Functions):当有事件发生时(例如,USB 接收到一些数据时),将调用这些函数。 它们是应用程序的组成部分,如果是在中断使用,应尽量简短,因为它们将在中断服务程序内运行,会阻碍其他中断执行。

  8. 【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。

     以上知识来源于  野火  瑞萨开发,值得学习和转发,写的很详细,让每一个初学者不会在 迷茫。


总结

        这里对FSP库层次架构进行了一个系统的讲述,明天开始编程实战!!!文章来源地址https://www.toymoban.com/news/detail-426159.html


月明星稀

到了这里,关于【致敬未来的攻城狮计划】— 连续打卡第十天:FSP固件库开发及FSP配置详解。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [攻城狮计划]RT-Thread—详解UART设备(基于RA2E1)

    🚀🚀开启攻城狮的成长之旅!这是我参与的由 CSDN博客专家 架构师李肯和 瑞萨MCU 联合发起的「 致敬未来的攻城狮计划 」的第4天,点击查看活动计划详情 🚀🚀首先非常感谢李老师能给我参加这个计划的机会,让我有机会接触到许多的开发板,同时也感谢瑞萨官方 为我们

    2024年02月13日
    浏览(69)
  • Android攻城狮学鸿蒙-配置

    鸿蒙中的config.json应该类似于Android开发中Manifest.xml,可以进行页面的配置。根据顺序,会识别启动应用的时候,要打开哪个界面。 他人的学习文章连接,请点击 一个 HarmonyOS 应用可以包含多个 Ability,Ability 可以分为: Feature Ability(简称 FA),有界面,也被称为元程序 Parti

    2024年02月07日
    浏览(26)
  • Android攻城狮学鸿蒙 -- 点击事件

     具体参考:华为官网学习地址 对于一个按钮设置点击事件,跳转页面。但是onclick中,如果pages前边加上“/”,就没法跳转。但是开发工具加上“/”才会给出提示。不知道是不是开发工具的bug。(也是因为自己对于路径这些的使用规则不太清楚。)代码如下: 上述是方式一

    2024年02月07日
    浏览(36)
  • 开发攻城狮必备的Linux虚拟机搭建指南|

    hi,我是阿笠! 这篇文章主要面对的是不常搭建Linux操作系统环境的开发同学,文中介绍了基本操作步骤并且提供了相关云盘资源,都是为了节约时间! 因为从我自身来讲,作为一名后端开发,经常需要练习一些实操技术,比如Redis集群、LVS、Zookeeper等集群环境的搭建,虽然

    2024年02月02日
    浏览(26)
  • CV攻城狮入门VIT(vision transformer)之旅——VIT原理详解篇

    🍊作者简介:秃头小苏,致力于用最通俗的语言描述问题 🍊往期回顾:CV攻城狮入门VIT(vision transformer)之旅——近年超火的Transformer你再不了解就晚了! 🍊近期目标:写好专栏的每一篇文章 🍊支持小苏:点赞👍🏼、收藏⭐、留言📩   ​  在上一篇,我已经详细为大家

    2024年02月02日
    浏览(45)
  • 蓝桥杯十天冲刺计划

    唤我沈七就好啦。 蓝桥杯的比赛要进入倒计时了。 几分焦虑,几分兴奋。 在准备蓝桥杯的这几个月里自己也算学到了点东西。 前几天常年征战蓝桥杯的学长给我罗列了一些考前必须会默写的算法。 我感觉复习更加有方向性了,我又做了些整理和补充现在分享给大家~ 二分

    2023年04月09日
    浏览(39)
  • 第3章 业务连续性计划

    业务连续性计划(Business Continuity Plan, BCP): 用于在紧急情况下维持业务的连续运营。目标是通过策略、程序、流程将潜在的破坏性事件对业务的影响降至最低。 组织中的每个人, 都应接收业务连续性计划的基本意识培训。 具有特定角色的人员 ,例如急救人员和高级管理人员

    2024年02月08日
    浏览(30)
  • 新星计划打卡学习:VUE3引入element-plus

    目录 1、安装element-plus 2、安装按需导入插件 3、修改配置文件 4、添加页面内容 5、保存并重启项目 官网说要想使用element-plus需要先进行安装,并给出了三种安装方式,我选择了第三种。  报错了:  解决的办法: 原因是没有安装pnpm,看此博主文章进行解决 https://blog.csdn.n

    2024年02月16日
    浏览(42)
  • 遇见数据经济的未来,「BSV区块链高校人才培养计划」启动!

    很早以前,人工智能(AI)、自动驾驶、物联家居等创新应用的讨论就已经开始,数据的爆发性增长势不可挡。数据经济渗透到了我们生活的方方面面,但是,传统的基础设施却难以承载数据的指数性增长——解决这种“极端量级数据增长”的方法之一,就是利用区块链技术

    2024年02月02日
    浏览(40)
  • 星际门计划:微软与OpenAI联手打造未来AI超级计算机

      每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与

    2024年04月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包