尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

启动文件:0x08000000第一个字是栈顶,第二个字是复位入口

启动文件:0x08000000第一个字是栈顶,第二个字是复位入口
📅 发布时间:2026/7/13 2:16:57

短文标题:启动文件:0x08000000第一个字是栈顶,第二个字是复位入口

你有没有想过一个问题:单片机通电后,执行的第一个指令在哪?为什么程序从main开始跑?不是main,甚至不是Reset_Handler。上电后,硬件自动做两件事:先取栈顶地址,再取复位向量。没有栈,C语言无法运行——所以硬件第一步是设栈,第二步才取第一条指令。上电后硬件自动完成的两件事

  1. 从地址0x08000000读取栈顶地址(__initial_sp)→ 写入MSP(主栈指针)
  2. 从地址0x08000004读取复位向量(Reset_Handler地址)→ 跳转执行

这两个地址固定,由启动文件定义,不可更改。中断向量表的结构(存放在Flash起始)

栈顶地址错误会怎样?

  • 指向ROM(Flash)→ 压栈操作覆盖代码区 → 立即HardFault
  • 超出RAM范围 → 压栈到未映射地址 → BusFault → HardFault
  • 未对齐(奇数地址)→ 总线错误

启动文件写错,单片机连启动都启动不了。

Reset_Handler做了什么?

Reset_Handler:

LDR R0, =SystemInit

BLX R0 ; ① 配置时钟

LDR R0, =__main

BX R0 ; ② C库入口(初始化data/bss,调用main)

SystemInit:配置Flash等待周期、设置PLL、切换系统时钟。

__main(不是main):初始化已初始化的全局变量(.data段)→ 清零未初始化的全局变量(.bss段)→ 最后调用main。

VTOR重定位(Bootloader→APP),通过SCB->VTOR寄存器可将向量表重定位到RAM或Flash其他地址:

SCB->VTOR = 0x08004000; // APP从偏移0x4000开始

Bootloader跳转APP前必须重设VTOR,否则APP的中断向量仍指向Bootloader区。

这个故事的启示,main不是CPU执行的第一个函数。栈顶地址和复位向量,在main之前就已经被硬件加载。启动文件写错,main永远跑不起来。写在最后,调试“上电没反应”,最先检查中断向量表:查看0x08000000:第一个字是不是RAM地址?第二个字是不是Reset_Handler地址?

这两个地址对了,单片机才有可能“活”过来。


(本文灵感源于于振南《新概念ARM32单片机》教程第5.5节“ARM32启动流程与中断控制器配置”。)觉得有用?点赞、转发,让更多人看懂启动文件和向量表的底层逻辑。

相关新闻

  • 方案能不能进入下一阶段,先看这 6 类证据
  • 星网宇达:公司与近期市场关注的长征十号乙运载火箭海上回收技术突破不存在业务关联
  • 电脑上有没有好用的音频格式转换器?盘点10款好用的音频转换工具

最新新闻

  • 2026年7月东莞工程款收款律师/东莞企业法律顾问服务机构选哪家_龙飞律师 - 行业平台推荐
  • C++单例模式深度解析:从线程安全到工程实践
  • ChatGPT Plus订阅技术指南:API调用优化与成本控制策略
  • GB/T 7714-2015 参考文献格式:10个常见错误案例与Zotero 6.0 自动修正方案
  • 欧姆龙G6D-ASI与PIC32MZ的直流负载控制方案
  • Blackwell GPU售罄背后的四大硬约束解析

日新闻

  • AI推荐结果怎么优化:适合深圳少儿素质培训机构的GEO服务商哪家好?全程零代码SAAS操作
  • RAG 实战教学完全指南
  • 企业级API网关架构深度解析:IBM Microgateway的技术实现与选型指南

周新闻

  • IX9104 PCIe5.0 高速交换芯片@ACP#完整规格 + 应用场景总结
  • Unity游戏集成Coze智能体:实现NPC智能对话与知识库联动
  • SAP EPIC 建行回单查询:从标准类CL_EPIC_EXAMPLE_CN_CCB_GHTD到Z类的5处关键修改

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号