This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

SPI interrupt at wrong address

I am using Atmel AT89C51CC03, and it is configured so in Keil too. The data sheet lists the SPI interrupt vector as 0x0053h, and I do define my interrupt as interrupt #10. However, the map file show my SPI interrupt has address of 0x0026h.

Does anyone know why is that? Anything I can do to make it right?

Thanks in advance!

Parents
  • And with all the push/pop, I do need a LJUMP.

    And you got one. It's just not where you're looking for it. The LJMP is at 0x53, just where the interrupt vector for interrupt number 10 belongs. But it would be rather wasteful if the linker were to put nothing at all in the entire address range from 0x26 to 0x53. So it found something that fits in the gap and put it there. Your SPI interrupt routine apparently fit the bill.

Reply
  • And with all the push/pop, I do need a LJUMP.

    And you got one. It's just not where you're looking for it. The LJMP is at 0x53, just where the interrupt vector for interrupt number 10 belongs. But it would be rather wasteful if the linker were to put nothing at all in the entire address range from 0x26 to 0x53. So it found something that fits in the gap and put it there. Your SPI interrupt routine apparently fit the bill.

Children