国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

GD32 MCU啟動(dòng)后如何運(yùn)行到main函數(shù)

發(fā)布者:tau29最新更新時(shí)間:2024-10-31 來(lái)源: elecfans關(guān)鍵字:GD32  main函數(shù) 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

GD32 MCU啟動(dòng)后如何運(yùn)行到main函數(shù)入口?你是否也有這樣的疑慮。在執(zhí)行到main函數(shù)之前MCU干了哪些事情呢?下面為大家解答。


MCMCU上電后,首先會(huì)根據(jù)BOOT0和BOOT1的狀態(tài)判斷從主Flash/SRAM/ISP中啟動(dòng),如果BOOT0為低電平,MCU將會(huì)從主Flash中啟動(dòng),即主Flash中的數(shù)據(jù)會(huì)被映射到0x0000 0000地址,ARM處理器將會(huì)從0x0000 0000地址獲取棧頂指針,再?gòu)?x0000 0004獲取復(fù)位中斷入口地址(引導(dǎo)代碼基地址),如下圖所示,我們隨便打開一個(gè)bin文件,前4個(gè)字節(jié)為MSP堆棧指針,之后四個(gè)字節(jié)為復(fù)位中斷入口地址,之后為中斷向量表。

wKgZomWkkZ-AXdcaAADF2Kcmzuc258.png


MCU找到堆棧指針和復(fù)位中斷入口地址之后,將會(huì)加載執(zhí)行復(fù)位中斷,復(fù)位中斷函數(shù)定義在.s啟動(dòng)文件中,具體定義如下所示,進(jìn)入到復(fù)位中斷函數(shù)中之后,首先執(zhí)行SystemInit系統(tǒng)初始化函數(shù),該函數(shù)主要為系統(tǒng)時(shí)鐘配置函數(shù),之后跳轉(zhuǎn)到main函數(shù)進(jìn)行執(zhí)行,也就是說在執(zhí)行到main函數(shù)之前,已經(jīng)進(jìn)行了系統(tǒng)時(shí)鐘配置。執(zhí)行完復(fù)位中斷函數(shù)之后,MCU將會(huì)進(jìn)入到main函數(shù)進(jìn)行執(zhí)行。

;/* reset Handler */ Reset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT SystemInit IMPORT __main LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP


關(guān)鍵字:GD32  main函數(shù) 引用地址:GD32 MCU啟動(dòng)后如何運(yùn)行到main函數(shù)

上一篇:【GD32 MCU 入門教程】二、GD32 MCU 燒錄說明 (2)SWD/JTAG在線下載
下一篇:如何對(duì)GD32 MCU進(jìn)行加密?

推薦閱讀最新更新時(shí)間:2025-06-17 13:34

C語(yǔ)言main函數(shù)的標(biāo)準(zhǔn)定義
學(xué)過C語(yǔ)言的人都知道,main函數(shù)是程序啟動(dòng)的入口函數(shù),每一個(gè)C語(yǔ)言程序里有一個(gè)main函數(shù),在程序里它是唯獨(dú)一個(gè)不能被其他函數(shù)調(diào)用的特殊函數(shù)。在眾多的 單片機(jī) C語(yǔ)言編譯器里對(duì)main函數(shù)的寫法都沒有明確的要求,寫法非常自由,可以寫成帶形參的函數(shù),也可以寫成無(wú)形參的函數(shù),還可以寫成返回值為任意數(shù)據(jù)類型的函數(shù)。通用的寫法都是:void main () {…}。而根據(jù)C99標(biāo)準(zhǔn)的要求,main函數(shù)是一個(gè)有返回值的函數(shù),而且返回值類型必須為int。下面這段英文描述是從C99標(biāo)準(zhǔn)的PDF文檔上復(fù)制下來(lái)的: 5.1.2.2.1 Program startup The cal LED at program startup is
[單片機(jī)]
DSP編程技巧之21---在main函數(shù)運(yùn)行之前,你需要知道的
  在一個(gè) C/C++ 程序能正常運(yùn)行之前,相關(guān)的 C/C++ 運(yùn)行時(shí)(run-time)環(huán)境首先要正確建立。在CCS軟件編程的情況下, C/C++ 的實(shí)時(shí)運(yùn)行庫(kù)RTS的源程序庫(kù)rts.src中包含了名為boot.c或者boot.asm的啟動(dòng)程序(在一些TI的例子里,則使用了CodeStartBranch.asm來(lái)完成啟動(dòng)工作,它會(huì)自動(dòng)調(diào)用庫(kù)文件中的boot.asm),用于在系統(tǒng)啟動(dòng)后調(diào)用c_int00函數(shù),并通過其中的操作來(lái)完成運(yùn)行時(shí)環(huán)境的建立。通常情況下,c_int00函數(shù)位于rts2800.lib庫(kù)函數(shù)中的boot.obj(即TI官方編譯boot.c或者boot.asm生成的目標(biāo)文件)下,這也就是為什么我們?cè)贑2
[嵌入式]
DSP編程技巧之21---在<font color='red'>main</font><font color='red'>函數(shù)</font>運(yùn)行之前,你需要知道的
PIC單片機(jī)的PWM波的簡(jiǎn)單調(diào)制+proteus仿真實(shí)現(xiàn)直流電機(jī)的啟動(dòng)
前言:該篇文章主要是給剛?cè)腴T的新人看的,自己也是昨天通過PIC 16F877A調(diào)出的一的PWM波。關(guān)于什么是PWM波我就不在贅述,這個(gè)需要小伙伴自己去查資料了。 主要內(nèi)容:在這里主要是講利用PIC單片機(jī)自身集成的硬件模塊去調(diào)PWM波,而不是通過I/O口的模擬。 需要的一些工具:MPLAB X IDE(編程軟件) proteus(仿真軟件) 芯片手冊(cè)。 1.我們需要了解的下圖的意思。 從圖可以看出,在TMR2與CCPRxH比較時(shí),是用來(lái)復(fù)位的,意思是在計(jì)數(shù)值等于CCPxH時(shí)復(fù)位,(用來(lái)確定脈沖的寬度)。 在TMR2與PR2比較時(shí),是用來(lái)置位,意思是在計(jì)數(shù)等于PR2時(shí)置位,也是將TMR2計(jì)數(shù)寄存器清零,并且反轉(zhuǎn)CC
[單片機(jī)]
PIC<font color='red'>單片機(jī)</font>的PWM波的簡(jiǎn)單調(diào)制+proteus仿真實(shí)現(xiàn)直流電機(jī)的<font color='red'>啟動(dòng)</font>
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved