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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620829
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16016

    浏览量

    343614
  • GD32
    +关注

    关注

    7

    文章

    333

    浏览量

    23740
收藏 人收藏

    评论

    相关推荐

    GD32 MCU ISP失败的原因

    玩过GD32的小伙伴们都知道,GD32 MCU支持ISP,即在系统编程,前面的常见问题也给大家讲过什么是ISP,什么是IAP?那有没有小伙伴遇到过ISP失败的情况,失败的原因是什么呢?
    的头像 发表于 02-28 09:23 393次阅读
    <b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> ISP失败的原因

    你了解GD32 MCU上下电要求吗

    你了解GD32 MCU的上下电要求吗?MCU的上下电对于系统的稳定运行非常重要。
    的头像 发表于 02-02 09:36 341次阅读
    你了解<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>上下电要求吗

    GD32 MCU是如何进入中断函数

    用过GD32 MCU的小伙伴们都知道,程序是顺序执行的,但当有中断来的时候程序会跳转到中断函数,执行完中断函数后程序又继续回到原来的位置继续执行,那么你们知道
    的头像 发表于 01-30 09:45 302次阅读
    <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 343次阅读
    不同型号的<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>如何区分?

    如何对GD32 MCU进行加密?

    :首先GD32MCU本身支持防硬开盖破解的功能,GD32MCU内部Flash直接硬开盖破解读取的数据无法在同型号的产品上运行,因为GD32MCU内部Flash物理
    的头像 发表于 01-20 09:30 562次阅读
    如何对<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>进行加密?

    GD32 MCU的选项字节是什么?

    GD32 MCU的选项字节是什么,有什么功能呢?选项字节被误篡改如何回复?
    的头像 发表于 01-17 09:42 470次阅读
    <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 1530次阅读
    你了解<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>的命名规则吗

    MCU上电不启动的可能原因分析

    GD32 MCU上,BOOT引脚决定了MCU启动方式,通常BOOT0引脚下拉时是flash启动,如果BOOT电平不对就不会执行我们下载的
    发表于 01-12 17:08 829次阅读
    <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 1819次阅读

    GD32与STM32谁更好?

    文章将详细探讨。 简介 GD32是由GigaDevice推出的一款32位MCU,为优化成本和提升性能而设计。GigaDevice是一家中国芯片公司,成立于2005年,专注于设计、生产和销售嵌入式存储器
    的头像 发表于 08-16 11:33 1034次阅读

    GD32与STM32兼容吗?

    的外设具有不同的寄存器映射和不同的寄存器位域。因此,任何在STM32上编写的应用程序不能直接在GD32运行,需要对代
    的头像 发表于 08-16 11:32 2299次阅读

    GD32芯片怎么样?GD32芯片运行速度慢的原因

    GD32芯片是一种基于ARM Cortex-M3内核的微控制器(MCU),是中国长江存储器有限责任公司(GigaDevice)推出的产品系列。与NXP LPC、STMicroelectronics
    发表于 08-07 18:25 2162次阅读

    推出采用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