女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

FSP在e2 studio下生成的啟動(dòng)文件的代碼說明

瑞薩MCU小百科 ? 來源:瑞薩嵌入式小百科 ? 作者:Prowess ? 2023-10-07 12:18 ? 次閱讀

FSP介紹

瑞薩靈活軟件包(FSP)是一個(gè)靈活配置的軟件包,旨在提供易于使用、可擴(kuò)展、高質(zhì)量的嵌入式系統(tǒng)設(shè)計(jì)軟件。它適用于RA系列的MCU,提供了統(tǒng)一直觀的API,并有詳細(xì)的解釋和例程應(yīng)用,可以按照客戶不同的需求自動(dòng)生成相應(yīng)驅(qū)動(dòng)程序。

啟動(dòng)文件說明

啟動(dòng)文件是程序上電復(fù)位后執(zhí)行的第一個(gè)程序。它一般包括如下幾個(gè):

1.初始化堆棧

2.使能FPU

3.定位中斷向量表

4.配置系統(tǒng)時(shí)鐘

5.啟用CORTEX-M33棧監(jiān)視器

6.初始化C語言運(yùn)行環(huán)境

7.初始化變量SystemCoreClock,這個(gè)變量存放的是處理器時(shí)鐘的頻率

8.初始化用于觸發(fā)NVIC中斷的ELC(事件鏈接控制)

9.BSP初始化

初始化堆棧

3.1 棧區(qū)(Stack)

一種順序數(shù)據(jù)結(jié)構(gòu),滿足后進(jìn)先出原則。由編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。棧特別方便用來保存/恢復(fù)調(diào)用現(xiàn)場(chǎng)。在函數(shù)被調(diào)用時(shí),其參數(shù)也會(huì)被壓入發(fā)起調(diào)用的進(jìn)程棧中,并待到調(diào)用結(jié)束后,函數(shù)的返回值也會(huì)被存放回棧中。如果函數(shù)調(diào)用時(shí),如果函數(shù)參數(shù)和局部變量較多,寄存器放不下,則需要適當(dāng)增加棧區(qū)的大小。

3.2 堆區(qū)(heap)

通常由程序員手動(dòng)分配,使用malloc和free進(jìn)行分配和釋放。注意,使用完需及時(shí)釋放(free),否則容易造成內(nèi)存泄漏。

3.3 e2 Studio中堆棧的設(shè)置

宏“BSP_CFG_STACK_MAIN_BYTES”可以在FSP Configuration的“BSP”屬性欄中的“RA Common”中通過修改“Main stack size”設(shè)置,默認(rèn)為1KB(0x400 Byte)。

宏“BSP_CFG_HEAP_BYTES”可以在FSP Configuration的“BSP”屬性欄中的“RA Common”中通過修改“Heap size”設(shè)置,默認(rèn)為1KB(0x400 Byte)。如圖3-3-1所示。

9abafd96-64c6-11ee-939d-92fbcf53809c.png

圖3-3-1 堆棧區(qū)的大小設(shè)置

g_main_stack和g_heap分別代表主棧和堆區(qū)的數(shù)組,后面還有屬性修飾。

“BSP_PLACE_IN_SECTION(BSP_SECTION_STACK)”,宏展開后為“__attribute__((section( “.stack”))) __attribute__((__used__))”

“BSP_PLACE_IN_SECTION(BSP_SECTION_HEAP)”,宏展開后為“__attribute__((section( “.heap”))) __attribute__((__used__))”

其修飾屬性解釋如下:

__attribute__((section( “參數(shù)名”))):可以將變量定義到指定的輸入段“參數(shù)名”中。

__attribute__((__used__)):參數(shù)“__used__”告訴編譯器,這個(gè)變量會(huì)被使用,即使在編譯器優(yōu)化時(shí)沒有被顯式地調(diào)用。這個(gè)屬性可以防止編譯器將未使用的函數(shù)或變量?jī)?yōu)化掉,確保它們?cè)诔绦蛑写嬖凇?/p>

9ad478e8-64c6-11ee-939d-92fbcf53809c.png

圖3-3-2 堆棧區(qū)數(shù)組屬性修飾

代碼中的“BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT)” ,宏展開后為“__attribute__((aligned(8)))”,代表堆棧區(qū)在分配時(shí),會(huì)按照8字節(jié)對(duì)齊方式進(jìn)行。

__attribute__((weak)):用戶可以在用戶文件中重新定義一個(gè)同名函數(shù),最終編譯器編譯的時(shí)候,會(huì)選擇用戶定義的函數(shù),如果用戶沒有重新定義這個(gè)函數(shù),那么編譯器就會(huì)執(zhí)行_weak 聲明的函數(shù),并且編譯器不會(huì)報(bào)錯(cuò)。所以我們可以在別的地方定義一個(gè)相同名字的函數(shù)。該函數(shù)不能在同一個(gè).C文件中。

9ae5268e-64c6-11ee-939d-92fbcf53809c.png

圖3-3-2 函數(shù)屬性宏定義

中斷向量表

定義一個(gè)中斷向量指針數(shù)組__Vectors[16],將此表放入到“.fixed_vectors”的輸入段中。

9afa0fea-64c6-11ee-939d-92fbcf53809c.png

圖4-1 中斷向量表定義

入口程序

系統(tǒng)上電或復(fù)位后直接執(zhí)行入口函數(shù)Reset_Handler(),包括兩個(gè)函數(shù):SystemInit()和main()。SystemInit()主要是用BSP對(duì)系統(tǒng)進(jìn)行初始化,隨后通過main函數(shù)進(jìn)入用戶代碼。

BSP負(fù)責(zé)使MCU從復(fù)位狀態(tài)進(jìn)入到用戶的應(yīng)用程序。在到達(dá)用戶的應(yīng)用程序之前,BSP設(shè)置堆棧、時(shí)鐘、中斷、C語言運(yùn)行環(huán)境和堆棧監(jiān)視器。

9b104c6a-64c6-11ee-939d-92fbcf53809c.png

圖5-1 入口函數(shù)調(diào)用

系統(tǒng)初始化

9b1bba00-64c6-11ee-939d-92fbcf53809c.png9b2ddbf4-64c6-11ee-939d-92fbcf53809c.png9b479bc0-64c6-11ee-939d-92fbcf53809c.png9b689a00-64c6-11ee-939d-92fbcf53809c.png9b921362-64c6-11ee-939d-92fbcf53809c.png9ba1ddc4-64c6-11ee-939d-92fbcf53809c.png

圖6-1 系統(tǒng)函數(shù)初始化

No.1

七、內(nèi)存函數(shù)分配

通過e2 studio打開Memory Usage,可以看到各段的定義名稱,起止地址,占用容量大小、對(duì)齊方式等。也可以通過打開工程文件夾下e2studioDebug*.map文件。

這里對(duì)常用的段名做個(gè)說明:

.bss:通常是指用來存放程序中未初始化的或者初始值為0的全局變量的一塊內(nèi)存區(qū)域。BSS是英文Block Started by Symbol的簡(jiǎn)稱。BSS段屬于靜態(tài)內(nèi)存分配。

.data:數(shù)據(jù)段(data segment) 通常是指用來存放程序中已初始化的全局變量的一塊內(nèi)存區(qū)域。數(shù)據(jù)段屬于靜態(tài) 內(nèi)存分配。

碼段:代碼段 (code segment/text segment) 通常是指用來存放程序執(zhí)行代碼的一塊內(nèi)存區(qū)域。這部分區(qū)域的大小在程序運(yùn)行前就已經(jīng)確定,并且內(nèi)存區(qū)域通常屬于只讀,某些架構(gòu)也允許代碼段為可寫,即允許修改程序。在代碼段中,也有可能包含一些只讀的常數(shù)變量,例如字符串常量等。

9bb26176-64c6-11ee-939d-92fbcf53809c.png

圖7-1 內(nèi)存函數(shù)分配

結(jié)論

通過本篇文章的介紹,相信大家對(duì)RA MCU的啟動(dòng)過程以及e2 studio的操作有了一定的了解,有興趣的同學(xué)也可以深入學(xué)習(xí)下。






審核編輯:劉清

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

    關(guān)注

    146

    文章

    17834

    瀏覽量

    360347
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

    140305
  • 中斷向量
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

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

    關(guān)注

    0

    文章

    41

    瀏覽量

    7351
  • Cortex-M33
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    2119

原文標(biāo)題:FSP庫(kù)啟動(dòng)文件說明

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

收藏 人收藏

    評(píng)論

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

    基于RA8D1的LVGL FSP配置以及使用介紹

    本文介紹由e2 studio自動(dòng)生成FSP LVGL pack的使用說明,Pack的生成方法可
    的頭像 發(fā)表于 03-13 13:48 ?2553次閱讀
    基于RA8D1的LVGL <b class='flag-5'>FSP</b>配置以及使用介紹

    e2studio開發(fā)環(huán)境搭建方案

    RA 系列 MCU 設(shè)備的項(xiàng)目。e2 studio 集成系統(tǒng)開發(fā)環(huán)境提供一個(gè)熟悉的開發(fā)控制臺(tái),從該控制臺(tái)中,可以管理項(xiàng)目創(chuàng)建、模塊選擇和配置、代碼開發(fā)、代碼
    的頭像 發(fā)表于 12-19 09:23 ?1.1w次閱讀
    <b class='flag-5'>e2studio</b>開發(fā)環(huán)境搭建方案

    e2studio和Keil簡(jiǎn)介及如何安裝e2studio開發(fā)環(huán)境

    (簡(jiǎn)稱為e2e2s)是瑞薩電子的一款包含代碼開發(fā)、構(gòu)建和調(diào)試的開發(fā)工具。e2studio基于開源EclipseIDE和與之相關(guān)的C/C++
    的頭像 發(fā)表于 03-13 17:27 ?1010次閱讀
    <b class='flag-5'>e</b>2<b class='flag-5'>studio</b>和Keil簡(jiǎn)介及如何安裝<b class='flag-5'>e</b>2<b class='flag-5'>studio</b>開發(fā)環(huán)境

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

    應(yīng)用程序接口 (API) 的選擇、配置、代碼生成代碼開發(fā),從而顯著加速開發(fā)過程。 e2studio軟件可以官網(wǎng)下進(jìn)行下載。 下載地址:h
    發(fā)表于 09-30 15:28

    e2studio更換toolchain和fsp版本

    e2studio添加或更新toolchain前言不同項(xiàng)目依賴的FSP版本不一樣,于是就有了使用不同FSP版本和toolchain的需求,e2stu
    發(fā)表于 11-16 18:06

    【野火啟明6M5開發(fā)板體驗(yàn)】+ e2 FSP環(huán)境搭建

    代碼生成代碼開發(fā),從而顯著加速開發(fā)過程。e2studio軟件可以官網(wǎng)下進(jìn)行下載。https://www.renesas.cn/cn/z
    發(fā)表于 12-29 17:02

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

    e2studio是瑞薩的集成開發(fā)環(huán)境,FSP 提供了眾多可提高效率的工具,用于開發(fā)針對(duì)瑞薩電子RA 系列 MCU 設(shè)備的項(xiàng)目。 e2 studio 集成系統(tǒng)開發(fā)環(huán)境提供一個(gè)熟悉的開發(fā)控
    的頭像 發(fā)表于 11-14 17:08 ?2333次閱讀
    瑞薩<b class='flag-5'>e2studio</b>(1)----瑞薩芯片之搭建<b class='flag-5'>FSP</b>環(huán)境

    Renesas RA Family e2 studio 2022-07 或更高版本快速入門指南

    Renesas RA Family e2 studio 2022-07 或更高版本快速入門指南
    發(fā)表于 01-10 18:53 ?0次下載
    Renesas RA Family <b class='flag-5'>e2</b> <b class='flag-5'>studio</b> 2022-07 或更高版本快速入門指南

    Renesas Synergy e2 studio v2021-10 或更高版本快速入門指南

    Renesas Synergy e2 studio v2021-10 或更高版本快速入門指南
    發(fā)表于 01-11 18:54 ?0次下載
    Renesas Synergy <b class='flag-5'>e2</b> <b class='flag-5'>studio</b> v2021-10 或更高版本快速入門指南

    瑞薩e2studio----更新FSP版本

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

    使用瑞薩e2 studio FSP基于RA2E1定時(shí)器配置PWM輸出

    使用瑞薩e2 studio FSP基于RA2E1定時(shí)器配置PWM輸出
    的頭像 發(fā)表于 08-01 00:13 ?1119次閱讀
    使用瑞薩<b class='flag-5'>e</b>2 <b class='flag-5'>studio</b> <b class='flag-5'>FSP</b>基于RA<b class='flag-5'>2E</b>1定時(shí)器配置PWM輸出

    e2 studio 2024-01 RX插件智能配置程序發(fā)布說明

    電子發(fā)燒友網(wǎng)站提供《e2 studio 2024-01 RX插件智能配置程序發(fā)布說明.pdf》資料免費(fèi)下載
    發(fā)表于 01-30 09:44 ?0次下載
    <b class='flag-5'>e2</b> <b class='flag-5'>studio</b> 2024-01 RX插件智能配置程序發(fā)布<b class='flag-5'>說明</b>

    FSP庫(kù)啟動(dòng)文件說明

    FSP庫(kù)啟動(dòng)文件說明
    的頭像 發(fā)表于 06-04 08:06 ?847次閱讀
    <b class='flag-5'>FSP</b>庫(kù)<b class='flag-5'>啟動(dòng)</b><b class='flag-5'>文件</b><b class='flag-5'>說明</b>

    e2+fsp+qe安裝說明

    電子發(fā)燒友網(wǎng)站提供《e2+fsp+qe安裝說明.docx》資料免費(fèi)下載
    發(fā)表于 09-29 11:07 ?0次下載

    瑞薩e2 studio中Reality AI組件的使用方法

    本實(shí)驗(yàn)將為您介紹如何在e2 studio中使用Reality AI相關(guān)組件來進(jìn)行AI開發(fā),主要涉及如何使用Reality AI Data shipper/collector,Reality AI
    的頭像 發(fā)表于 01-21 13:48 ?897次閱讀
    瑞薩<b class='flag-5'>e2</b> <b class='flag-5'>studio</b>中Reality AI組件的使用方法