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

STM32 Bootloader理解

STM32 Bootloader个人理解

  stm32单片机启动时会先运行一个引导程序Bootloader,该程序可以判断单片机的启动方式,例如stm32f103单片机会利用 boot0 、boot1 两个引脚判断启动模式。判断完启动模式后,设置 SP地址 以及 PC 指针指向对应的地址。当我们的启动方式选择为从flash中启动,那么它会把我们的 PC 指针设置为 0x08000004。
  当我们设置好 MDK 中的程序存储的位置后,程序就是从该路径开始保存,同时中断向量表的位置也是从该位置进行保存。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  因此从 bootloader 退出时执行启动文件,PC = 0x08000004,会执行中断向量表中的复位中断程序,由复位中断程序跳转到我们的 main 函数中,从而进入到 c 的世界。

  若是我们设置 MDK 的 flash 地址为 0x08001000 时,那么我们的中断向量表也会设置到 0x08001000 ,复位中断程序地址在 0x08001004 中保存;从 bootloader 退出时执行启动文件,PC = 0x08000004 并不能找到复位中断程序,程序会卡住。
在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/61488.html

相关文章:

  • LLM训练deepseek如何识别语音
  • linux 系统 之centos安装 docker
  • 【AI 大模型】RAG 检索增强生成 ⑧ ( 文本相似度排序 | Bi-Encoder 双编码器 | Cross-Encoder 交叉编码器 )
  • Docker 篇
  • IU5380C同步降压型2~4节多类型锂电池充电管理IC
  • 【形态学操作中的腐蚀和膨胀详解】
  • RuleOS:区块链开发的“破局者”,开启DApp创新的新纪元
  • Python入门3:类与面对对象
  • LeetCode 376. 摆动序列 java题解
  • 从 “12.3” 的崩溃到完美的解决方案:一场类型选择的冒险之旅
  • 蓝桥杯备赛-差分-重新排序
  • hive面试题--left join的坑
  • k8s集群中部署dcgm-exporter收集GPU指标
  • 机器学习 Day01人工智能概述
  • 串口数据记录仪DIY,体积小,全开源
  • 华为Mate 60 Pro+ 等机型适配支持运营商北斗卫星短信功能
  • 代码随想录算法训练营第六十一天 | 108. 冗余连接 109. 冗余连接II
  • 前端(AJAX)学习笔记(CLASS 4):进阶
  • 图库 | 基于图增强的智慧审计系统革新
  • Pika 技术浅析(三):生成对抗网络
  • C++编程:进阶阶段—4.2对象
  • 【十四】Golang 接口
  • 一学就会的深度学习基础指令及操作步骤(5)使用预训练模型
  • Vue3实战学习(Element-Plus常用组件的使用(输入框、下拉框、单选框多选框、el-image图片))(上)(5)
  • linux centos 安装源码nginx,开放端口
  • 【数据挖掘】知识蒸馏(Knowledge Distillation, KD)
  • 解决 Java/Kotlin 资源加载问题
  • 开源!速度100Kb/s的有线和无线双模ESP32S3芯片的DAP-Link调试器
  • Compose 实践与探索一 —— 关键知识与概念详解
  • autoreconf --install的作用