目錄
1. 概述
RH850/U2A系列Flash Memory
?Code Flash
Data Flash
刷寫流程
啟動(dòng)過程
Overall Flow
啟動(dòng)進(jìn)程的詳細(xì)信息
1. 概述
RH850/U2A MCU是瑞薩電子跨域MCU的第一個(gè)成員,這是新一代汽車控制設(shè)備。基于28納米(nm)制程技術(shù),32位RH850/U2A汽車MCU建立在瑞薩電子RH850/Px系列(底盤控制)和RH850/Fx系列(車身控制)的關(guān)鍵功能基礎(chǔ)上,以提供更高的性能。
MCU包括滿足EVITA Full的安全功能,以增強(qiáng)對(duì)網(wǎng)絡(luò)攻擊的保護(hù),使設(shè)備能夠隨著安全需求的發(fā)展而支持安全快速的全無等待無線(OTA)軟件更新。
RH850/U2A MCU還配備了廣泛的網(wǎng)絡(luò)接口,使MCU能夠處理ADAS和自動(dòng)駕駛功能中多種類型傳感器產(chǎn)生的大量傳感器數(shù)據(jù)。這使客戶能夠支持未來的高速網(wǎng)絡(luò)功能和先進(jìn)的通信吞吐量要求。
RH850/U2A系列Flash Memory
?Code Flash
— 容量:用戶區(qū)(User Area)最大16 Mbytes,用戶引導(dǎo)區(qū)(User Boot Area)最大 2x 64 Kbytes。
—多bank配置。
—程序單位:512字節(jié)
—Erase單位:每個(gè)User Area中8塊為16Kbytes,剩余塊為64Kbytes
—每個(gè)模塊支持OTP (One Time Programmable)。
—支持bank間地址映射交換。
Data Flash
●數(shù)據(jù)區(qū):
-容量:高達(dá)512千字節(jié)(兩個(gè)數(shù)據(jù)區(qū):256千字節(jié)+ 256千字節(jié))和ICUMHA專用64K字節(jié)
-程序單元:4,8,16,32,64,128字節(jié)DMA可以多次啟動(dòng)4字節(jié)程序,無需軟件開銷。(在一個(gè)數(shù)據(jù)區(qū)域內(nèi))
-擦除單元:Nx 4kbytes (N = 1,2,3…)(在一個(gè)數(shù)據(jù)區(qū)域內(nèi))
DMA可以在沒有軟件開銷的情況下多次初始化4字節(jié)程序。
(在一個(gè)數(shù)據(jù)區(qū)內(nèi))
-擦除單元:Nx 4kbytes (N = 1,2,3…)(在一個(gè)數(shù)據(jù)區(qū)域內(nèi))
●硬件屬性區(qū)域:
本產(chǎn)品的設(shè)置可在“數(shù)據(jù)閃存”的“硬件屬性區(qū)域”中進(jìn)行配置。
硬件屬性區(qū)包括配置設(shè)置區(qū)、擴(kuò)展數(shù)據(jù)區(qū)、安全設(shè)置區(qū)、塊保護(hù)區(qū)、開關(guān)區(qū)、TAG區(qū)和擦除計(jì)數(shù)器區(qū)。
-配置設(shè)置區(qū):存放系統(tǒng)配置參數(shù)。(Flash選項(xiàng)字節(jié),重置矢量,軟件配置選項(xiàng)字節(jié)等)
-安全設(shè)置區(qū)域:用于存儲(chǔ)安全參數(shù)。(ID代碼,安全設(shè)置標(biāo)志等)
-塊保護(hù)區(qū)域:用于存儲(chǔ)代碼Flash保護(hù)設(shè)置。(OTP標(biāo)志等)
-開關(guān)區(qū)域和TAG區(qū)域:以原子和健壯的方式更新配置設(shè)置區(qū)域,安全設(shè)置區(qū)域和塊保護(hù)區(qū)域。
-擦除計(jì)數(shù)器區(qū):用于存儲(chǔ)擦除計(jì)數(shù)器。
-擴(kuò)展數(shù)據(jù)區(qū)用于存儲(chǔ)供用戶軟件使用的任何數(shù)據(jù)。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?容量:2kb?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?程序單位:4、8、16、32、64、128字節(jié)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?擦除單位:2kbytes
Switch區(qū)域的有效區(qū)域由:TAG區(qū)域中的VAF選擇。
“配置設(shè)置區(qū)域”、“安全設(shè)置區(qū)域”和“塊保護(hù)區(qū)域”的有效區(qū)域由:“交換區(qū)域”的有效區(qū)域中的CVA、SVA和BVA選擇

刷寫流程
啟動(dòng)過程
Overall Flow
啟動(dòng)進(jìn)程的詳細(xì)信息
1. Power-On上電(復(fù)位中斷) : 上電時(shí),程序計(jì)數(shù)器變成復(fù)位向量地址(復(fù)位段)。它從RESET Vector跳轉(zhuǎn)到__start例程。
設(shè)備上電后,PE0啟動(dòng)。在PE0的處理中,如果ENABLE_PE1_BY_PE0為1, PE1被激活,ENABLE_PE2_BY_PE0為1, PE2被激活,ENABLE_PE3_BY_PE0為1, PE3被激活。
2. Initializing Registers?初始化寄存器
3.?Clock Gearup Settings時(shí)鐘Gearup設(shè)置: 啟動(dòng)PE0后,將系統(tǒng)時(shí)鐘改為PLL,并執(zhí)行時(shí)鐘Gearup。
當(dāng)滿足以下所有條件時(shí),該流程才會(huì)執(zhí)行。
·ENABLE_CLOCK_GEARUP為1。
·正在運(yùn)行的PE為PE0(PEID bit0:2(PEID)=0)
·主OSC和PLL啟用(PLLS=0x00000003)
4. Module Standby Settings模塊備用設(shè)置:設(shè)置要使用的功能的模塊備用寄存器。
當(dāng)滿足以下所有條件時(shí),該流程才會(huì)執(zhí)行。
·ENABLE_MODULE_STANDBY_SET為1
·正在運(yùn)行的PE為PE0(PEID bit0:2(PEID)=0)
5. Enabling PE1~3?使能PE1~3:使能PE1、PE2或PE3,將BOOTCTRL (PE1 bit1(BC1)、PE2 bit2(BC2)、PE3 bit3(BC3))對(duì)應(yīng)的PEx位設(shè)置為1。
·啟用PE1,設(shè)置1為ENABLE_PE1_BY_PE0。
·啟用PE2,設(shè)置1為ENABLE_PE2_BY_PE0。
·啟用PE3,設(shè)置1為ENABLE_PE3_BY_PE0。
·進(jìn)程PE為PE0(PEID bit0:2(PEID)=0)
6. Initializing RAM Areas?初始化RAM區(qū)域:初始化本地RAM和集群RAM。
在本項(xiàng)目中,為了縮短啟動(dòng)時(shí)間,每個(gè)PE在指定的RAM地址區(qū)域內(nèi)執(zhí)行初始化。
7. Initializing RAM Areas?定時(shí)同步(PE0~PE3):正在進(jìn)行的PE等待,以便其他PE可以同時(shí)進(jìn)一步處理。
當(dāng)滿足以下所有條件時(shí),該流程才會(huì)執(zhí)行
·ENABLE_PE1_BY_PE0為1
·ENABLE_PE2_BY_PE0為1
·ENABLE_PE3_BY_PE0為1
8. Setting Interrupt Handler Address?設(shè)置中斷處理程序地址:在表引用方法中設(shè)置一個(gè)基指針地址為INTBP。
要設(shè)置的基指針地址是EIINTTBL節(jié)的起始地址。
設(shè)置RBASE的初始值:(PE0,PE1: 0x00000000, PE2,PE3: 0x00800000)作為直接向量法的基址,因?yàn)橥ㄟ^寄存器初始化將“0”設(shè)置為PSW: bit15 (EBV)。
如果“1”設(shè)置為PSW: bit15 (EBV),則使用寄存器初始化時(shí)設(shè)置為EBASE的“0”。
當(dāng)滿足以下所有條件時(shí),該流程才會(huì)執(zhí)行。
?USE_TABLE_REFERENCE_METHOD為1。
9. Setting Each Pointer?設(shè)置每個(gè)指針: 設(shè)置堆棧指針、全局指針和元素指針。
每個(gè)指針需要設(shè)置的值如下:
·堆棧指針
如果正在運(yùn)行的PE為PE0,則為_stacktop_pm0的地址(PEID bit0:2(PEID)=0)。
如果正在運(yùn)行的PE為PE1,則為_stacktop_pm1的地址(PEID bit0:2(PEID)=1)。
如果正在運(yùn)行的PE為PE2,則為_stacktop_pm2的地址(PEID bit0:2(PEID)=2)。
如果正在運(yùn)行的PE為PE3,則為_stacktop_pm3的地址(PEID bit0:2(PEID)=3)。
·全局指針。
__gp_data的起始地址
·元素指針
__ep_data的起始地址
10. Setting RAM Areas?設(shè)置RAM區(qū)域
__INITSCT_RH例程初始化。data節(jié)(帶有初始值的RAM節(jié))和。bss節(jié)(沒有初始值的RAM節(jié))。
通過調(diào)用__INITSCT_RH例程,將初始值為參數(shù)寄存器的RAM節(jié)的初始化表的起始地址和結(jié)束地址設(shè)置為參數(shù)寄存器(r6和r7),以及將初始值為參數(shù)寄存器的RAM節(jié)的初始化表的起始地址和結(jié)束地址設(shè)置為參數(shù)寄存器(r8和r9),可以將數(shù)據(jù)從ROM復(fù)制到。data節(jié)并將。bss節(jié)清除為零。
具有初始值的RAM節(jié)的初始化表需要位于. init_dsec中。const部分。
以及拷貝源ROM段的起始和結(jié)束地址
并且需要將復(fù)制目的RAM段的起始地址設(shè)置到表中。
沒有初始值的RAM段的初始化表需要位于. init_bsec中。const部分。
并且需要將清除的RAM段的起始地址和結(jié)束地址設(shè)置到表中。
11. Setting Coprocessor?設(shè)置Coprocessor:設(shè)置“1”為“FEPSW bit16 (CU0)”,使能FPU。
如果不需要配置FPU板,請(qǐng)將“0”設(shè)置為“PSW bit16 (CU0)”。
12. Calling a Main Function of User Application?調(diào)用用戶應(yīng)用程序的主函數(shù):程序計(jì)數(shù)器轉(zhuǎn)換到用戶應(yīng)用程序的主函數(shù):
如果運(yùn)行的PE為PE0(PEID bit0:2(PEID)=0),則為_main_pm0。
如果正在運(yùn)行的PE為PE1(PEID bit0:2(PEID)=1),則為_main_pm1。
如果正在運(yùn)行的PE是PE2(PEID bit0:2(PEID)=2),則為_main_pm2。文章來源:http://www.zghlxwxcb.cn/news/detail-823875.html
如果正在運(yùn)行的PE為PE3(PEID bit0:2(PEID)=3),則為_main_pm3。文章來源地址http://www.zghlxwxcb.cn/news/detail-823875.html
到了這里,關(guān)于瑞薩RH850/U2A系列架構(gòu)講解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!