I have noticed that the Kiel compiler doesn't produce the correct interrupt vector if 8051 interrupt numbers are used. For example for external interrupt 0 (IE0), the interrupt number has to be 0, instead of 1 to produce a jump at location 1. Example:
void edge1 (void) interrupt 0{ /*produces correct code
while
void edge1 (void) interrupt 1{ /*produces wrong code
This is the case with all the interrupts I have used. My questions is what do you have to do to produce a reset vector? Reset is interrupt number 0 in 8051 numbering. Using -1 or 255 both produce a compile error.
As the guy who wrote all that Keil documentation
You have my sympathy. Excellent job, though.
With a bit of luck that puts an end to the majority of this thread, although I have to confess I remain curious as to what the OP was trying to achieve.
A very optimistic attempt at persistent state?
After a power on let the reset handler have the processor return to the previous execution point with retained variable and register states?
although I have to confess I remain curious as to what the OP was trying to achieve.
I agree with Jack
Excellent job again, I agree with Jack
Erik
My guess is that the OP coded something without reading the 'background' (Interrupt_vector_address - 3)/8) before typing interrupt numbers in some code and got upset that Keil did not agree with his assumptions
He clearly has some fixed notion about "interrupt numbers" and is not prepared to accept that it does not match Keil's notion of "interrupt numbers" as implemnented in their C51 product