stm32f207,程序空间映射到SRAM时,中断向量有问题

2019-03-23 19:37发布

小弟刚接触STM32不久。
用的是官方的固件库,采用SRAM启动方式来调试程序,目前下载和运行一般的代码,都没有问题。
问题是,一旦发生中断时,程序就会跑飞到0XFFFFFFFE上去。

  具体情况时这样的:

  我将编译的"选择菜单"里,Target项中, IROM1 设定为0x20000000 大小0x8000 , IRAM 设定为 0x20008000 大小 8000
  然后DEBUG 的 FLASH DOWNLOAD 选项中,也设定了RAM 为0x20008000 ,大小0x8000 , FALSH定位到0x20000000 大小0x8000  
  同时,板子上也选择为SRAM启动 "BOOT 0 和 BOOT1设置为 SRAM“。
这样设置完后,我可以通过JLINK调试一些简单的程序了。
后来我在程序上增加了一个SYSTICK的中断处理,就是配置好了SYSTICK后,开启了SYSTICK的中断。
结果程序每次在要进入中断的时候,就跑飞了。

百撕不得骑姐,就试着回复到FLASH调试程序。 程序本省一点都没有改,这时,程序就完全正确了,能进入到SYSTICK中断。

我看了startup_stm32f2xx.s , 里面应该都是正确的。

请各位大侠分析下原因,是不是当程序在SRAM中时,需要把中断向量表复制回FLASH??还是说在SRAM调试模式下,需要重定位中断向量表?(按理说是编译器根据startup.s自己映射好了的啊)
我还是希望能在SRAM调试程序。 此帖出自小平头技术问答
0条回答

一周热门 更多>