DSP中断向量表FAQ
2012-06-02
标签: 中断向量

中断向量表

1) DSP('5402)的软件中断和硬件中断在使用时,有什么区别?

2)'5402的中断向量地址是否和8051单片机一样,是固定的?

3)中断如何调用?

1).软件中断通常用于调试过程中或者程序有模拟中断要求时。软中断有点想DOS下的INT 21H,它的入口地址是确定的,不会受代码长度的影响。

2).不是,0X0FF80是固定的,也就是说默认情况下中断起始在0X0FF80,但可通过改变PMST中的中断向量位置设置改变它。

3).中断调用和单片机的一样呀,呵呵

请问关于pmst中iptr设置中断向量表,具体这九位如何对应实际向量地址的?怎么计算?比如1ff是ff80,为什么00011000就是0c00了呢?

iptr存放中断向量区的高9位地址,在其后补七个零即是实际中断向量地址:

实际地址:1111 1111 1000 0000 (ff80h)

iptr存放:1111 1111 1 (1ffh)

再举一例:

实际地址:0000 1100 0000 0000 (0c00h)

iptr存放:0000 1100 0 (018h)

c5402的中断复位区域为rom,(ff80~)调试时无法写入代码的,那如果我要调试中断怎么办?比如说产生了一个中断,系统便要去ff80+n去找中断服务程序的入口,而那个区域在调试的时候不能写入,怎么办?

要先重定向到ram区域才行,你可在程序的开始重定向。

就是在程序一开始设置PMST:

首先定义:

K_IPTR .set 00011000b<<07 ;point 0C00H 新的向量区

K_MP_MC .set 0b<<06

K_OVLY .set 1b<<05

K_AVIS .set 0b<<04

K_DROM .set 0b<<03

K_CLKOFF .set 0b<<02

K_PMST_RESR .set 00b<<0

K_PMST .set

K_IPTR|K_MP_MC|K_OVLY|

K_AVIS|K_DROM|K_CLKOFF|K_PMST_RESR

在程序的开始:

STM #K_PMST,PMST ;从此向量区就改了!

明白了吗?

是否自己定义的中断都要在中断向量表中说明,但中断向量表是在 On-chip ROM(因为要用bootloader,所以要映射在片ROM)上的,如何重定向,定向在何处。

自己定义的中断必须在中断向量表中说明。Pmst的高9位可以决定了向量表的位置。对C54X你可以任意修改高位地址来决定中断向量表。例如,C54X复位后 PMST的15-7BIT全为1,所以中断向量表的位置在FF80。

可能会用到的工具/仪表
相关文章
推荐文章
热门文章
章节目录
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号