RM新时代网站-首页

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

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

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

YTM32的HA系列微控制器啟動(dòng)過程詳解

安芯教育科技 ? 來源: 安德魯?shù)脑O(shè)計(jì)筆記本 ? 2024-07-15 09:24 ? 次閱讀

Introduction

Pricinple & Machenism

HA01的內(nèi)存地址空間

BOOT ROM簡介

BOOT ROM中的Bootloader執(zhí)行過程

BVT的數(shù)據(jù)結(jié)構(gòu)

Practice

源碼中關(guān)于BVT的設(shè)計(jì)

在集成開發(fā)環(huán)境中調(diào)試

Conclusion

Reference

Introduction

HA系列微控制器基于Arm Cortex-M7處理器內(nèi)核,集成了Security Boot的功能。Security Boot的關(guān)鍵代碼集成在BOOT ROM中的bootloader程序中,用戶不可見,以確保信息安全的需要。然而,開發(fā)者在自行編譯固件時(shí),需要配合BOOT ROM中的bootloader,才能正常地引導(dǎo)到用戶應(yīng)用程序,完成啟動(dòng)過程。

本文以HA系列的YTM32B1HA01微控制器(下文簡稱HA01)為例,將詳細(xì)介紹BOOT ROM中bootloader的運(yùn)行機(jī)制,以及用戶程序與之對(duì)接的設(shè)計(jì)要點(diǎn)。

Pricinple & Machenism

HA01的內(nèi)存地址空間

從RM手冊(cè)中可以找到HA01的內(nèi)存地址空間映射表,如圖x所示。從表中可以看到,0x0000_0000開始的地址區(qū)是一塊ITCM存儲(chǔ)器(RAM),而存放用戶程序的pflash則被安排在0x0200_0000開始的地址區(qū)間。在0x0100_0000地址開始的內(nèi)存空間中,安排了一塊ROM。按照芯片內(nèi)部的硬件設(shè)計(jì),芯片上電復(fù)位對(duì)硬件電路做好初始化后,先進(jìn)入ROM執(zhí)行預(yù)燒錄的bootloader程序,進(jìn)一步引導(dǎo)至用戶應(yīng)用程序。

49d07218-40ac-11ef-b8af-92fbcf53809c.png

圖x HA01的內(nèi)存地址空間

在Arm Cortex-M7架構(gòu)中,ITCM是專門用來存放程序指令(Instruction),DTCM是專門用來存放數(shù)據(jù)(Data),至于OCRAM,就對(duì)應(yīng)于普通的SRAM。如果按照以往Arm Cortex-M架構(gòu)中只區(qū)分flash和SRAM的用法,DTCM和OCRAM都可以當(dāng)做是SRAM使用,所以用戶在常規(guī)用例的linker文件中,也可以把DTCM和OCRAM連續(xù)的地址空間都當(dāng)做SRAM使用。但實(shí)際上,ITCM和DTCM都是TCM(Tightly Coupled Memories)存儲(chǔ)器,分別通過I-TCM和D-TCM總線訪問,是等同于Cache存儲(chǔ)器的角色,直接同Arm Cortex-M7內(nèi)核相連,而不同于OCRAM(或者早先Arm Cortex-M架構(gòu)中的RAM)是通過總線(AXI總線)間接同Arm Cortex-M7內(nèi)核連通。如此,一般情況下,若沒有Cache加持,Cortex-M7內(nèi)核訪問TCM的效率要高于訪問OCRAM。

對(duì)這些不同同種類的內(nèi)存,可以根據(jù)需要靈活配置,以獲得最優(yōu)的訪問效率。一種典型的用法:

在ITCM中存放中斷向量表。這也是為什么把ITCM安排到0x0000_0000地址的原因。但需要在執(zhí)行到pflash中的用戶程序之后,由用戶程序?qū)⒋娣旁趐flash中的中斷向量表自行搬運(yùn)到ITCM,然后修改Arm核心的VTOR寄存器重映射到0x0000_0000作為中斷向量表的基地址。如果ITCM的空間大于預(yù)留的中斷向量表占用的空間,剩下的空間用來存放ram code也是不錯(cuò)的。

在DTCM中存放棧。方便處理器快速地申請(qǐng)和釋放。

在OCRAM中存放堆,以及用戶程序中定義的全局變量、緩沖區(qū)等。

OCRAM可能跟Cache搭配使用,以提高訪問效率,但如果處理器內(nèi)核和DMA進(jìn)行數(shù)據(jù)同步,Cache機(jī)制可能會(huì)引入一些麻煩,此時(shí)如果不想繁瑣地調(diào)整Cache的配置,也可以將需要同步的緩沖區(qū)安排到DTCM中。

BOOT ROM簡介

HA01上集成的BOOT ROM使用了64KB的存儲(chǔ)器。芯片復(fù)位后,Cortex-M7內(nèi)核從ROM里的bootloader開始執(zhí)行引導(dǎo)程序。其中,將解析存放在pflash開始位置的BVT(Boot Vector Table)。這里的bootloader主要用于實(shí)現(xiàn)四個(gè)功能:

安全啟動(dòng)Security Boot

在信息安全的體系中,Security Boot作為整個(gè)安全系統(tǒng)的置信根(Root of Trust),可以使用CMAC授權(quán)算法,對(duì)用戶指定的程序(例如2nd bootloader或OTA)進(jìn)行認(rèn)證,這個(gè)過程中,利用硬件的HCU外設(shè)模塊進(jìn)行計(jì)算,其配置信息存放在BVT中。進(jìn)一步,HCU外設(shè)模塊使用的密鑰,存放在HCU_NVR中,由OEM主機(jī)廠或Tier-1預(yù)先燒錄,用戶全程不可見。

如果CMAC驗(yàn)簽失敗,處理器內(nèi)核可以繼續(xù)運(yùn)行bootloader并引導(dǎo)至用戶程序,但HCU將不會(huì)導(dǎo)入存放與HCU_NVR中的密鑰,一切加密相關(guān)的操作將得不到芯片硬件的支持。

快速從Powerdown模式下喚醒

當(dāng)檢測到從Powerdown模式下喚醒而產(chǎn)生的復(fù)位,可以跳過Security Boot和內(nèi)核自檢的過程,從而加速啟動(dòng)過程。

可選地啟用配置獨(dú)立的IVT(Interrupt Vector Table)。這需要配合REGFILE中最開始的兩個(gè)存儲(chǔ)字存放配置信息。REGFILE在Powerdown模式下仍能保存數(shù)據(jù)。

對(duì)內(nèi)核進(jìn)行例行自檢(Structural Core Self-Test,SCST)

這是為了配合實(shí)現(xiàn)功能安全等級(jí)ASIL-D標(biāo)準(zhǔn),而進(jìn)行的運(yùn)行時(shí)測試。

配置系統(tǒng)時(shí)鐘看門狗

根據(jù)BVT中的配置,在bootlaoder過程中啟用或者停用看門狗,以及對(duì)應(yīng)的超時(shí)周期(HA01的WDG在默認(rèn)情況下,使用來自于IPC的SIRC/4作為計(jì)數(shù)時(shí)鐘源)

BOOT ROM中的Bootloader執(zhí)行過程

在HA01的RM手冊(cè)中,可以找到bootloader執(zhí)行過程的示意圖。如圖x所示。

49fbddd6-40ac-11ef-b8af-92fbcf53809c.png

4a2bd842-40ac-11ef-b8af-92fbcf53809c.png

圖x BOOT ROM中的bootloader運(yùn)行流程圖

從圖x中可以看到,芯片從上電啟動(dòng)到用戶的main()函數(shù),大體要經(jīng)歷三個(gè)階段:

MCU Reset Phase

Boot Code Function

MCU App run Phase

芯片上電后(POR),根據(jù)REGFILE區(qū)域中的REG0的配置值,分別進(jìn)入快速啟動(dòng)流程(Fast Wakeup Boot Mode)或常規(guī)啟動(dòng)流程(Normal Boot Mode)。

在快速啟動(dòng)流程中:

解析BVT中預(yù)設(shè)的參數(shù),以初始化系統(tǒng)時(shí)鐘。

從REGFILE->REG1寄存器中獲取快速啟動(dòng)流程的應(yīng)用程序入口地址(同常規(guī)啟動(dòng)流程最終引導(dǎo)的應(yīng)用程序入口地址可能不同)

查看IVT的地址并確保指定IVT的地址空間位于SRAM,后續(xù)將在用戶自行編寫的應(yīng)用程序初始化階段存放中斷向量表。

跳轉(zhuǎn)到快速啟動(dòng)流程的程序入口。

中間過程如果遇到任何異常,都會(huì)進(jìn)入static mode(原地死循環(huán))。

在常規(guī)啟動(dòng)流程中:

解析BVT中預(yù)設(shè)的參數(shù)。

若BVT中配置啟用了Security Boot,則執(zhí)行驗(yàn)簽過程。

若BVT中配置啟用了SCST Test,則執(zhí)行Cortex-M7處理器內(nèi)核的自檢。

根據(jù)BVT中的參數(shù),配置看門狗WDG外設(shè)模塊。

跳轉(zhuǎn)到常規(guī)啟動(dòng)流程的程序入口。

中間過程如果遇到任何異常,都會(huì)進(jìn)入static mode(原地死循環(huán))。

快速啟動(dòng)流程中不執(zhí)行Security Boot和SCST Test過程,因此可以縮短啟動(dòng)時(shí)間。但注意,快速啟動(dòng)流程的應(yīng)用程序入口同常規(guī)啟動(dòng)的應(yīng)用程序入口可能不是同一個(gè)。

BVT的數(shù)據(jù)結(jié)構(gòu)

BVT保存了啟動(dòng)過程中的很多關(guān)鍵參數(shù),它本身位于pflash存儲(chǔ)區(qū),0x0200_0000開始的一段內(nèi)存空間,可由用戶在編寫應(yīng)用程序時(shí),創(chuàng)建一個(gè)結(jié)構(gòu)體,然后在鏈接過程中將其安排至0x0200_0000地址。BVT的參數(shù)占用108個(gè)字節(jié),但實(shí)際上卻需要預(yù)留2KB的空間,這是由于pflash的一個(gè)sector大小為2KB。用戶實(shí)際開發(fā)過程中,也可以調(diào)整linker file,避開0x0200_0000開始的一個(gè)sector,如此,可保持最近一次燒寫的可用的BVT配置不變。

手冊(cè)中列寫了BVT的字段定義,如圖x所示。

4a56de8e-40ac-11ef-b8af-92fbcf53809c.png

圖x 描述BVT的字段信息

從這里可以窺到一個(gè)有趣的設(shè)計(jì),竟然提到了有CM7_0、CM7_1和CM7_2三個(gè)Cortex-M7處理器核心,并且每個(gè)核心有main和secondary兩個(gè)核心。從描述上看,這描述的是一對(duì)鎖步核(lockstep),并且每個(gè)核心都可以有獨(dú)立的應(yīng)用起始地址(application start address),將來用于全并行地分別執(zhí)行不同的應(yīng)用程序。實(shí)際上,目前的HA01使用的是一個(gè)不可拆開的單鎖步核,故只有CM7_0_main可用??梢韵胍?,在后續(xù)的產(chǎn)品規(guī)劃中,可能會(huì)出現(xiàn)最多3對(duì)鎖步核,如果進(jìn)一步將鎖步核拆開,可以設(shè)計(jì)最多6個(gè)獨(dú)立的Cortex-M7核心。

BVT中0x4偏移地址上的Boot Configuration Word中進(jìn)一步定義了啟動(dòng)相關(guān)的配置項(xiàng),如圖x中的表格所示。

4a7a925c-40ac-11ef-b8af-92fbcf53809c.png

圖x Boot Configuration Word的字段描述

這里提供了一個(gè)信息,運(yùn)行bootloader程序使用了FIRC(96MHz)作為時(shí)鐘源,但可以通過CPDIVS設(shè)置1分頻或者2分頻。

這里還設(shè)計(jì)了很多功能的開關(guān),例如看門狗、6個(gè)核心的獨(dú)立使能開關(guān),SCST自檢功能。

這里還提到了serial security boot mode和normal boot mode,猜測前者可能就是驗(yàn)簽的計(jì)算過程。

Practice

源碼中關(guān)于BVT的設(shè)計(jì)

用戶從SDK中導(dǎo)出的樣例工程,就有關(guān)于對(duì)BVT的定義,以及在鏈接腳本中專門分配的代碼段。

以hello_world工程為例,其中的secure_boot_YTM32B1HA0.h文件中有關(guān)于BVT類型的定義:

...
#defineBVT_HEADER_SEG__attribute__((used))__attribute__((section(".bvt_header")))
...

/*!
*@brieftheBVTstructuretypedefinition
*
*Implements:bvt_header_config_t_Class
*/
typedefstruct{
uint32_tbvt_marker;/*BVTmarker*/
uint32_tboot_config_word;/*Bootconfigurationword*/
uint32_tsbt_config_group_addr;/*securebootstartaddress*/
uint32_tlc_config;/*lifecycleconfiguration*/
uint32_tcm7_0_main_app_addr;/*CM7_0maincorestartaddress*/
uint32_tcm7_0_secondary_app_addr;/*ReservedforCM7_0_SECONDARY_APP_ADDR*/
uint32_tcm7_1_main_app_addr;/*ReservedforCM7_1_MAIN_APP_ADDR*/
uint32_tcm7_1_secondary_app_addr;/*ReservedforCM7_1_SECONDARY_APP_ADDR*/
uint32_tcm7_2_main_app_addr;/*ReservedforCM7_2_MAIN_APP_ADDR*/
uint32_tcm7_2_secondary_app_addr;/*ReservedforCM7_2_SECONDARY_APP_ADDR*/
uint32_tapp_wdg_timeout;/*timeoutsetoftheWDGwatchdogoftheapplicationcore*/
}bvt_header_config_t;

而在secure_boot_YTM32B1HA0.c文件中,有定義具體的結(jié)構(gòu)體實(shí)例:

#defineBOOT_CONFIG_WORD(BVT_BCW_CPDIVS_SET(1)|CM7_0_M_EN)

/*definethetimeoutofADGwatchdogoftheapplicationmaincore*/
#defineAPP_WDG_TIMEOUT(120000)/*10msrespectto12MHzSIRCasreferenceclock*/
/*Flasherasedstatus*/
#defineRESERVED(0xFFFFFFFF)
/*BVTHeaderconfiguration*/
constbvt_header_config_tbvt_headerBVT_HEADER_SEG={
BVT_VALID_MARK,/*BVTmarker*/
BOOT_CONFIG_WORD,/*Bootconfigurationword*/
(uint32_t)&secure_boot_group,/*securebootstartaddress*/
RESERVED,/*lifecycleconfiguration*/
DEFAULT_START_ADDRESS,/*CM7maincorestartaddress*/
RESERVED,
RESERVED,
RESERVED,
RESERVED,
RESERVED,
APP_WDG_TIMEOUT,/*timeoutsetoftheWDGwatchdogoftheapplicationcore*/
};

此處注意,定義的bvt_header結(jié)構(gòu)體將位于BVT_HEADER_SEG數(shù)據(jù)段內(nèi)。其中DEFAULT_START_ADDRESS定義了同應(yīng)用軟件約定的啟動(dòng)地址,具體位于0x0200_0800。位于secure_boot_YTM32B1HA0.h文件中。

/*BVTvalidmarker*/
#defineBVT_VALID_MARK(0xA55AA55A)

/*Defaultstartaddress*/
#defineDEFAULT_START_ADDRESS(0x02000800)

同時(shí),在YTM32B1HA01_flash.sct文件中,也相應(yīng)指定了BVT所占用的存儲(chǔ)空間(預(yù)留在0x0200_0000至0x0200_07FF,和應(yīng)用程序的起始地址0x0200_0800:

#definem_bvt_start0x02000000
#definem_bvt_end0x020007FF
#definem_bvt_sizem_bvt_end-m_bvt_start+1

#definem_interrupts_start0x02000800
#definem_interrupts_size0x00000400

。。。

LR_m_textm_bvt_start
{;loadregionsize_region
ER_m_text_2m_bvt_startFIXEDm_bvt_size
{
.ANY(.bvt_header)
.ANY(.sb_config_group)
.ANY(.sb_config_section)
.ANY(.sb_cmac)
}

//vectors.
VECTOR_ROMm_interrupts_startFIXEDm_interrupts_size
{
*(RESET+First)
}

//code.
ER_m_textm_text_startFIXEDm_text_size
{
*(InRoot$$Sections)
.ANY(+RO)
}
。。。

當(dāng)下載程序后,可以在memory的視圖中可以看到,0x0200_0000開始的位置,有存放關(guān)于BVT的配置信息。如圖x所示。

4ab6b8ae-40ac-11ef-b8af-92fbcf53809c.png

圖x 下載到HA01芯片中的BVT配置數(shù)據(jù)

在集成開發(fā)環(huán)境中調(diào)試

BOOT ROM + BVT相互配合,在HA01芯片內(nèi)部實(shí)現(xiàn)了一個(gè)bootloader,但程序的起始地址也不再是常規(guī)默認(rèn)的0x0000_0000,如此,當(dāng)在集成開發(fā)環(huán)境中調(diào)試程序時(shí),可能會(huì)需要指定一個(gè)程序入口點(diǎn)。實(shí)際上,bootloader的存在并不影響在載入調(diào)試環(huán)境時(shí)自動(dòng)將程序斷點(diǎn)到main()函數(shù):

在調(diào)試環(huán)境中,下載程序到芯片后復(fù)位,如果不顯式地執(zhí)行入口程序地址,芯片會(huì)自動(dòng)從bootloader開始執(zhí)行,然后從BVT中取得用戶應(yīng)用程序入口地址后,跳轉(zhuǎn)到用戶應(yīng)用程序。確切地說,是進(jìn)入到用戶程序的Reset_Handler函數(shù),然后進(jìn)入到main()函數(shù)。

大多數(shù)集成調(diào)試環(huán)境,會(huì)“智能”地在main()函數(shù)開始的位置打一個(gè)斷點(diǎn),作為調(diào)試程序的開始,等待開發(fā)者發(fā)起進(jìn)一步的調(diào)試動(dòng)作。

這類似于以往開發(fā)者在有用戶自定義的bootloader的環(huán)境下開發(fā)application。

無論是Keil還是IAR,在集成開發(fā)環(huán)境內(nèi)部啟動(dòng)調(diào)試時(shí),都可以自動(dòng)執(zhí)行上述流程至main()函數(shù)的斷點(diǎn)。但是,當(dāng)使用Segger Ozone調(diào)試可執(zhí)行文件時(shí),由于默認(rèn)會(huì)顯式指定一個(gè)入口地址,如果沒有合適的配置,默認(rèn)從0x0000_0000開始,就會(huì)出現(xiàn)錯(cuò)誤。如圖x。

4adeb872-40ac-11ef-b8af-92fbcf53809c.png

圖x 在ozone中配置程序入口點(diǎn)

4b0401c2-40ac-11ef-b8af-92fbcf53809c.png

圖x 默認(rèn)配置下載入調(diào)試出錯(cuò)

從圖x中可以看到,Ozone默認(rèn)從固件程序的開始,0x0200_0000,讀到了初始的PC和SP值,但這里的數(shù)據(jù)其實(shí)是BVT的內(nèi)容,不是中斷向量表的項(xiàng)目。故會(huì)報(bào)錯(cuò)。

此時(shí),在配置初始載入點(diǎn)時(shí),有幾種可行的配置,都可以實(shí)現(xiàn)正常調(diào)試:

Initial PC -> Read from Location -> 0x0100_0004, Initial Stack Pointer -> Read from Location -> 0x0100_0000。這種設(shè)置是從BOOT ROM中的bootloader開始啟動(dòng),然后引導(dǎo)到用戶應(yīng)用程序。

Initial PC -> Read from Location -> 0x0200_0804, Initial Stack Pointer -> Read from Location -> 0x0200_0800。這種設(shè)置是跳過BOOT ROM中的bootloader啟動(dòng),直接從用戶應(yīng)用程序啟動(dòng)。

Initial PC -> Do not set, Initial Stack Pointer -> Do not set。這種設(shè)置是軟件工具不要多做,讓芯片的硬件機(jī)制起作用。此時(shí)芯片從BOOT ROM中的bootloader開始啟動(dòng),然后引導(dǎo)到用戶應(yīng)用程序。

建議使用第三種方式,充分利用硬件機(jī)制,確保對(duì)芯片有最完整的初始化過程,也是最接近在芯片正常上電啟動(dòng)的運(yùn)行情況。

Conclusion

YTM32B1HA系列微控制器基于Arm Cortex-M7處理器內(nèi)核,集成了BOOT ROM,并重新劃分了地址空間中的內(nèi)存分配,這使得芯片上電之后的引導(dǎo)過程和用戶應(yīng)用程序的存放地址發(fā)生了一些變化,對(duì)應(yīng)地,使用調(diào)試軟件工具也需要做相應(yīng)的適配操作,以避免出現(xiàn)異常的情況。

無論如何,BOOT ROM中的bootloader和BVT的配置,為應(yīng)用帶來了一些新的功能,例如基于硬件計(jì)算引擎進(jìn)行加速和加密的安全啟動(dòng)過程、對(duì)多核心運(yùn)行的管理等等。這為支持復(fù)雜的片上系統(tǒng)的奠定了一定的基礎(chǔ),也是設(shè)計(jì)多核心SoC的啟動(dòng)過程的一種可行的嘗試。

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

    關(guān)注

    48

    文章

    7542

    瀏覽量

    151316
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19259

    瀏覽量

    229649
  • 內(nèi)核
    +關(guān)注

    關(guān)注

    3

    文章

    1372

    瀏覽量

    40276

原文標(biāo)題:YTM32的HA系列微控制器啟動(dòng)過程詳解

文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    詳解STM32啟動(dòng)過程

    本章教程主要跟大家講STM32H7的啟動(dòng)過程,這里的啟動(dòng)過程是指從CPU上電復(fù)位執(zhí)行第1條指令開始(匯編文件)到進(jìn)入C程序main()函數(shù)入口之間的部分。
    發(fā)表于 11-14 11:24 ?1843次閱讀

    YTM32的LIN通信協(xié)議引擎LinFlexD外設(shè)模塊詳解

    YTM32微控制器的LINFlexD外設(shè)模塊,實(shí)現(xiàn)了LIN協(xié)議控制器的功能,可以支持LIN總線協(xié)議的主機(jī)和從機(jī)功能。
    的頭像 發(fā)表于 10-08 11:15 ?1957次閱讀
    <b class='flag-5'>YTM32</b>的LIN通信協(xié)議引擎LinFlexD外設(shè)模塊<b class='flag-5'>詳解</b>

    YTM32的模數(shù)轉(zhuǎn)換ADC外設(shè)模塊詳解

    YTM32的ADC轉(zhuǎn)換外設(shè)最多可以集成32個(gè)輸入通道,最高12b轉(zhuǎn)換精度,最快可以支持2M Sps的12b采樣。
    的頭像 發(fā)表于 10-09 16:35 ?1868次閱讀
    <b class='flag-5'>YTM32</b>的模數(shù)轉(zhuǎn)換<b class='flag-5'>器</b>ADC外設(shè)模塊<b class='flag-5'>詳解</b>

    YTM32的增強(qiáng)型定時(shí)eTMR外設(shè)模塊簡介

    YTM32微控制器上集成的eTMR模塊,是一個(gè)定時(shí)外設(shè),下轄多至8個(gè)通道
    的頭像 發(fā)表于 10-31 14:18 ?1187次閱讀
    <b class='flag-5'>YTM32</b>的增強(qiáng)型定時(shí)<b class='flag-5'>器</b>eTMR外設(shè)模塊簡介

    s3c2440啟動(dòng)過程詳解

    s3c2440啟動(dòng)過程詳解
    發(fā)表于 08-20 18:30

    講STM32H7的啟動(dòng)過程

    第13章 STM32H7啟動(dòng)過程詳解本章教程主要跟大家講STM32H7的啟動(dòng)過程,這里的啟動(dòng)過程是指從CPU上電復(fù)位執(zhí)行第1條指令開始(匯編文件)到進(jìn)入C程序main()函數(shù)入口之間的
    發(fā)表于 08-03 06:15

    STM32F429啟動(dòng)過程詳解

    第13章 STM32F429啟動(dòng)過程詳解本章教程主要跟大家講STM32F429的啟動(dòng)過程,這里的啟動(dòng)過程是指從CPU上電復(fù)位執(zhí)行第1條指令開始(匯編文件)到進(jìn)入C程序main()函數(shù)入
    發(fā)表于 08-03 06:15

    STM32H7啟動(dòng)過程詳解

    第13章 STM32H7啟動(dòng)過程詳解本章教程主要跟大家講STM32H7的啟動(dòng)過程,這里的啟動(dòng)過程是指從CPU上電復(fù)位執(zhí)行第1條指令開始(匯編文件)到進(jìn)入C程序main()函數(shù)入口之間的
    發(fā)表于 08-03 06:41

    Linux啟動(dòng)過程詳解

    1、Linux 基礎(chǔ)安裝Linux操作系統(tǒng) Linux文件系統(tǒng) Linux常用命令 Linux啟動(dòng)過程詳解 熟悉Linux服務(wù)能夠獨(dú)立安裝Linux操作系統(tǒng) 能夠熟練使用Linux系統(tǒng)的基本命
    發(fā)表于 11-02 07:01

    Windows XP 啟動(dòng)過程詳解

    我們每天都在和 Windows 打交道,很多人可能每天都要面對(duì)多次 Windows 的啟動(dòng)過程,可是您知道在 Windows 的啟動(dòng)過程背后,隱藏著什么秘密嗎?在這一系列過程中都用到了
    發(fā)表于 11-10 18:24 ?11次下載

    Linux基礎(chǔ)命令之Linux啟動(dòng)過程詳解

    2.2 Linux啟動(dòng)過程詳解 在了解了Linux的常見命令之后,下面詳細(xì)講解Linux的啟動(dòng)過程。Linux的啟動(dòng)過程包含了Linux工作原理的精髓,而且在嵌入式開發(fā)
    發(fā)表于 10-18 14:17 ?2次下載
    Linux基礎(chǔ)命令之Linux<b class='flag-5'>啟動(dòng)過程</b><b class='flag-5'>詳解</b>

    詳解bootloader的執(zhí)行流程與ARM Linux啟動(dòng)過程分析

    RM Linux啟動(dòng)過程分析是本文要介紹的內(nèi)容,嵌入式 Linux 的可移植性使得我們可以在各種電子產(chǎn)品上看到它的身影。對(duì)于不同體系結(jié)構(gòu)的處理來說Linux的啟動(dòng)過程也有所不同。 本文以
    的頭像 發(fā)表于 12-21 09:24 ?1w次閱讀
    <b class='flag-5'>詳解</b>bootloader的執(zhí)行流程與ARM Linux<b class='flag-5'>啟動(dòng)過程</b>分析

    stm32啟動(dòng)過程

    一次性搞定stm32啟動(dòng)模式與啟動(dòng)過程一、stm32啟動(dòng)模式二、從flash啟動(dòng)過程2.1 數(shù)據(jù)在堆棧中存儲(chǔ)方式2.2 stm32的正常啟動(dòng)過程
    發(fā)表于 12-16 16:57 ?8次下載
    stm32<b class='flag-5'>啟動(dòng)過程</b>

    RL78啟動(dòng)過程詳解

    RL78啟動(dòng)過程詳解
    的頭像 發(fā)表于 09-28 16:39 ?1453次閱讀
    RL78<b class='flag-5'>啟動(dòng)過程</b><b class='flag-5'>詳解</b>

    stm32啟動(dòng)過程詳解

    STM32啟動(dòng)過程詳解 近年來,STM32微控制器在嵌入式系統(tǒng)中的應(yīng)用越來越廣泛。STM32微控制器具有高性能、低功耗、易擴(kuò)展和豐富的外設(shè)接口等優(yōu)勢。而要讓STM32
    的頭像 發(fā)表于 12-08 15:47 ?1619次閱讀
    RM新时代网站-首页