在IAR调试stm32中断偏移的奇怪现象

发布者:采菊东篱下最新更新时间:2018-12-11 来源: eefocus关键字:IAR调试  stm32  中断偏移 手机看文章 扫描二维码
随时随地手机看文章

今天在做STM32F207 bootloader时发生了一个诡异的事情,在IAR中将我的APP函数中断偏移设置为



即偏移了64KB,前64KB用于放置bootloader程序.编译连接最后生成map,查看也没出错



然后在IAR中下载调试(在此之前还没有下载bootloader):



竟然可以找到复位函数的入口,全速运行,程序正常执行.


按照ST官网的手册一般情况下,在复位后程序,程序从地址0x00000000读取堆栈地址,0x00000004取PC指针,0x00000000地址一般情况为0x08000000的映射,,


图中1就是2的别名,他们的数据能容是相同的.


我偏移了0x00010000后,理论上是应该从0x00010000(即0x08010000)取堆栈地址0x00010004(即0x08010004)取复位指针,这样执行似乎也是对的呀.


问题来了:在复位后STM32总是从0x00000000(不管被影射的那个地址RAM或者ROM或者外部FALSH) 处执行,但是此时0x00000000处并没有放置中断向量表,我的程序是如何知道向量表在0x00010000处(请不要带入上帝视角,单片机很单纯,你不告诉他就不知道)的呢?




0x00000000和0x08000000确实没有放置中断表,还是未开发的处女地





可以看到0x00010000和0x08010000放置了中断表,从此地址连续多个字节数据相同(上面两张图显示的格式不同,其实内容是相同的,有的数据时16位的,有的是32位).


由此我猜到了两个原因导致了这个现象


1.ST数据手册是错的,程序根本不是从0x00000000开始执行的,可能有某个数据被编译进了某个寄存器,一复位就中断偏移了?


2.调试器搞得鬼,不知森么鬼?


对于1我查看了中断偏移寄存器,如下:



根本没有偏移值,反复试验了多次,确实没有偏移


对于2,我拔掉了调试器,果然程序启动不了了,看来确实是调试器的问题,调试复位时并没有从0x00000000处取数据,而是调试器告诉了单片机中断向量的位置,至于原因暂时我还不懂,先记下来,避免以后再入坑.

关键字:IAR调试  stm32  中断偏移 引用地址:在IAR调试stm32中断偏移的奇怪现象

上一篇: STM32启用Bootloader支持配置
下一篇:stm32按键中断点灯

推荐阅读最新更新时间:2024-03-16 16:19

STM32独立看门狗详解
本文将介绍STM32的看门狗中的独立看门狗,并通过实例来喂狗、体验喂狗与不喂狗的区别。 ①STM32看门狗介绍之独立看门狗 ②使用STM32CUBEMX来配置工程文件 ③代码实现,按键按下喂狗、按键不按下不喂狗程序复位 ①STM32看门狗介绍之独立看门狗 看门狗定时器本质上是一个计数器、给计数器一个数值,在程序 运行后计数器的值开始递减,当计数器的值减到0是会将程序复位,若在减到0之前给计数器更新一下值“喂狗”则从最新的值开始递减; 用途: 1、这样做的好处就是程序跑飞、死机时,通过复位的方式使得程序又正常运行; 2、用于将系统从休眠或者空闲模式唤醒。 看门狗的种类: 独立看门狗IWDG 特点:专用时钟LSI、低功耗模式仍
[单片机]
<font color='red'>STM32</font>独立看门狗详解
STM32 TFT学习笔记——SD卡读写
主机环境:Windows 7 SP1 开发环境:MDK5.14 目标板:ST NUCLEO-F303RE TFT型号:2.4英寸,带触摸,SD卡,240*320分辨率,26万色 驱动IC:ILI9325 ST库版本:STM32Cube_FW_F3_V1.1.0 SD卡:Kingston 16GB Micro SDHC Class 10 本TFT模块是带有SD卡插槽的,之前连线一直没接,现在可以使用了,对于该TFT模块来说一副图片需要的空间为150K(240*320*2),如果图片都存入FALSH空间肯定是存放不了多少图片资源的,因此我们可以把图片资源存入SD卡中等到需要时再从SD卡读取来显示,这样只要SD卡空间够大我们就可以显
[单片机]
STM32标准库中的GPIO_Pin_N与GPIO_PinSourceN话题
最近做项目遇到这个问题,上网看到这篇文章,感觉很好,是人家的实际项目中总结出来的,转载过来,用以学习交流。一开始我也是分不清这两个参数的定义,总是以为是一样的,没注意他们的区别,以至于在按键消抖上面,总是不能很好的消抖,按下按键屏幕老是闪一下。原因就是我把该写GPIO_Pin_N的写成了GPIO_PinSourceN,其实这点和keil官方的MDK有关系,手写代码的时候,编辑器首先提示的是GPIO_PinSourceN,我就直接确定了。没想到是错误的。 下面是原文:(链接: http://www.51hei.com/bbs/dpj-40992-1.html ) 某日,有个工程师电话跟我交流,他在使用STM32F042芯片开发产
[单片机]
<font color='red'>STM32</font>标准库中的GPIO_Pin_N与GPIO_PinSourceN话题
STM32模糊控制pid 控制烤箱温度
控制系统用stm32当主控 Ds18b20当温度传感器 通过电调控制加热棒 模糊控制算法+pid控制温度 单片机源程序如下: #include pid.h void PIDInit (struct PID *pp) { memset ( pp,0,sizeof(struct PID)); } float PIDCalc( struct PID *pp, float temp2 ) { float Error,Error1,Error2,a; Error=pp- Setval-temp2; ///e(k) Error1 = Error - pp- LastError;//e(k)-e(k-1
[单片机]
意法半导体(ST)与Yogitech合作开发STM32微控制器安全组件
意法半导体(STMicroelectronics,简称ST)和Yogitech 签订了一项合作开发微控制器完整安全组件的协议,以简化基于STM32微控制器的关键安全应用的开发和认证过程。 意法半导体和Yogitech同意开发一个安全手册和测试软件库,作为一个简单、快速且高效的测试方式,使用IAR系统的定制化开发工具,检测并标记STM32微控制器潜在的危害性故障。合作双方瞄准一个仅在欧洲就预计约为4亿多欧元的巨大市场,工程师可从意法半导体的500余款微控制器中选择一款适合的产品,用于研发创新且安全的工业自动化用产品。 Yogitech首席执行官Silvano Motto表示:“鉴于现代集成电路的复杂性,使用黑匣子进行安全性分析的方
[单片机]
STM32系列第17篇--待机唤醒
STM32的3种低功耗模式: 睡眠模式:内核停止,外设如NVIC,系统时钟Systick仍运行。 停止模式:所有时钟都已停止;1.8V内核电源工作;PLL,HIS和HSERC振荡器功能禁止;寄存器和SRAM内容保留。 待机模式:1.8V内核电源关闭;只有备份寄存器和待机电路维持供电;寄存器和SRAM内容全部丢失;实现最低功耗。 STM32的3种低功耗唤醒方式: STM32待机模式: 在待机模式下,所有的I/O引脚均处于高阻态,除了复位引脚、被使能的唤醒引脚和TAMPER引脚。待机模式下只有2uA的电流,停机模式下20uA的电流。 库函数进入待机模式: 1. 使能电源时钟。 2. 设置WK_UP引脚作为唤醒源。 3.
[单片机]
<font color='red'>STM32</font>系列第17篇--待机唤醒
STM32学习三之时钟树分析
上一章我们已经将STM32的开发环境搭建成功了,那么接下来我们就可以开始进行实际操作了。在进行实际操作之前我们需要提前准备好一些资料文档,这些资料文档大家可以在我的百度网盘 https://pan.baidu.com/s/1BejuAkvtU5KKlJEo3HAXMA 提取码:dfs6 中进行下载。 很多同学在学习单片机的时候都有遇到过一个东西,那就是晶振。其实这个所谓的晶振全名叫做晶体振荡器,其作用是用于产生原始的时钟频率,晶振产生的频率经过频率发生器的放大或缩小后就成了计算机中各种不同的总线频率 ,用于计算机中各个不同的外设工作,常用晶振的模样如下图所示: 一、什么是时钟频率 计算机是一个由各种集成电路和电子器件组成,
[单片机]
<font color='red'>STM32</font>学习三之时钟树分析
如何有效地使用串口通讯接收数据
引言 在使用stm32或者其他单片机的时候,会经常使用到串口通讯,那么如何有效地接收数据呢?假如这段数据是不定长的有如何高效接收呢? 同学A:数据来了就会进入串口中断,在中断中读取数据就行了! 中断就是打断程序正常运行,怎么能保证高效呢?经常把主程序打断,主程序还要不要运行了? 同学B:串口可以配置成用DMA的方式接收数据,等接收完毕就可以去读取了! 这个同学是对的,我们可以使用DMA去接收数据,不过DMA需要定长才能产生接收中断,如何接收不定长的数据呢? DMA简介 题外话:其实,上面的问题是很有必要思考一下的,不断思考,才能进步。 什么是DMA DMA :全称Direct Memory Access,即直接存储器访问
[单片机]
如何有效地使用串口通讯接收数据
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved