chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文初識(shí)瑞薩FSP固件庫(kù)

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

掃碼添加小助手

加入工程師交流群

第9章

初識(shí)瑞薩FSP固件庫(kù)

9.1瑞薩FSP庫(kù)簡(jiǎn)介

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

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

如圖所示為FSP的軟件架構(gòu)。

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

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

FSP的GitHub倉(cāng)庫(kù)

https://github.com/renesas/fsp

提示

FSP是使用C99(C語(yǔ)言標(biāo)準(zhǔn))編寫(xiě)的開(kāi)源軟件,提供完整的源代碼,但僅限用于瑞薩的硬件。

9.2瑞薩FSP庫(kù)架構(gòu)分析

下面簡(jiǎn)單分析一下瑞薩FSP庫(kù)架構(gòu)。本小節(jié)內(nèi)容當(dāng)中的一些概念可能會(huì)讓初學(xué)者覺(jué)得較難理解,對(duì)此,建議是大概瀏覽然后跳過(guò)即可,這不影響后面的章節(jié)閱讀,現(xiàn)在只需要大概、初步地了解一遍,不求甚解,等到學(xué)習(xí)到了后期再回過(guò)頭來(lái)看,或?qū)SP庫(kù)架構(gòu)會(huì)有新的體會(huì)。

9.2.1FSP庫(kù)層次結(jié)構(gòu)

如圖所示,展示了FSP庫(kù)的層次劃分,我們可以很直觀地看到進(jìn)行層次劃分之后的軟件結(jié)構(gòu)。

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

RA MCU

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

BSP

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

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

HAL

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

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

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

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

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

應(yīng)用層

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

9.2.2FSP庫(kù)工程結(jié)構(gòu)

我們?cè)賮?lái)看由軟件自動(dòng)生成的FSP庫(kù)工程的結(jié)構(gòu)究竟是什么樣子的。

列表1:FSP庫(kù)工程結(jié)構(gòu)

左右滑動(dòng)查看完整內(nèi)容

Project
├─ ra
│ ├─ arm 包含 ARM CMSIS 代碼
│ └─ fsp 包含 FSP 庫(kù)本體
│ ├─ inc
│ │ ├─ api FSP 接口 (FSP Interfaces)(接口包含 API 定義)
│ │ └─ instances FSP 實(shí)例 (FSP Instances)(接口的實(shí)例)
│ └─src
│ ├─ bsp BSP 層 (Board Support Package)
│ │ ├─ cmsis 包含寄存器定義文件和啟動(dòng)文件
│ │ └─ mcu 包含 BSP 代碼
│ └─ r_ FSP 模塊 (FSP Modules)(接口由模塊實(shí)現(xiàn),模塊通過(guò)接口提供通
用功能)
├─ ra_cfg 包含 FSP 庫(kù)的配置(包括 BSP 和 HAL 層的配置)
├─ ra_gen 包含用戶(hù)的 FSP 配置數(shù)據(jù)(包括時(shí)鐘、引腳、各個(gè)外設(shè)、中斷向量等
配置數(shù)據(jù))
├─ Debug/Release 包含編譯后生成的中間文件和最終可執(zhí)行文件等
└─src
└─hal_entry.c包含了用戶(hù)裸機(jī)應(yīng)用程序的入口函數(shù) hal_entry。
當(dāng)沒(méi)有使用 RTOS 的時(shí)候,hal_entry 函數(shù)由 C 語(yǔ)言main函數(shù)
調(diào)用,
所以其作用基本等同于main

上面的FSP庫(kù)工程的結(jié)構(gòu)其實(shí)非常的簡(jiǎn)單。只要我們把“Project”下的內(nèi)容分為三部分:

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

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

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

那么,我們便不需要深入地理解FSP庫(kù)的架構(gòu)也可以很好的上手FSP庫(kù)進(jìn)行開(kāi)發(fā),因?yàn)槲覀冊(cè)谂渲肍SP庫(kù)的時(shí)候,是通過(guò)軟件的圖形界面(FSP配置器)來(lái)配置的。

警告

注意:任何由軟件生成的文件用戶(hù)都不應(yīng)該去編輯!因?yàn)樵诿看芜M(jìn)行FSP配置之后單擊“生成項(xiàng)目?jī)?nèi)容(Generate Project Content)”圖標(biāo)按鈕時(shí),軟件都會(huì)自動(dòng)重新創(chuàng)建這些文件,因此任何的更改都將被覆蓋。

對(duì)于想要深入理解FSP庫(kù)的讀者,可以嘗試閱讀其源碼。同時(shí),要想清晰地理解FSP庫(kù)的架構(gòu),需要掌握以下幾個(gè)相關(guān)的重要概念。

1.模塊(Modules):模塊可以是外設(shè)驅(qū)動(dòng)程序、純軟件或介于這兩者之間,并且是FSP的構(gòu)建模塊。模塊通常是獨(dú)立的單元,但它們可能依賴(lài)于其他模塊??梢酝ㄟ^(guò)組合多個(gè)模塊來(lái)構(gòu)建應(yīng)用程序,為用戶(hù)提供所需功能。

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

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

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

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

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

7.回調(diào)函數(shù)(Callback Functions):當(dāng)有事件發(fā)生時(shí)(例如,USB接收到一些數(shù)據(jù)時(shí)),中斷服務(wù)程序(ISR)將調(diào)用這些函數(shù)。中斷回調(diào)函數(shù)是應(yīng)用程序的組成部分,如果是在中斷使用,應(yīng)盡量簡(jiǎn)短,因?yàn)樗鼈儗⒃谥袛喾?wù)程序內(nèi)運(yùn)行,會(huì)阻礙其他中斷執(zhí)行。

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

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

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

    關(guān)注

    36

    文章

    22386

    瀏覽量

    88051
  • 驅(qū)動(dòng)程序
    +關(guān)注

    關(guān)注

    19

    文章

    862

    瀏覽量

    49117
  • 固件庫(kù)
    +關(guān)注

    關(guān)注

    2

    文章

    98

    瀏覽量

    15277
  • FSP
    FSP
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    7429

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

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

    靈活軟件包 (FSP) v2.2.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v2.2.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v1.3.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v1.3.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v1.2.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v1.2.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v0.8.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v0.8.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v4.3.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v4.3.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    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 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v4.4.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v4.1.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v4.1.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v4.0.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v4.0.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v3.8.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v3.8.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v2.4.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v2.4.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v1.2.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v1.2.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v1.1.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v1.1.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)

    靈活軟件包(FSP) v1.0.0 用戶(hù)手冊(cè)

    靈活軟件包 (FSP) v1.0.0 用戶(hù)手冊(cè)
    發(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 用戶(hù)手冊(cè)