阅读:3004回复:4
请教:uvision2中中断矢量应用我现在也用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 谁知道啊,怎么弄? |
|
最新喜欢:zhaihu... |
沙发#
发布于:2001-07-23 21:46
必须说明的是单片机的中断是否响应执行是由单片机本身的 寄存器
控制的,只有事先对中断寄存器设置好才能防止有中断的执行。 ----- 单片机的中断矢量地址是由标准确定的。 如果不需要,可以在中断不干什么活。 |
|
板凳#
发布于:2001-11-28 20:47
我也想知道这是怎么回事呢,在periph.c中,USB 中断根本没有自己的中断号,而全是 using 0, 这是怎么回事呢?
|
|
地板#
发布于:2002-02-05 14:26
2131的usb中断跳转表是一个独特的二次跳转表(我这么叫他),与51的其他中断不同,所以cypress在他的库文件(汇编写的)里面把跳转表定义好了,免得让你觉得boring。periph.c里面的中断函数根本就不会产生中断向量,他们只能由库文件你的向量表来调用。如此写可能是为了编译后的名字固定,便于汇编代码来调用
|
|
|
地下室#
发布于:2003-07-08 21:42
#pragma NOIV就是要屏蔽掉标准8051的中段,采用EZ-USB的自动向量
|
|