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

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

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

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

瑞薩RX MCU啟動文件詳解

瑞薩嵌入式小百科 ? 來源:瑞薩嵌入式小百科 ? 2026-02-11 08:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

PART.01

引言

本文詳細(xì)介紹了RX MCU從復(fù)位到進(jìn)入main函數(shù)的過程,有助于讀者對RX MCU體系結(jié)構(gòu)的理解,RAMROM的初始化,以及bootloader程序的開發(fā)。

PART.02

啟動代碼流程分析

RX MCU啟動代碼主要在resetprg.c文件中,RX的啟動代碼以C語言實(shí)現(xiàn),因此可讀性和可維護(hù)性更高。啟動代碼統(tǒng)一放在PowerON_Reset_PC函數(shù)內(nèi),復(fù)位向量表保存的正是該函數(shù)入口的物理地址。因此當(dāng)芯片發(fā)生復(fù)位后,CPU會從復(fù)位向量取出該地址,并自動跳轉(zhuǎn)到PowerON_Reset_PC函數(shù)執(zhí)行,完成啟動流程并最終進(jìn)入應(yīng)用程序。

具體的啟動流程如下

5f8db562-017f-11f1-90a1-92fbcf53809c.png

2.1 從復(fù)位向量到啟動函數(shù)

MCU復(fù)位后,CPU會從復(fù)位向量地址0xFFFFFFFC讀取一個32位入口地址(Reset Vector)。該入口地址會被裝載到PC(程序計數(shù)器)中,隨后CPU跳轉(zhuǎn)到該入口地址開始執(zhí)行啟動代碼,0xFFFFFFFC存放的是復(fù)位入口函數(shù)(PowerON_Reset_PC)的地址。RX的內(nèi)存分區(qū)情況以及跳轉(zhuǎn)過程如下圖所示:

6356a35c-017f-11f1-90a1-92fbcf53809c.png

63aebf6a-017f-11f1-90a1-92fbcf53809c.png

2.2 設(shè)置棧指針

在調(diào)用入口函數(shù)(PowerOn_Reset_PC)之前,需要初始化棧指針,這一步設(shè)計在CC-RX編譯器中。CC?RX編譯器在該函數(shù)開頭自動插入棧指針初始化:

647debbe-017f-11f1-90a1-92fbcf53809c.png

1RX有兩種??梢栽O(shè)置:中斷棧指針I(yè)nterrupt Stack Pointer(ISP)、用戶棧指針User Stack Pointer(USP),其中中斷棧是必須的。

2MVTC是Renesas RX指令集中的一條匯編指令,全稱Move To Control Register,是“把數(shù)據(jù)寫入控制寄存器”。

3TOPOF SU+SIZEOF SU等于SU段起始地址+段大小=段末端(棧頂);SI同理。

4初始化把USP/ISP設(shè)到各自棧區(qū)的棧頂,以便隨后棧向低地址增長。

2.3初始化中斷、異常向量表寄存器:INTB、EXTB

配置中斷和異常的控制寄存器,初始化系統(tǒng)中斷和異常的響應(yīng)。

代碼如下:

659f300c-017f-11f1-90a1-92fbcf53809c.png

2.4 初始化浮點(diǎn)狀態(tài)寄存器:FPSW

FPSW是CPU控制浮點(diǎn)單元的狀態(tài)寄存器,在啟動時需要初始化為預(yù)設(shè)值,以確保浮點(diǎn)計算正確。

代碼如下:

667f572c-017f-11f1-90a1-92fbcf53809c.png

2.5 切換到高速運(yùn)行時鐘

MCU RX上電復(fù)位后,首先使用的是LOCO(Low-speed on-chip oscillator),到這一步后,時鐘源從LOCO切換到用戶選擇的高速運(yùn)行時鐘,如HOCO(High-speed on-chip oscillator)。

代碼如下:

673ed4f8-017f-11f1-90a1-92fbcf53809c.png

1

切換MCU到高速運(yùn)行模式,調(diào)用operating_frequency_set()來設(shè)置系統(tǒng)時鐘頻率。

2

條件編譯:如果不是Bootloader工程(BSP_CFG_BOOTLOADER_PROJECT == 0),則執(zhí)行l(wèi)pt_clock_source_select(),用于選擇低功耗定時器(LPT)的時鐘源。

2.6 初始化C運(yùn)行環(huán)境

代碼如下:

67ffd284-017f-11f1-90a1-92fbcf53809c.png

在該階段,調(diào)用標(biāo)準(zhǔn)庫函數(shù)_INITSCT完成RAM數(shù)據(jù)區(qū)初始化:

1對初始化表BTBL[]指定的B段(.bss段)執(zhí)行清零;對DTBL[]指定的D/R段(.data段),將ROM中D段初始值拷貝到RAM中對應(yīng)的R段。

2DTBL[]與BTBL[]分別存放在C$DSEC 與C$BSEC段,并通過__sectop() / __secend()等段操作符提供各段的邊界地址,供_INITSCT函數(shù)遍歷處理。

2.7 初始化RAM

代碼如下:

68bd27da-017f-11f1-90a1-92fbcf53809c.png

“硬件資源鎖(hardware lock)”機(jī)制:用一個全局鎖數(shù)g_bsp_Locks來防止多個模塊/線程/中斷同時訪問同一個外設(shè)資源導(dǎo)致沖突。g_bsp_Locks是RAM變量,必須初始化。BSP_NUM_LOCKS是“枚舉總數(shù)”。

2.8 初始化I/O庫

初始化C標(biāo)準(zhǔn)庫的I/O流(stdin/stdout/stderr),代碼如下:

697de718-017f-11f1-90a1-92fbcf53809c.png

打開或創(chuàng)建標(biāo)準(zhǔn)輸入(stdin)、標(biāo)準(zhǔn)輸出(stdout)和標(biāo)準(zhǔn)錯誤輸出(stderr)的文件,可以用printf輸出打印信息。

2.9 初始化MCU的中斷回調(diào)

代碼如下:

6a3f59b6-017f-11f1-90a1-92fbcf53809c.png

初始化BSP的“中斷回調(diào)函數(shù)表”,把所有中斷源的回調(diào)函數(shù)先設(shè)為“空函數(shù)占位”。避免野指針。

2.10 初始化寄存器保護(hù)功能

代碼如下:

6b365b9e-017f-11f1-90a1-92fbcf53809c.png

為MCU的寄存器寫保護(hù)(Register Write Protection)功能做初始化,并定義受保護(hù)寄存器的分類。

2.11 配置MCU和板級硬件

代碼如下:

6bee4a2e-017f-11f1-90a1-92fbcf53809c.png

1output_ports_configure():用戶可以根據(jù)應(yīng)用需求進(jìn)行輸出端口的配置。

2interrupts_configure():用戶可以根據(jù)應(yīng)用需求進(jìn)行中斷的配置。

3peripheral_modules_enable():啟用和配置MCU的外設(shè)。

4bsp_non_existent_port_init():初始化“芯片封裝上不存在的引腳”。

2.12 使能中斷和選擇棧

(I Stack or U Stack)

代碼如下:

6caeab16-017f-11f1-90a1-92fbcf53809c.png

開中斷和選擇使用哪一個棧:

I stack or U stack(即中斷?;蛴脩魲#?。

使用RTOS情況下:進(jìn)入Supervisor(特權(quán))模式,并且在啟動階段保持中斷關(guān)閉。

非RTOS情況:如果用戶只選擇1個棧,則不會設(shè)置“U”位(即用戶棧),CPU將始終使用中斷棧。

2.13 選擇是否使用RTOS并進(jìn)入main函數(shù)

無RTOS或Azure RTOS直接調(diào)用R_BSP_MAIN_FUNCTION()(就是main()),不應(yīng)該返回。

6d690a24-017f-11f1-90a1-92fbcf53809c.png

至此,是RXMCU 從上電復(fù)位到進(jìn)入main()的全過程。

需要技術(shù)支持?

如您在使用瑞薩MCU/MPU產(chǎn)品中有任何問題,可識別下方二維碼或復(fù)制網(wǎng)址到瀏覽器中打開,進(jìn)入瑞薩技術(shù)論壇尋找答案或獲取在線技術(shù)支持。

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

    關(guān)注

    147

    文章

    18914

    瀏覽量

    397829
  • 瑞薩
    +關(guān)注

    關(guān)注

    37

    文章

    22481

    瀏覽量

    90823
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4417

    瀏覽量

    67492
  • bootloader
    +關(guān)注

    關(guān)注

    2

    文章

    244

    瀏覽量

    48014
  • 啟動文件
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    2459

原文標(biāo)題:瑞薩RX MCU啟動文件詳解

文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    如何使用RX26T MCU中的POE功能模塊

    RX26T芯片是專門為#電機(jī)控制 設(shè)計的32位MCU,搭載120MHz的CPURXv3內(nèi)核,具備強(qiáng)大的數(shù)字信號處理能力和豐富的外設(shè)資源。
    的頭像 發(fā)表于 08-13 09:19 ?5588次閱讀
    如何使用<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RX</b>26T <b class='flag-5'>MCU</b>中的POE功能模塊

    RX130系列MCU CTSU的基本配置和使用

    RX130屬于32位高功效MCU RX100系列,是一款入門級產(chǎn)品。其內(nèi)置的最大36通道的電容式觸摸傳感單元(CTSU)成為其特點(diǎn)之一,
    發(fā)表于 07-21 17:14 ?2776次閱讀

    如何在VS Code中使用RX系列MCU

    RX家族系列MCU圍繞先進(jìn)的CPU內(nèi)核構(gòu)建,匯集了的各種技術(shù)創(chuàng)新?;诙嗄攴e累的專有技術(shù),它們旨在在各個方面提供更好的響應(yīng)性和能效,同時結(jié)合出色的運(yùn)行性能和低功耗。為工業(yè)、家用電子
    的頭像 發(fā)表于 04-17 17:58 ?3890次閱讀
    如何在VS Code中使用<b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RX</b>系列<b class='flag-5'>MCU</b>

    電子新推32位RX系列微控制器RX23E-A產(chǎn)品組

    電子今日宣布推出32位RX系列微控制器(MCURX23E-A產(chǎn)品組,將高精度模擬前端(AFE)集成在
    發(fā)表于 05-28 17:38 ?1427次閱讀

    MCU型號速查手冊

    `MCU型號速查手冊`
    發(fā)表于 10-27 11:11

    解決方案匯總帖

    決方案【視頻】電子180度E-Bike解決方案【視頻】電子RX LCD直接驅(qū)動解決方案演示【視頻】
    發(fā)表于 01-30 18:27

    MCU指紋識別解決方案!

    65N/RX651微控制器(MCU)系列產(chǎn)品展露拳腳的機(jī)會,尤其是在中國市場。雖然有不錯的技術(shù)和很好的產(chǎn)品,但爭奪一定的市場份額關(guān)鍵還要看技術(shù)及其產(chǎn)品的落地情況。生物識別主要包括指
    發(fā)表于 09-02 13:57

    怎么讀取mcu的checksum?

    怎么讀取mcu的checksum?
    發(fā)表于 02-10 07:03

    電子擴(kuò)大RX63T Group微控制器(MCU)系列產(chǎn)品

    電子宣布擴(kuò)大RX63T Group微控制器(MCU)系列產(chǎn)品。新款RX63T MCU擁有更多
    發(fā)表于 12-06 10:15 ?3554次閱讀

    電子推出低成本目標(biāo)板以支持快速增長的RX系列32位MCU產(chǎn)品線

    電子宣布推出三款基于RX65N、RX130和RX231微控制器(MCU)的新型目標(biāo)板,旨在幫
    的頭像 發(fā)表于 02-28 11:05 ?6386次閱讀

    關(guān)于RX系列MCU的特點(diǎn)性能介紹

    電子RX系列MCU介紹
    的頭像 發(fā)表于 07-23 00:33 ?4434次閱讀

    電子32位RX微控制器產(chǎn)品家族交付第10億顆芯片

    電子宣布,RX產(chǎn)品家族32位微控制器(MCU)已累計交付超10億顆,該系列MCU采用
    發(fā)表于 01-20 15:32 ?3277次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子32位<b class='flag-5'>RX</b>微控制器產(chǎn)品家族交付第10億顆芯片

    基于RX66T高性能MCU的變頻器設(shè)計方案

    RX66T是RX MCU家族面向電機(jī)/變頻控制的高性能MCU,其特性如下:
    的頭像 發(fā)表于 10-14 16:30 ?4997次閱讀

    基于電子RX MCU的電機(jī)控制解決方案

    本次給大家介紹基于電子RX電機(jī)控制MCU的電機(jī)控制解決方案,RX家族32位高功效MCU包含四
    的頭像 發(fā)表于 12-10 17:15 ?2739次閱讀
    基于<b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RX</b> <b class='flag-5'>MCU</b>的電機(jī)控制解決方案

    電子RX261/RX260 32位觸摸控制MCU數(shù)據(jù)表與技術(shù)手冊

    電子RX261/RX260 32位觸摸控制MCU數(shù)據(jù)表與技術(shù)手冊
    的頭像 發(fā)表于 03-17 16:32 ?1424次閱讀