C51: DALLAS 390/400 INTERRUPTS IN ALTERNATE 64K CODE PAGE
Information in this article applies to:
I'm using the Dallas DS80C390 device in Contiguous Mode and I need to write a flash download application. The flash download application starts at C:0x10000 which is the second 64KB page in my Flash ROM.
The interface between the boot and download applications work perfectly with the technique described under GENERAL: CALLING BOOT LOADER FUNCTIONS FROM USER APPLICATION.
The boot part redirects some interrupt vectors to the downloaded part similar to the way described in C51: REDIRECTING INTERRUPT VECTORS.
My problem is that I have not managed to locate the interrupt vectors of the downloaded part to code address C:0x10000 in the second 64KB page. The INTVECTOR directive works just within a single 64KB page. How can I solve this problem?
The interrupt vectors are located in the CODE class. The CODE class must reside within a 64KB memory block since it contains startup code that typically switches the device to contiguous mode.
When you state a different 64KB page for CODE in the LX51 CLASSES directive, you will see that the interrupt vectors are located at the base address of this memory class. When you use µVision IDE, enter under Project - Options for Target - Target: Off-chip Code Memory Eprom #1: Start 0x10000 Size: 0x20000. When you have enabled Use Memory Layout from Target Dialog under LX51 Locate, µVision generates the correct linker classes directive for you, in this case: CLASSES (CODE (C:0x10000-C:0x1FFFF)).
Last Reviewed: Friday, July 22, 2005
of your data.