一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文初識瑞薩FSP固件庫

瑞薩MCU小百科 ? 來源:野火電子 ? 2025-07-19 09:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第9章

初識瑞薩FSP固件庫

9.1瑞薩FSP庫簡介

FSP全稱為“Flexible Software Package”,中文譯為“靈活配置軟件包”。

FSP旨在以較低的內存占用量提供快速高效的驅動程序和協(xié)議棧。FSP集成了中間件協(xié)議棧、獨立于RTOS的硬件抽象層(HAL)驅動程序,以及最基礎的板級支持包(BSP)驅動程序。FSP還支持FreeRTOS實時操作系統(tǒng)(RTOS)。

如圖所示為FSP的軟件架構。

2dda5784-62ea-11f0-a6aa-92fbcf53809c.png

FSP由瑞薩公司維護和提供支持,開發(fā)人員可以從集成開發(fā)環(huán)境(e2s)或FSP的GitHub倉庫查看或下載FSP的源代碼,從而全面地了解FSP。(您可復制下方鏈接至瀏覽器,或掃描二維碼進行查看)

FSP的GitHub倉庫

https://github.com/renesas/fsp

提示

FSP是使用C99(C語言標準)編寫的開源軟件,提供完整的源代碼,但僅限用于瑞薩的硬件。

9.2瑞薩FSP庫架構分析

下面簡單分析一下瑞薩FSP庫架構。本小節(jié)內容當中的一些概念可能會讓初學者覺得較難理解,對此,建議是大概瀏覽然后跳過即可,這不影響后面的章節(jié)閱讀,現(xiàn)在只需要大概、初步地了解一遍,不求甚解,等到學習到了后期再回過頭來看,或對FSP庫架構會有新的體會。

9.2.1FSP庫層次結構

如圖所示,展示了FSP庫的層次劃分,我們可以很直觀地看到進行層次劃分之后的軟件結構。

2df6c22a-62ea-11f0-a6aa-92fbcf53809c.png

RA MCU

位于最底層的是RA系列微控制器硬件。不同系列的RA微控制器之間具有非常一致、高度兼容的外設硬件,這為軟件開發(fā)人員提供了極大的便利。

BSP

往上一層是板級支持包(BSP)。BSP處于FSP軟件的底層,是FSP的功能基礎。BSP負責MCU復位后初始化系統(tǒng)使程序執(zhí)行進入main函數(shù),并為上層軟件提供其他服務。

BSP函數(shù)名稱以R_BSP_開頭,BSP宏以BSP_開頭,數(shù)據(jù)類型定義以_bsp開頭,以便于與FSP的其他部分區(qū)分開來。

HAL

在BSP之上是硬件抽象層(Hardware Abstraction Layer(HAL)),它以較小的內存占用量為外設提供高效的設備驅動程序,實現(xiàn)易于使用的接口,使開發(fā)人員不必直接處理單片機的寄存器組,并使處于HAL層以上的軟件更容易在整個RA產(chǎn)品家族中移植。它是模塊(Modules)的集合,每個模塊都是RA系列微控制器中可用的外設的驅動程序(比如SPI、I2CADC),其名稱以r_開頭。所有這些模塊本質上均與RTOS無關。HAL層除了“模塊”以外還有:“接口”、“實例”等關鍵概念。

HAL層的函數(shù)的名稱以R_開頭,格式一般為R__。默認情況下,所有驅動函數(shù)都是非阻塞的,并返回執(zhí)行狀態(tài)。驅動函數(shù)本身不分配任何內存,調用時需要將內存?zhèn)鬟f給函數(shù)。

操作系統(tǒng)和中間件

FSP庫首選支持FreeRTOS,可以通過軟件快速配置。FreeRTOS是非常流行的實時操作系統(tǒng),支持多任務調度、任務通知、隊列、互斥、信號量和軟件計時器等功能,其系統(tǒng)開銷非常小,占用的內存也很小,性能可靠,經(jīng)常被用于內存資源十分有限且需要實時響應處理的操作環(huán)境。

中間件介于HAL硬件抽象層和用戶應用層之間,為應用層提供服務。FSP的中間件支持包括:TCP/IP協(xié)議棧、USB協(xié)議棧、WiFi和藍牙BLE協(xié)議棧、電容式觸摸、FAT文件系統(tǒng)、圖形庫、加密等等。FSP中間件函數(shù)的名稱命名格式一般為:RM__

應用層

該層為FSP層次劃分的最頂層,包含了用戶的應用代碼。用戶通過FSP底層提供的直觀、簡單和統(tǒng)一的API接口調用下面各層,從而訪問FSP的所有功能,這樣用戶就能以非常簡單和直接的方式編寫易于理解、維護簡單、移植方便的代碼。

9.2.2FSP庫工程結構

我們再來看由軟件自動生成的FSP庫工程的結構究竟是什么樣子的。

列表1:FSP庫工程結構

左右滑動查看完整內容

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_ FSP 模塊 (FSP Modules)(接口由模塊實現(xiàn),模塊通過接口提供通
用功能)
├─ ra_cfg 包含 FSP 庫的配置(包括 BSP 和 HAL 層的配置)
├─ ra_gen 包含用戶的 FSP 配置數(shù)據(jù)(包括時鐘、引腳、各個外設、中斷向量等
配置數(shù)據(jù))
├─ Debug/Release 包含編譯后生成的中間文件和最終可執(zhí)行文件等
└─src
└─hal_entry.c包含了用戶裸機應用程序的入口函數(shù) hal_entry。
當沒有使用 RTOS 的時候,hal_entry 函數(shù)由 C 語言main函數(shù)
調用,
所以其作用基本等同于main

上面的FSP庫工程的結構其實非常的簡單。只要我們把“Project”下的內容分為三部分:

第一部分為FSP庫及其配置,包括ra、ra_cfg、ra_gen這3個文件夾,它們由軟件生成。

第二部分為用戶代碼,包括src文件夾。

第三部分為編譯輸出文件,包括Debug或Release文件夾。

那么,我們便不需要深入地理解FSP庫的架構也可以很好的上手FSP庫進行開發(fā),因為我們在配置FSP庫的時候,是通過軟件的圖形界面(FSP配置器)來配置的。

警告

注意:任何由軟件生成的文件用戶都不應該去編輯!因為在每次進行FSP配置之后單擊“生成項目內容(Generate Project Content)”圖標按鈕時,軟件都會自動重新創(chuàng)建這些文件,因此任何的更改都將被覆蓋。

對于想要深入理解FSP庫的讀者,可以嘗試閱讀其源碼。同時,要想清晰地理解FSP庫的架構,需要掌握以下幾個相關的重要概念。

1.模塊(Modules):模塊可以是外設驅動程序、純軟件或介于這兩者之間,并且是FSP的構建模塊。模塊通常是獨立的單元,但它們可能依賴于其他模塊??梢酝ㄟ^組合多個模塊來構建應用程序,為用戶提供所需功能。

2.模塊實例(Module Instance):模塊的單個、獨立實例化(模塊配置)。例如,USB端口可能需要使用r_dmac模塊的兩個實例與其他端口之間來回傳輸數(shù)據(jù);又例如,當應用程序需要使用兩個GPT定時器時,每一個這個定時器都是r_gpt模塊的實例。

3.接口(Interfaces):接口包含API定義,具有相似功能的模塊可以共用這些API定義。模塊通過這些定義提供通用功能。通過這些API定義,使用相同接口的模塊可以互換使用??梢詫⒔涌谝暈閮蓚€模塊之間的合同,兩個模塊均同意使用合同中達成一致的信息進行協(xié)作。接口只是定義,并不會增加代碼的大小。

4.實例(Instances):接口規(guī)定所提供的功能,而接口的實例則真正實現(xiàn)了這些功能。每個實例都與特定的接口關聯(lián),并使用接口中的枚舉、數(shù)據(jù)結構和API原型。這樣,應用程序便可以在需要時交換實例。

5.堆疊(Stacks):FSP架構所采用的設計方式是,模塊可以堆疊起來協(xié)同工作,從而形成了一個FSP堆。將一個模塊所能提供的功能與另一個模塊所需要的功能相匹配,這就是堆疊過程。堆由頂層模塊及其所有依賴項組成。

6.應用程序(Application):歸用戶所有并由用戶維護的代碼。

7.回調函數(shù)(Callback Functions):當有事件發(fā)生時(例如,USB接收到一些數(shù)據(jù)時),中斷服務程序(ISR)將調用這些函數(shù)。中斷回調函數(shù)是應用程序的組成部分,如果是在中斷使用,應盡量簡短,因為它們將在中斷服務程序內運行,會阻礙其他中斷執(zhí)行。

關于接口與實例的概念:接口規(guī)定所提供的功能,而實例則真正實現(xiàn)了這些功能。每個實例都與特定的接口關聯(lián),并使用接口中的枚舉、數(shù)據(jù)結構和API原型。這樣,使用接口的應用程序便可以根據(jù)需要交換實例,從而在需要更改代碼或所用外設時節(jié)省大量的時間。在RA產(chǎn)品家族MCU上,一些外設(例如IIC)將具有一對一的映射關系(只映射到IIC接口),而其他外設(例如SCI)將具有一對多的映射關系(實現(xiàn)三個接口:IIC、UART、SPI)。如下圖所示展示了這種映射關系。

2e053594-62ea-11f0-a6aa-92fbcf53809c.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 瑞薩
    +關注

    關注

    36

    文章

    22386

    瀏覽量

    88051
  • 驅動程序
    +關注

    關注

    19

    文章

    862

    瀏覽量

    49118
  • 固件庫
    +關注

    關注

    2

    文章

    98

    瀏覽量

    15277
  • FSP
    FSP
    +關注

    關注

    0

    文章

    45

    瀏覽量

    7429

原文標題:初識瑞薩FSP固件庫——瑞薩RA系列FSP庫開發(fā)實戰(zhàn)指南(22)

文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    e2studio(1)----芯片之搭建FSP環(huán)境

    /software-tool/flexible-software-package-fsp 進入后選擇電子 RA 靈活配置軟件包 (FSP)。
    發(fā)表于 09-30 15:28

    靈活軟件包 (FSP) v2.2.0 用戶手冊

    靈活軟件包 (FSP) v2.2.0 用戶手冊
    發(fā)表于 02-03 19:22 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包 (<b class='flag-5'>FSP</b>) v2.2.0 用戶手冊

    靈活軟件包(FSP) v1.3.0 用戶手冊

    靈活軟件包 (FSP) v1.3.0 用戶手冊
    發(fā)表于 03-13 19:11 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v1.3.0 用戶手冊

    靈活軟件包(FSP) v1.2.0 用戶手冊

    靈活軟件包 (FSP) v1.2.0 用戶手冊
    發(fā)表于 03-13 19:22 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v1.2.0 用戶手冊

    靈活軟件包(FSP) v0.8.0 用戶手冊

    靈活軟件包 (FSP) v0.8.0 用戶手冊
    發(fā)表于 03-14 19:10 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v0.8.0 用戶手冊

    靈活軟件包(FSP) v4.3.0 用戶手冊

    靈活軟件包 (FSP) v4.3.0 用戶手冊
    發(fā)表于 05-12 19:23 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v4.3.0 用戶手冊

    e2studio----更新FSP版本

    本篇文章主要介紹如何在FSP更新新版本之后,同步更新e2studio軟件中的FSP版本。
    的頭像 發(fā)表于 12-07 10:47 ?3315次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>e2studio----更新<b class='flag-5'>FSP</b>版本

    靈活軟件包(FSP) v4.4.0 用戶手冊

    靈活軟件包 (FSP) v4.4.0 用戶手冊
    發(fā)表于 06-29 18:59 ?1次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v4.4.0 用戶手冊

    靈活軟件包(FSP) v4.1.0 用戶手冊

    靈活軟件包 (FSP) v4.1.0 用戶手冊
    發(fā)表于 06-30 19:07 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v4.1.0 用戶手冊

    靈活軟件包(FSP) v4.0.0 用戶手冊

    靈活軟件包 (FSP) v4.0.0 用戶手冊
    發(fā)表于 06-30 19:42 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v4.0.0 用戶手冊

    靈活軟件包(FSP) v3.8.0 用戶手冊

    靈活軟件包 (FSP) v3.8.0 用戶手冊
    發(fā)表于 06-30 20:09 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v3.8.0 用戶手冊

    靈活軟件包(FSP) v2.4.0 用戶手冊

    靈活軟件包 (FSP) v2.4.0 用戶手冊
    發(fā)表于 07-04 19:10 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v2.4.0 用戶手冊

    靈活軟件包(FSP) v1.2.0 用戶手冊

    靈活軟件包 (FSP) v1.2.0 用戶手冊
    發(fā)表于 07-04 20:40 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v1.2.0 用戶手冊

    靈活軟件包(FSP) v1.1.0 用戶手冊

    靈活軟件包 (FSP) v1.1.0 用戶手冊
    發(fā)表于 07-05 18:46 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v1.1.0 用戶手冊

    靈活軟件包(FSP) v1.0.0 用戶手冊

    靈活軟件包 (FSP) v1.0.0 用戶手冊
    發(fā)表于 07-05 18:50 ?0次下載
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>靈活軟件包(<b class='flag-5'>FSP</b>) v1.0.0 用戶手冊