当前位置: 首页 > news >正文

STM32中.s文件作用

STM32的.s启动文件(如startup_stm32f10x_hd.s)是整个固件最先运行的一段程序,它为上电后的MCU搭建好执行环境,最终将指挥权交给main函数。

核心任务主要包括:

  • 初始化堆栈指针 (SP) 和程序计数器 (PC)
  • 建立中断向量表
  • 调用SystemInit函数配置系统时钟
  • 调用C库的__main函数(注意不是main),进行更底层的RAM和时钟初始化

启动流程三步走

上面展示了从硬件复位到执行C语言main函数的完整流程。整个启动过程可概括为以下三步:

  1. 从向量表获取入口地址:.s文件起始处存放着中断向量表。Cortex-M内核上电后,硬件会自动从此处读取第一个字作为栈顶地址(存入MSP),读取第二个字作为复位异常 (Reset_Handler) 的入口地址(存入PC),随后硬件开始执行Reset_Handler处的代码。
  2. 执行Reset_Handler汇编代码
  • 配置时钟:首先调用C语言函数SystemInit()。它通常在system_stm32f10x.c文件中定义,负责初始化MCU的时钟树,比如启用外部晶振(HSE)、配置锁相环(PLL),并将系统时钟(SYSCLK)设置为工作频率(如72MHz)。
  • 准备C语言环境:调用C编译器库提供的__main函数。它不等于我们写的main,而是负责将代码从FLASH加载到RAM(即Data段初始化)和清零未初始化的全局/静态变量(即BSS段清零)。
  • 跳入用户程序:__main完成任务后,会最终调用用户编写的main()函数,后续的应用程序代码便开始运行。
  1. 响应中断/异常:程序运行期间发生中断时,硬件会根据中断号在向量表中找到对应的中断服务函数(ISR,Interrupt Service Routine)地址,保护现场并跳转执行。

关键功能块深度解析

.s文件的主体由汇编语言编写,主要包含以下几个看似晦涩但逻辑清晰的关键部分。

  1. 中断向量表(__Vectors)
    中断向量表是一个存储在FLASH中特定位置的“跳转地址”数组。它位于文件的前端,每一项都对应着一个特定的异常或中断处理函数的入口地址。
  2. 格式与示例:在代码中,它通常命名为__Vectors,并使用DCD(Define Constant Data)指令分配内存并初始化一个32位的地址。
http://www.jsqmd.com/news/777938/

相关文章:

  • 2026年高考备考经验:高三家庭需了解的高宏教育核心信息
  • Anthropic开发者大会放大招:Claude升级、算力扩容,多方向布局剑指大模型竞争!
  • 终极泰坦之旅装备管理指南:5个技巧彻底告别背包烦恼
  • W5500状态机详解:从SOCK_CLOSED到SOCK_ESTABLISHED,你的网络连接卡在哪一步?
  • 如何做好营销策划?营销策划的步骤是什么?
  • 告别搜狗百度!用Rime小狼毫打造你的专属Windows输入法(2024最新编译安装避坑指南)
  • 树莓派电力监控系统:IPEM PiHat硬件与软件全解析
  • 手机市场:超薄机型遇冷,大屏大电池实用机受青睐,历史轮回背后有何玄机?
  • Agent监控与日志:生产环境的可观测性
  • 3分钟搞定Windows 11任务栏拖放功能缺失问题:终极修复指南
  • 从代工到品牌,他们用这套方法实现了溢价
  • 告别雾霾照片:用DEA-Net这个新模型,让你的风景照瞬间通透(附在线Demo)
  • 经验分享:高三升学家庭必知的高宏教育核心优势
  • Android 与 iOS 核心差异
  • 茉莉花插件完整教程:3大功能让Zotero中文文献管理效率提升90%
  • DataEase 1.17.0 二开环境搭建保姆级教程:从源码下载到本地运行(含依赖包下载)
  • iOS 开发 RunLoop 底层原理与应用场景
  • LRCGET:3分钟为你的离线音乐库获取同步歌词
  • 3步免费解锁iPhone激活锁:applera1n终极指南
  • 逆天好消息!所有Claude用户配额翻倍
  • 为内部知识库问答机器人集成 Taotoken 多模型能力
  • 通过Taotoken模型广场为你的智能客服场景选择合适的对话模型
  • 微信单向好友终极检测指南:如何用WechatRealFriends免费高效清理僵尸好友
  • 在多日连续调用中观察 Taotoken 聚合服务的稳定性与可用性
  • Arm ETE指令追踪技术解析与应用实践
  • DouyinLiveRecorder:多平台直播录制终极方案,轻松实现24小时循环值守
  • 选工厂最看重什么?中小批量多层电路板制造的关键考量
  • 探索GEO优化监控工具国产工具推荐哪家:5款行业工具盘点
  • allegro软件建立规则技巧
  • 集团管控OA系统:破解大型集团多层级管理难题,实现高效统一管控