Hi I working with 89c669 and want to change the program start address to 0x016000h. But when I try to change the Interrupt vector to that address I get "Invalid Interrupt Vector Address !" Why can't i use a Address greater than 0xffff?
Hi More ? I was looking at the appnote http://www.keil.com/support/docs/189 but this is for C51 how can I do this on CX51 Open START_MX.A51 Can't find CSEG at 0000h Try to write CSEG at 816000h gets ERROR "START_MXB.A51(139): error A80: INVALID ABSOLUTE BASE/OFFS VALUE" Try to write CSEG at 8000h gets no ERROR but take a look in the HEX file and see that the program starts at 0x0000h
The CSEG statement defines and selects a CODE segment (similar to myseg segment code at address, rseg myseg). The CODE area is limited to 64K. That's why you get the errors you do. You'll need to use the SEGMENT and RSEG statements to create an ECODE segment. However, a not-so-obvious problem is that the reset vector is at address 0 and the first interrupt is at address 3. You probably don't want to overwrite the interrupt vector with an EJMP instruction (required for JMPs to ECODE). So, you should probably create an LJMP to a code segment and then from there EJMP to the actual program. Jon
Hi My idea is to set the bootvector to 016000h, so the reset will start at that address.
View all questions in Keil forum