本篇文章主要是介紹FSP在e2studio下生成的啟動文件的代碼說明,讓用戶對瑞薩RA MCU的啟動過程有個初步了解。
瑞薩靈活軟件包(FSP)是一個靈活配置的軟件包,旨在提供易于使用、可擴展、高質量的嵌入式系統設計軟件。它適用于RA系列的MCU,提供了統一直觀的API,并有詳細的解釋和例程應用,可以按照客戶不同的需求自動生成相應驅動程序。
啟動文件是程序上電復位后執行的第一個程序。它一般包括如下幾個:
1.初始化堆棧
2.使能FPU
3.定位中斷向量表
4.配置系統時鐘
5.啟用CORTEX-M33棧監視器
6.初始化C語言運行環境
7.初始化變量SystemCoreClock,這個變量存放的是處理器時鐘的頻率
8.初始化用于觸發NVIC中斷的ELC(事件鏈接控制)
9.BSP初始化
3.1 棧區(Stack)
一種順序數據結構,滿足后進先出原則。由編譯器自動分配釋放,存放函數的參數值,局部變量的值等。棧特別方便用來保存/恢復調用現場。在函數被調用時,其參數也會被壓入發起調用的進程棧中,并待到調用結束后,函數的返回值也會被存放回棧中。如果函數調用時,如果函數參數和局部變量較多,寄存器放不下,則需要適當增加棧區的大小。
3.2 堆區(heap)
通常由程序員手動分配,使用malloc和free進行分配和釋放。注意,使用完需及時釋放(free),否則容易造成內存泄漏。
3.3 e2Studio中堆棧的設置
宏“BSP_CFG_STACK_MAIN_BYTES”可以在FSP Configuration的“BSP”屬性欄中的“RA Common”中通過修改“Main stack size”設置,默認為1KB(0x400 Byte)。
宏“BSP_CFG_HEAP_BYTES”可以在FSP Configuration的“BSP”屬性欄中的“RA Common”中通過修改“Heap size”設置,默認為1KB(0x400 Byte)。如圖3-3-1所示。
圖3-3-1 堆棧區的大小設置
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__”告訴編譯器,這個變量會被使用,即使在編譯器優化時沒有被顯式地調用。這個屬性可以防止編譯器將未使用的函數或變量優化掉,確保它們在程序中存在。
圖3-3-2 堆棧區數組屬性修飾
代碼中的“BSP_ALIGN_VARIABLE(BSP_STACK_ALIGNMENT)” ,宏展開后為“__attribute__((aligned(8)))”,代表堆棧區在分配時,會按照8字節對齊方式進行。
__attribute__((weak)):用戶可以在用戶文件中重新定義一個同名函數,最終編譯器編譯的時候,會選擇用戶定義的函數,如果用戶沒有重新定義這個函數,那么編譯器就會執行_weak 聲明的函數,并且編譯器不會報錯。所以我們可以在別的地方定義一個相同名字的函數。該函數不能在同一個.C文件中。
圖3-3-2 函數屬性宏定義
定義一個中斷向量指針數組__Vectors[16],將此表放入到“.fixed_vectors”的輸入段中。
圖4-1 中斷向量表定義
系統上電或復位后直接執行入口函數Reset_Handler(),包括兩個函數:SystemInit()和main()。SystemInit()主要是用BSP對系統進行初始化,隨后通過main函數進入用戶代碼。BSP負責使MCU從復位狀態進入到用戶的應用程序。在到達用戶的應用程序之前,BSP設置堆棧、時鐘、中斷、C語言運行環境和堆棧監視器。
圖5-1 入口函數調用
圖6-1 系統函數初始化
通過e2studio打開Memory Usage,可以看到各段的定義名稱,起止地址,占用容量大小、對齊方式等。也可以通過打開工程文件夾下\e2studio\Debug\*.map文件。
圖7-1 內存函數分配
-
mcu
+關注
關注
146文章
16676瀏覽量
347864 -
代碼
+關注
關注
30文章
4672瀏覽量
67781 -
FSP
+關注
關注
0文章
34瀏覽量
7075
發布評論請先 登錄
相關推薦
評論