<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

GD32 MCU啟動后如何運行到main函數

聚沃科技 ? 2024-01-15 10:00 ? 次閱讀

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

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

wKgZomWkkZ-AXdcaAADF2Kcmzuc258.png

MCU找到堆棧指針和復位中斷入口地址之后,將會加載執行復位中斷,復位中斷函數定義在.s啟動文件中,具體定義如下所示,進入到復位中斷函數中之后,首先執行SystemInit系統初始化函數,該函數主要為系統時鐘配置函數,之后跳轉到main函數進行執行,也就是說在執行到main函數之前,已經進行了系統時鐘配置。執行完復位中斷函數之后,MCU將會進入到main函數進行執行。

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

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

    關注

    6007

    文章

    44036

    瀏覽量

    622289
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16085

    瀏覽量

    344380
  • GD32
    +關注

    關注

    7

    文章

    350

    瀏覽量

    23781
收藏 人收藏

    評論

    相關推薦

    GD32 MCU ISP失敗的原因

    玩過GD32的小伙伴們都知道,GD32 MCU支持ISP,即在系統編程,前面的常見問題也給大家講過什么是ISP,什么是IAP?那有沒有小伙伴遇到過ISP失敗的情況,失敗的原因是什么呢?
    的頭像 發表于 02-28 09:23 ?549次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> ISP失敗的原因

    你了解GD32 MCU上下電要求嗎

    你了解GD32 MCU的上下電要求嗎?MCU的上下電對于系統的穩定運行非常重要。
    的頭像 發表于 02-02 09:36 ?414次閱讀
    你了解<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>上下電要求嗎

    GD32 MCU是如何進入中斷函數

    用過GD32 MCU的小伙伴們都知道,程序是順序執行的,但當有中斷來的時候程序會跳轉到中斷函數,執行完中斷函數后程序又繼續回到原來的位置繼續執行,那么你們知道
    的頭像 發表于 01-30 09:45 ?388次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>是如何進入中斷<b class='flag-5'>函數</b>的

    不同型號的GD32 MCU如何區分?

    大家是否碰到過以下應用場景:同一套軟件代碼希望跑在不同型號的GD32 MCU中,但有些地方需要根據MCU型號進行調整?或者上位機或其他MCUGD3
    的頭像 發表于 01-27 09:32 ?459次閱讀
    不同型號的<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>如何區分?

    如何對GD32 MCU進行加密?

    :首先GD32MCU本身支持防硬開蓋破解的功能,GD32MCU內部Flash直接硬開蓋破解讀取的數據無法在同型號的產品上運行,因為GD32MCU內部Flash物理
    的頭像 發表于 01-20 09:30 ?718次閱讀
    如何對<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>進行加密?

    GD32 MCU的選項字節是什么?

    GD32 MCU的選項字節是什么,有什么功能呢?選項字節被誤篡改如何回復?
    的頭像 發表于 01-17 09:42 ?661次閱讀
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的選項字節是什么?

    GD32 MCU啟動如何運行main函數?#嵌入式開發 #單片機 #MCU #main

    單片機mcu
    聚沃科技
    發布于 :2024年01月16日 09:42:02

    你了解GD32 MCU的命名規則嗎

    下面為大家介紹GD32 MCU的通用命名規則,以GD32F303ZGT6為例,其中,GD32代表GD32
    的頭像 發表于 01-13 09:38 ?2030次閱讀
    你了解<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的命名規則嗎

    MCU上電不啟動的可能原因分析

    GD32 MCU上,BOOT引腳決定了MCU啟動方式,通常BOOT0引腳下拉時是flash啟動,如果BOOT電平不對就不會執行我們下載的
    發表于 01-12 17:08 ?1081次閱讀
    <b class='flag-5'>MCU</b>上電不<b class='flag-5'>啟動</b>的可能原因分析

    hc32和gd32的區別

    hc32和gd32的區別 HC32和GD32都是中國的MCU品牌,它們都是標準的ARM Cortex-M內核芯片。HC32的品牌是華大集成電路,而GD32的品牌是吉祥航空電子。這兩個品
    的頭像 發表于 08-16 11:33 ?2030次閱讀

    GD32與STM32誰更好?

    文章將詳細探討。 簡介 GD32是由GigaDevice推出的一款32位MCU,為優化成本和提升性能而設計。GigaDevice是一家中國芯片公司,成立于2005年,專注于設計、生產和銷售嵌入式存儲器
    的頭像 發表于 08-16 11:33 ?1136次閱讀

    GD32與STM32兼容嗎?

    的外設具有不同的寄存器映射和不同的寄存器位域。因此,任何在STM32上編寫的應用程序不能直接在GD32運行,需要對代
    的頭像 發表于 08-16 11:32 ?2354次閱讀

    GD32芯片怎么樣?GD32芯片運行速度慢的原因

    GD32芯片是一種基于ARM Cortex-M3內核的微控制器(MCU),是中國長江存儲器有限責任公司(GigaDevice)推出的產品系列。與NXP LPC、STMicroelectronics
    發表于 08-07 18:25 ?2411次閱讀

    推出采用GD32 RISC-V的MCU

    推出采用GD32 RISC-V的MCU ppt分享
    發表于 07-14 17:15 ?0次下載

    GD32 MCU原理及固件庫開發指南》+讀后感

    ,所以從STM32切換到GD32能夠很快實現,節省了很多精力和時間成本。并且剛好出了《GD32 MCU原理及固件庫開發指南》這本書,能幫助快速上手并能實用到項目中去。 這本書從MCU
    發表于 06-06 21:52
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>