




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
現在很多MCU都配套有軟件包,不再像以前那樣從零(匯編、寄存器)開始了。
而本文給大家描述的瑞薩MCU也是通過靈活軟件包(FSP)進行快速初始化外設,下面就給大家講講FSP靈活軟件包那些重要的內容。FSP介紹FSP:FlexibleSoftwarePackage,即瑞薩MCU的軟件包,類似于KeilMDK中需要安裝的軟件包(Keil.STM32F1xx_DFP.2.4.0.pack)。瑞薩靈活軟件包(FSP)是一個靈活配置的軟件包,旨在提供易于使用、可擴展、高質量的嵌入式系統設計軟件。它適用于RA系列的MCU,提供了統一直觀的API,并有詳細的解釋和例程應用,可以按照客戶不同的需求自動生成相應驅動程序。啟動文件說明啟動文件是程序上電復位后執行的第一個程序。它一般包括如下幾個:1.初始化堆棧2.使能FPU3.定位中斷向量表4.配置系統時鐘5.啟用CORTEX-M33棧監視器6.初始化C語言運行環境7.初始化變量SystemCoreClock,這個變量存放的是處理器時鐘的頻率8.初始化用于觸發NVIC中斷的ELC(事件鏈接控制)9.BSP初始化初始化堆棧D三初始化堆棧1、棧區(Stack)一種順序數據結構,滿足后進先出原則。由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。棧特別方便用來保存/恢復調用現場。在函數被調用時,其參數也會被壓入發起調用的進程棧中,并待到調用結束后,函數的返回值也會被存放回棧中。如果函數調用時,如果函數參數和局部變量較多,寄存器放不下,則需要適當增加棧區的大小。2、堆區(heap)通常由程序員手動分配,使用malloc和free進行分配和釋放。注意,使用完需及時釋放(free),否則容易造成內存泄漏。3、e2Studio中堆棧的設置宏“BSP_CFG_STACK_MAIN_BYTES”可以在FSPConfiguration的“BSP”屬性欄中的“RACommon”中通過修改“Mainstacksize”設置,默認為1KB(0x400Byte)。宏“BSP_CFG_HEAP_BYTES”可以在FSPConfiguration的“BSP”屬性欄中的“RACommon”中通過修改“Heapsize”設置,默認為1KB(0x400Byte)。如下圖所示。
堆棧區的大小設置g_main_stack和g_heap分別代表主棧和堆區的數組,后面還有屬性修飾。“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(“參數名”))):可以將變量定義到指定的輸入段“參數名”中。__attribute__((__used__)):參數“__used__”告訴編譯器,這個變量會被使用,即使在編譯器優化時沒有被顯式地調用。這個屬性可以防止編譯器將未使用的函數或變量優化掉,確保它們在程序中存在。
堆棧區數組屬性修飾代碼中的“BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT)”,宏展開后為“__attribute__((aligned(8)))”,代表堆棧區在分配時,會按照8字節對齊方式進行。__attribute__((weak)):用戶可以在用戶文件中重新定義一個同名函數,最終編譯器編譯的時候,會選擇用戶定義的函數,如果用戶沒有重新定義這個函數,那么編譯器就會執行_weak聲明的函數,并且編譯器不會報錯。所以我們可以在別的地方定義一個相同名字的函數。該函數不能在同一個.C文件中。函數屬性宏定義中斷向量表定義一個中斷向量指針數組__Vectors[16],將此表放入到“.fixed_vectors”的輸入段中。
中斷向量表定義入口程序系統上電或復位后直接執行入口函數Reset_Handler(),包括兩個函數:SystemInit()和main()。SystemInit()主要是用BSP對系統進行初始化,隨后通過main函數進入用戶代碼。BSP負責使MCU從復位狀態進入到用戶的應用程序。在到達用戶的應用程序之前,BSP設置堆棧、時鐘、中斷、C語言運行環境和堆棧監視器。
入口函數調用系統初始化系統函數初始化內存函數分配通過e2
studio打開MemoryUsage,可以看到各段的定義名稱,起止地址,占用容量大小、對齊方式等。也可以通過打開工程文件夾下\e2studio\Debug\*.map文件。這里對常用的段名做個說明:.bss:通常是指用來存放程序中未初始化的或者初始值為0的全局變量的一塊內存區域。BSS是英文BlockStartedbySymbol的簡稱。BSS段屬于靜態內存分配。.data:數據段(datasegment)通常是指用來存放程序中已初始化的全局變量的一塊內存區域。數據段屬于靜態內存分配。碼段:代碼段(codesegment/textsegment)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件設計師考試市場分析試題及答案
- 環境政策與政治動員關系研究試題及答案
- 政府干預經濟的公共政策策略及答案
- 軟件設計師考試技能驗證方式試題及答案
- 深入探討機電工程師的職業發展現狀與試題及答案
- 公共政策中的社會公平考題及答案
- 5G技術在智慧養老院中的應用探索
- 支持與反對西方政治制度的多面性試題及答案
- 機電工程2025年機械設計試題及答案
- 網絡工程師考試知識樹梳理試題及答案
- TSG21-2025固定式壓力容器安全技術(送審稿)
- DB2107-T 0011-2023 多旋翼無人機道路巡查疏導作業規范
- LY/T 3398-2024草原等級評定技術規程
- 內蒙古自治區科技成果交易平臺
- 廣西河池市(2024年-2025年小學六年級語文)部編版期中考試(下學期)試卷及答案
- 2025年日歷(日程安排-可直接打印)
- 【MOOC】心理學-華南師范大學 中國大學慕課MOOC答案
- 針灸治療之蛇串瘡課件
- 介紹圓明園課件
- 《英語翻譯》教案全套 陳霞 第1-8章 中西方翻譯史 - 文體翻譯
- DB11∕T 2115-2023 機械式停車設備使用管理和維護保養安全技術規范
評論
0/150
提交評論