wetty
驱动牛犊
驱动牛犊
  • 注册日期2001-06-14
  • 最后登录2004-05-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3004回复:4

请教:uvision2中中断矢量应用

楼主#
更多 发布于:2001-07-21 12:39

   我现在也用ez-usb的开发板做usb驱动程序。
在用vUision2调试由framework生成的例程firmware时,遇到了和自动矢量相关的问题。在periph.c中,使用#pragma NOIV 禁止产生中断矢量,可中断处理程序如void ISR_Sudav(void)interrupt0
void ISR_Sof(void) interrupt 0,功能还是可以执行。不知道主程序是如何找的中断入口地址的。另外,ez-usb 2131qc种,在0043h处放一条跳转指令,那么应该是intrrupt 8才是usb的中断号啊。
然而如果要用到自动矢量,去掉#pragma NOIV就会报警告和错误。MONITOR ERROR 22:NO CODE MEMORY AT ADDRESS 0045H
WAINING L5:CODE SPACE MEMORY OVER
FROM: 0043
TO  : 0045
谁知道啊,怎么弄?

最新喜欢:

zhaihuazhaihu...
nigx
驱动巨牛
驱动巨牛
  • 注册日期2001-04-29
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分14166分
  • 威望71910点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-07-23 21:46
必须说明的是单片机的中断是否响应执行是由单片机本身的 寄存器

 控制的,只有事先对中断寄存器设置好才能防止有中断的执行。

-----
单片机的中断矢量地址是由标准确定的。

如果不需要,可以在中断不干什么活。
cherry
驱动小牛
驱动小牛
  • 注册日期2001-11-28
  • 最后登录2006-03-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-11-28 20:47
我也想知道这是怎么回事呢,在periph.c中,USB 中断根本没有自己的中断号,而全是 using 0, 这是怎么回事呢?
six
six
驱动牛犊
驱动牛犊
  • 注册日期2001-06-03
  • 最后登录2003-08-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-02-05 14:26
2131的usb中断跳转表是一个独特的二次跳转表(我这么叫他),与51的其他中断不同,所以cypress在他的库文件(汇编写的)里面把跳转表定义好了,免得让你觉得boring。periph.c里面的中断函数根本就不会产生中断向量,他们只能由库文件你的向量表来调用。如此写可能是为了编译后的名字固定,便于汇编代码来调用
lu_six
huyanshan
驱动牛犊
驱动牛犊
  • 注册日期2003-07-02
  • 最后登录2005-03-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-08 21:42
#pragma NOIV就是要屏蔽掉标准8051的中段,采用EZ-USB的自动向量
游客

返回顶部