ARM Technical Support Knowledge Articles

DALLAS 390/400 INTERRUPTS IN ALTERNATE 64K CODE PAGE

Applies to: C51 C Compiler

Answer


Information in this article applies to:


QUESTION

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?

ANSWER

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 uVision 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, uVision generates the correct linker classes directive for you, in this case: CLASSES (CODE (C:0x10000-C:0x1FFFF)).

MORE INFORMATION

SEE ALSO

Article last edited on: 2005-07-22 16:31:46

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential