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

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

    关注

    6074

    文章

    45334

    浏览量

    663301
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18604

    浏览量

    386566
  • GD32
    +关注

    关注

    7

    文章

    429

    浏览量

    26926
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    兆易创新GD32 MCU家族高性能产品再添新锐:GD32F503/505系列芯片实力亮相

    GD32 MCU高性能产品线再添新锐。该系列基于Arm®v8-M架构,主频高达280MHz,具备灵活的存储配置、高集成度、内置多种安全功能,为高性能计算提供坚实基础,可广泛应用于数字电源、工业自动化、电机
    的头像 发表于 11-05 09:24 254次阅读

    rt thread 按照官方视频一个字一个字敲都不行,连main函数都无法进入,为什么?

    教程,移植时修改gd官方启动文件将bl main 改为了 bl entry 目前都还好 一直可以执行这里,然后就不动了 在idle.c 两个
    发表于 09-28 07:43

    gd32 env配置报错是什么原因呢?

    rtt官网下载源码和env使用env配置gd32报如下错误请问是什么原因呢?
    发表于 09-25 06:19

    GD32的串口DMA收发数据失败怎么解决?

    gd32_hw_usart_init()函数中并未注册DMA收发的方式, GD32函数如下: 而STM32的该函数如下: 查找
    发表于 09-17 06:04

    rt-thread studio中创建不了gd32项目是怎么回事?

    为什么在rt-thread studio中创建一个gd32项目时候,他打开的那个选型芯片型号是,安装好了,没有确认键啊,只有退出sdk管理器,然后就卡在那里了,创建不了gd32的项目
    发表于 09-15 06:56

    gd32f470移植成功无法进入main函数,怎么解决?

    如下所示,我之前用gd32f470移植成功无法进入main函数,之后用官方例程用stm32f407去跑也还是这样
    发表于 09-10 06:24

    基于兆易创新GD32系列MCU的GUI智能屏显解决方案

    随着人机交互需求的不断提升,图形用户界面(GUI)已成为各类智能设备的核心组成部分。兆易创新GD32系列MCU凭借其丰富的外设接口和强大的处理能力,为用户们提供了全面的GUI屏显解决方案,从低功耗小型显示屏高分辨率彩色触摸屏,
    的头像 发表于 08-19 14:49 1321次阅读
    基于兆易创新<b class='flag-5'>GD32</b>系列<b class='flag-5'>MCU</b>的GUI智能屏显解决方案

    飞凌嵌入式ElfBoard ELF 1板卡-uboot启动流程分析之uboot启动阶段

    (arch/arm/cpu/armv7/start.S)函数, reset函数进行设置CPU运行模式,关闭中断等一系列CPU内部环境初始化,跳转到_
    发表于 05-30 09:24

    兆易创新GD32 MCU闪耀2025慕尼黑上海电子展

    GD32 MCU以高性能与创新生态闪耀2025慕尼黑上海电子展,从工业,数字能源汽车,物联网,以"芯"驱动数字化转型,让我们一起回顾下慕展上GD32
    的头像 发表于 04-22 14:08 1859次阅读
    兆易创新<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b>闪耀2025慕尼黑上海电子展

    GD32与STM32有什么区别

    电子发烧友网站提供《GD32与STM32有什么区别.docx》资料免费下载
    发表于 04-03 17:27 0次下载

    GD-LINK无法在KEIL上调试怎么解决?

    芯片:GD32F303RCT6 调试器:GD-LINK 调试软件:KEIL V5 (5.29) 问题:开始调试,程序从SystemInit直接进入HardFault中断,程序无法运行
    发表于 02-27 08:24

    GD32单片机GPIO结构及注意事项

    电子发烧友网站提供《GD32单片机GPIO结构及注意事项.pdf》资料免费下载
    发表于 02-07 17:27 3次下载
    <b class='flag-5'>GD32</b>单片机GPIO结构及注意事项

    AN095 提高GD32温度传感器使用精度的方法

    电子发烧友网站提供《AN095 提高GD32温度传感器使用精度的方法.pdf》资料免费下载
    发表于 01-17 16:14 1次下载
    AN095 提高<b class='flag-5'>GD32</b>温度传感器使用精度的方法

    GD32H7系列MCU安全启动概述

    电子发烧友网站提供《GD32H7系列MCU安全启动概述.pdf》资料免费下载
    发表于 01-17 15:34 0次下载
    <b class='flag-5'>GD</b>32H7系列<b class='flag-5'>MCU</b>安全<b class='flag-5'>启动</b>概述

    #新年新气象,大家新年快乐!#emWin应用开发——基于GD32

    emWin 是一个高效的嵌入式图形用户界面(GUI)库,广泛应用于各种嵌入式系统中。GD32 是一系列由 GigaDevice 公司推出的高性能、低功耗的 ARM Cortex-M 微控制器。将
    发表于 01-14 16:34