We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi, I've encountered a problem trying to implement autovectoring with an EZ-USB Development Board (AN2131-DK001) using the Keil evaluation DK51. I've scoured the net to see if anyone else has encountered the same problem, but to no avail. I have the following code in an .a51 file.
CSEG AT 43H equ $ + 2 DB 02H DB HIGH 4100h DS 1
#pragma intvector (0x40FD) //start at 4100h #pragma interval (4) void Sudav_ISR (void) interrupt 0 { } . . .
LOL. I got fed up trying to set up the jump table in C soooo I decided to code it in Assembly instead. (How I orginally had it) I've tried using the EXACT code same code that you're using (that code is floating around on the Keil Site) and yet the MON51 does NOT like the LJMP USB_Jump_Table instruction since it attempts to write code at location 45h. The kicker is, that I have disabled ALL of my interrupts EXCEPT for the Suspend interrupt. Unless I'm missing something, there should be no reason for the offset of 8 since the AVEC/IVEC register is 0 by default on reset and since I have not enabled the SUTOK interrupt. Also interesting, when I disable the autovectoring (AVEN = 0) even then, a LJMP 4100H will turn into LJMP 4108H when using the MON51 debugger. Btw, thanks for your help thus far =)