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

从bootloader跳到APP需要几步?

一、bootloader 程序

在这里插入图片描述

1.1 FLASH 内存映射图

在这里插入图片描述

1.2 boot程序解析

在这里插入图片描述

1.3 提问:从boot跳转到app前,如果发生了中断,请问这个中断会被响应么?

答案:否、

处理方法:在跳转到app之前,先把中断关闭,在进入app设置中断NVIC中断向量偏移之后,重新打开中断开关即可。

二、app程序

2.1 app程序源码

在这里插入图片描述
这里之所以要设置中断向量偏移表,是因为我们的app程序不是放在0x0800 0000 的默认位置的

主要原因是我们产品需要有一段bootloader程序占用了这段代码空间。

所以我们真实的app应用程序是存放在0x0800 0000 + 0x800 这个位置的。

所以我们的cpu去获取中断向量地址的时候,就不能直接从0x0800 0000 + 4 之后开始获取。

而要从app程序基于bootloader代码在flash中的偏移量的地址处开始获取。

提问

stm32 在开发ota产品时,为什么中断向量表是存放在flash的起始地址+4的这个相对位置? 而不是flash的绝对位置?

这个问题触及了 AR

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

相关文章:

  • JavaSE: 数组详解
  • [直播推流] rtmpdump 库学习
  • 严格三角形方程组
  • Unity中的transform.Translate
  • MySQL-DCL数据控制语言详解
  • gcc升级问题
  • Web第二次方向考核复盘
  • MacBook命令行提示符添加git分支信息
  • Git(三) Git 分支工作流管理模型探究与实践
  • C语言空指针异常在Java中的解决方案
  • 深入理解IOC与DI
  • CPU的异常处理
  • java读取yml配置文件2
  • iOS —— UI(2)
  • 机器学习模型评估与选择
  • java基础面试题。
  • Grdle版本与Android Gradle Plugin版本, Android Studio对应关系
  • GRPO训练布局感知的强化学习多模态文档解析框架-Infinity-Parser
  • 【速写】policy与reward分词器冲突问题(附XAI阅读推荐)
  • web性能优化
  • 电感篇---常见作用
  • 黑马python(六)
  • houdini 简单流体模拟 学习笔记
  • windows server部署.net项目(nopcommerce)
  • 1.2、不同的波段对于传送网有什么意义
  • C语言主要关键字及其用途
  • ubuntu 22.04设置时区和24小时制显示——筑梦之路
  • Leetcode 3584. Maximum Product of First and Last Elements of a Subsequence
  • C# CS_Prj01 串口通信控制台程序
  • sparseDrive(1): 论文解读