91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

FSP庫啟動文件說明

RA生態(tài)工作室 ? 2024-06-04 08:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本篇文章主要是介紹FSP在e2studio下生成的啟動文件的代碼說明,讓用戶對瑞薩RA MCU的啟動過程有個初步了解。

wKgaomaCaumAB97XAAAGsLfviRI327.png

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

wKgaomaCavGAKkayAAAJQSBHiuQ788.png

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

1.初始化堆棧

2.使能FPU

3.定位中斷向量表

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

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

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

7.初始化變量SystemCoreClock,這個變量存放的是處理器時鐘的頻率

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

9.BSP初始化

wKgZomaCavyAKZ3PAAAJmU2UgZU585.png

3.1 棧區(qū)(Stack)

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

3.2 堆區(qū)(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所示。

wKgZomaCbAqAYHczAAGe7HULgnM715.png

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

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__”告訴編譯器,這個變量會被使用,即使在編譯器優(yōu)化時沒有被顯式地調用。這個屬性可以防止編譯器將未使用的函數(shù)或變量優(yōu)化掉,確保它們在程序中存在。

wKgZomaCbAqARZWtAAK0GC6JoWo499.png

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

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

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

wKgaomaCbAuAIYouAASjGNj-xFI215.png

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

wKgaomaCa1qATWKsAAAJt8pY29I852.png

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

wKgaomaCbAuAZ05YAANzBbFcnkk875.png

圖4-1 中斷向量表定義

wKgZomaCa2qAZKVFAAAI12LoT6c554.png

系統(tǒng)上電或復位后直接執(zhí)行入口函數(shù)Reset_Handler(),包括兩個函數(shù):SystemInit()和main()。SystemInit()主要是用BSP對系統(tǒng)進行初始化,隨后通過main函數(shù)進入用戶代碼。BSP負責使MCU從復位狀態(tài)進入到用戶的應用程序。在到達用戶的應用程序之前,BSP設置堆棧、時鐘、中斷、C語言運行環(huán)境和堆棧監(jiān)視器。

wKgZomaCbAuARAyRAABe-XT-KJI507.png

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

wKgaomaCa5GAGEIsAAAKxuapKCU544.pngwKgaomaCbA2AAbikAAKFHD8lmnc428.pngwKgZomaCbA2ASD7bAAJozQoy11I775.pngwKgaomaCbA2ABTxyAAE-SnN1akg588.pngwKgaomaCbA2AFhS8AALOO1fmSpw202.pngwKgZomaCbA2AdimsAAEYCmc88so078.pngwKgaomaCbA2AMV_0AAJdn2FlG-Q480.png

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

wKgaomaCa6aARDQrAAAMTowHwYg098.png

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

wKgaomaCa7eAP1x1AACYwKZuilI568.png

wKgZomaCbA6AcrfBAARZIddYBJY254.png

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

wKgaomaCa9WAawsYAAAmsw8zSpE244.png

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

    關注

    147

    文章

    18934

    瀏覽量

    398524
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    73999
  • FSP
    FSP
    +關注

    關注

    0

    文章

    48

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    FSP在e2 studio下生成的啟動文件的代碼說明

    瑞薩靈活軟件包(FSP)是一個靈活配置的軟件包,旨在提供易于使用、可擴展、高質量的嵌入式系統(tǒng)設計軟件。
    的頭像 發(fā)表于 10-07 12:18 ?3068次閱讀
    <b class='flag-5'>FSP</b>在e2 studio下生成的<b class='flag-5'>啟動</b><b class='flag-5'>文件</b>的代碼<b class='flag-5'>說明</b>

    一文初識瑞薩FSP固件

    FSP全稱為“Flexible Software Package”,中文譯為“靈活配置軟件包”。
    的頭像 發(fā)表于 07-19 09:21 ?2522次閱讀
    一文初識瑞薩<b class='flag-5'>FSP</b>固件<b class='flag-5'>庫</b>

    啟動文件和HAL

    STM32F7xx —— 啟動文件和HAL 目錄STM32F7xx —— 啟動文件和HAL
    發(fā)表于 08-04 09:25

    如何建立文件?如何安裝文件

    在西門子S7-200中一步步做文件西門子S7-200小型機容許模塊化編程,尤其提供使用者可以定制自己的文件,在解決大量重復性邏輯處理上相當方便。下面以一個簡單的例子
    發(fā)表于 02-16 06:32

    S7200脈沖數(shù)出MAP文件使用說明

    S7200脈沖數(shù)出MAP文件使用說明
    發(fā)表于 09-17 16:23 ?59次下載
    S7200脈沖數(shù)出MAP<b class='flag-5'>庫</b><b class='flag-5'>文件</b>使用<b class='flag-5'>說明</b>

    USB-CAN用戶編程說明及通訊文件

    USB-CAN用戶編程說明及通訊文件
    發(fā)表于 12-14 17:24 ?3次下載

    由MATLAB的.m文件生成動態(tài)鏈接的方法說明

    由MATLAB的.m文件生成動態(tài)鏈接的方法說明
    發(fā)表于 08-16 18:54 ?0次下載

    稱重模塊文件及使用說明

    合信文件及使用實例(基于microwin)
    發(fā)表于 12-29 18:42 ?1次下載

    數(shù)據(jù)課件教程之數(shù)據(jù)啟動與關閉講解資料說明

    本文檔的詳細介紹的是數(shù)據(jù)課件教程之數(shù)據(jù)啟動與關閉講解資料說明主要內容包括了:1.數(shù)據(jù)啟動
    發(fā)表于 01-24 11:34 ?7次下載
    數(shù)據(jù)<b class='flag-5'>庫</b>課件教程之數(shù)據(jù)<b class='flag-5'>庫</b>的<b class='flag-5'>啟動</b>與關閉講解資料<b class='flag-5'>說明</b>

    STM32啟動過程--啟動文件--分析

    STM32啟動過程--啟動文件--分析一、概述1、說明  每一款芯片的啟動文件都值得去研究,因為
    發(fā)表于 11-30 13:21 ?4次下載
    STM32<b class='flag-5'>啟動</b>過程--<b class='flag-5'>啟動</b><b class='flag-5'>文件</b>--分析

    STM32 之 標準外設版USB驅動詳解(架構+文件+函數(shù)+使用說明+示例程序)

    STM32 之 標準外設版USB驅動詳解(架構+文件+函數(shù)+使用說明+示例程序)
    發(fā)表于 12-08 20:36 ?0次下載
    STM32 之 標準外設版USB驅動<b class='flag-5'>庫</b>詳解(架構+<b class='flag-5'>文件</b>+函數(shù)+使用<b class='flag-5'>說明</b>+示例程序)

    STM32啟動文件學習筆記

    STM32啟動文件學習筆記一、Stack–棧EQU:宏定義的偽指令,就是給數(shù)字取一個符號名,相當于C語言中的defineSPACE:分配內存空間AREA:告訴匯編語言一個新的代碼段或數(shù)據(jù)段
    發(fā)表于 12-27 18:44 ?2次下載
    STM32<b class='flag-5'>啟動</b><b class='flag-5'>庫</b><b class='flag-5'>文件</b>學習筆記

    FSP啟動文件詳解

    這是系統(tǒng)上電或復位后執(zhí)行的第一個程序,使用BSP對系統(tǒng)進行初始化,隨后通過main函數(shù)進入用戶代碼。 BSP負責使MCU從復位狀態(tài)進入到用戶的應用程序。在到達用戶的應用程序之前,BSP設置棧、堆、時鐘、中斷、C語言運行環(huán)境和堆棧監(jiān)視器。
    的頭像 發(fā)表于 02-15 15:48 ?2342次閱讀
    <b class='flag-5'>FSP</b><b class='flag-5'>庫</b><b class='flag-5'>啟動</b><b class='flag-5'>文件</b>詳解

    e2+fsp+qe安裝說明

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

    數(shù)據(jù)數(shù)據(jù)恢復——MongoDB數(shù)據(jù)庫文件拷貝后服務無法啟動的數(shù)據(jù)恢復

    。將MongoDB數(shù)據(jù)庫文件拷貝到其他分區(qū)后,對MongoDB數(shù)據(jù)所在原分區(qū)進行了格式化操作。格式化完成后將數(shù)據(jù)庫文件拷回原分區(qū),并重新啟動MongoDB服務。發(fā)現(xiàn)服務無法
    的頭像 發(fā)表于 04-09 11:34 ?873次閱讀
    數(shù)據(jù)<b class='flag-5'>庫</b>數(shù)據(jù)恢復——MongoDB數(shù)據(jù)<b class='flag-5'>庫文件</b>拷貝后服務無法<b class='flag-5'>啟動</b>的數(shù)據(jù)恢復