stm32F1 SCB->VTOR开机默认是0,如何理解?

1.使用stm32cubemx生成新的f1工程,SystemInit函数中默认没有设置SCB->VTOR,则SCB->VTOR默认为0,程序正常运行。
2.在设计IAP的时候,为社么在app程序中需要设置SCB->VTOR,而bootloader中不需要?
3.程序的SCB->VTOR = 0x0800 0000 | offset;
4.那么对于bootloader来说,只是offset = 0而已,为什么连0x0800 0000都可以不设了呢?
5.想请教各位大佬,这个应该怎么理解?

答:

ARM Cortex-M3内核永远从0x00000000启动,STM32在这里取了个巧,它在0x00000000开始的一段地址空间是虚拟的,可以通过设置BOOT[1:0]管脚状态,在启动时动态将另外一段地址空间映射到这部分上面去。
当arm复位之后,读到的0x00000000内容已经是被STM32重映射之后的了,所以它可以system boot模式启动、还是Flash启动、还是内存启动。
如果是正常的Flash启动,则会将0x08000000映射到0x00000000,因此arm以为自己还在操作0x00000000,其实是在操作0x08000000,已经被STM32偷梁换柱了,当然,此时直接操作0x08000000也是可以的,二者完全等价。

因此,SCB->VTOR保持为0x00000000完全没有任何问题。

原文:http://www.openedv.com/forum.php?mod=viewthread&tid=320947&extra=page%3D1

调试的时候们可以进去memory看看,

(0)

相关推荐

  • 【NUCLEO-L073RZ】物联网时代-开发就是这么easy!

    不愧是大厂的手笔--"还是原来的配方,还是熟悉的味道" 欣赏了外貌,了解完配置,就直接上电开玩. 出厂还是一样的测试程序,按键控制LED的闪烁频率,简单却有实用: 我用的Win7旗 ...

  • ARM Cortex-M 系列 MCU错误代码自动追踪库的使用经验分享

    大家在用STM32的时候有没有遇到过HardFault的问题呢: 之前有一段时间被这个问题困扰了很久,下面针对这个问题做个小总结. 现象还原:在debug模式下进行仿真调试,全速运行再停止运行,程序会 ...

  • STM32F7开发板自己造

    我去年就想自己造个144脚STM32F7+SDRAM的板子了,针对音频处理算法开发.虽然在任性DIY活动中已经获得了一块强大的F746G-Disco,从功能上差不多是满足了我的需求,但灵活性还是不够. ...

  • KEIL MDK 分散加载示例1-更改程序运行基址

    KEIL MDK 分散加载示例1-更改程序运行基址     小编我一向主张在实战中学习,不主张直接去去学习规则&定义,太枯燥,在实际应用中去摸索,才会真正理解具体的技术细节,下面我们就通过实际 ...

  • 嵌入式笔记v的主页

    个人建议选择stm32.原因如下: 1.市场上用的相对较多,资料更为丰富,往往新手在学习的过程中会遇到各种各种的问题,此时更容易在网上找到前人遇到过并且已解决的方法,这样学习的效率就高,学习机动性就强 ...

  • 意法半导体(ST)MCU具体型号及其参数对照表!

    目录 主流级MCU STM32 G0系列 – Arm Cortex-M0+全新入门级MCU STM32 G4系列 – Arm Cortex-M4模数混合型MCU STM32 F0系列 – Arm Co ...

  • 做嵌入式软件的一般用什么软件写和看代码比较好?

    桥的那边 深信服科技股份有限公司软件测试工程师 03-14 08:38 关注 我认为应该学习一下51和STM32,但是仅限于学习它的原理并了解它的应用,不用用来做太复杂的东西.利用51和STM32巩固 ...

  • 基于ARM的高压开关智能报警装置开发

    摘要 西安西电开关电气有限公司的研究人员葛允.郭诚.张豪俊.张库娃.张子剑,在2019年第12期<电气技术>杂志上撰文,开发了一种基于ARM的智能报警装置. 该装置主要采集高压开关回路中的 ...

  • 美股T+0的理解

    其实很多投资者都对T+0交易理解得过于简单,尤其是对美股T+0的理解错误更多.美股T+0根本就不如大家想象的那么纯粹,如果在实战交易中弄错,甚至还会带来无数障碍和惨重损失.咱们今天就来聊聊这个话题. ...

  • if({1},区域)与if(1,区域),if({0,1}与if({1,0}怎么理解?

    Excel中的公式是变化多端的,但是最重要的还是对于基本知识的要足够的扎实,才能活学活用.些公式中经常会出现一些奇怪的公式,比如说: =if({1},$A$1:$A$5)=if(1,$A$1:$A$5 ...

  • 鸿蒙OS 2.0手机开机画面演示:终于去掉安卓!

    华为手机从2021.6月初开始将可以升级鸿蒙系统.现在,数码博主@长安数码君 发布了一段视频,对比了基于安卓.鸿蒙OS 2.0的华为手机的开机画面对比. 最明显的变化莫过于,鸿蒙OS 2.0的开机过程 ...

  • 再见了安卓!华为鸿蒙OS 2.0正式登场,开机只需19秒

    大家也都知道,华为从前年开始就被老美打压,以至于无法使用谷歌GMS服务,而从去年开始,华为祭出了鸿蒙OS大招,并且也从1.0版本迭代到了2.0版本,首个搭载机型也由6月份发布的P50提前至近期入网的M ...

  • win10开机怎么设置默认开启数字小键盘 将其数值数据2147483648改为2

       win10开机怎么设置默认开启数字小键盘 1.首先按组合键win+r打开运行窗口,输入regedit并按回车,如图所示: 2.调出注册表编辑器窗口后,依次展开HKEY_USERS.DEFAULT ...

  • 华为鸿蒙2.0与EMUI11开机画面及小程序PK

    华为鸿蒙2.0与EMUI11开机画面及小程序PK

  • 电脑开机蓝屏并出现0*000000ed(0*89b1f)代码怎么解决?

    今天遇到了一个问题,电脑开机就蓝屏了,还出现了0*000000ed代码,电脑有时候会出现蓝屏,代码各不一样.当蓝屏时提示代码是类似0*000000ed(0*89b1f)的时候,电脑是出了什么问题呢该怎 ...

  • 电脑开机很慢?教你4个方法,0成本提高开机速度!

    Hello,叨友们大家好,我是木果!  一名追求数字生活.效率工作,且热爱数码产品的斜杠青年~ 有些小伙伴家里有着几年前的电脑,开个机都要3-5分钟,开机前泡的面都吃完了,电脑还没看到桌面,很是糟心~ ...

  • 终结乱象!华为宣布 EMUI 9.0 将禁止第三方默认桌面

    将「雷科技Lite」收藏为我的小程序,不再错过精彩内容 1 月 10 日,华为官方论坛花粉俱乐部发布公告,旗下华为和荣耀品牌的手机,从EMUI9.0 开始禁止将第三方桌面设置为默认桌面. 众所周知,安 ...