加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSSRSS-巴斯仪表网
  
您当前的位置:首页 > 电子发烧 > 单片机学习
 

DSP中断向量表FAQ

时间:2013-11-23  来源:123485.com  作者:9stone
  中断向量表  
 
 
 

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。


分享到:
来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
栏目导航->单片机学习
  • 电子应用基础
  • 电源技术
  • 无线传输技术
  • 信号处理
  • PCB设计
  • EDA技术
  • 单片机学习
  • 电子工具设备
  • 技术文章
  • 精彩拆解欣赏
  • 推荐资讯
    使用普通运放的仪表放大器
    使用普通运放的仪表放
    3V与5V混合系统中逻辑器接口问题
    3V与5V混合系统中逻辑
    数字PID控制及其改进算法的应用
    数字PID控制及其改进
    恶劣环境下的高性价比AD信号处理数据采集系统
    恶劣环境下的高性价比
    栏目更新
    栏目热门