加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

关于STM32的中断向量表

(2014-05-12 17:05:48)
标签:

中断向量表

重定位

stm32

    程序不能进入复位向量或者一进中断就跑飞,多半是中断向量表的问题,STM32与向量表相关的流程如下:

        1. 在编译连接阶段,编译器会根据你对编译器的设置(芯片存储空间的描述、分散加载文件.sct)

           将中断向量表添加到指定的位置。如果这一步有问题,那么程序就不能进入复位向量。

        2. 程序进入复位向量,在启动代码中会调用SystemInit()函数,在该函数中对中断向量表进行重定位

           相关的宏定义是VECT_TAB_SRAM、SRAM_BASE、FLASH_BASE和VECT_TAB_OFFSET。根据VECT_TAB_SRAM

           宏定义的值确定向量表是在RAM中还是在FLASH中;SRAM_BASE是RAM的起始地址;FLASH_BASE是FLASH

           的起始地址;VECT_TAB_OFFSET是中断向量表在RAM或FLASH中的偏移量。如果这一步有问题,那么程

           序可以正常运行(复位向量的执行实在中断向量表重定位之前),但是只要一进中断就会出问题。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有