Cyril GAILLARD

Exact memory location for Interrupt Service Routines

Discussion created by Cyril GAILLARD on Jun 11, 2008
Latest reply on Jun 18, 2008 by David Kelly
Hello,

I am trying to program my interrupts services routines (ISR) always at the same memory location. I know I have to use the prm file for this but I don't know exactly how to proceed. Right now, I put a pragma line before each ISR that looks like this:

#pragma CODE_SEG ISR_ADDRESSES
    __interrupt void ShootCurInterrupt(void);   

and I added this line to prm file.
ISR_ADDRESSES                 INTO FLASH1_SPECIAL1;

However I have more than one ISR and they will always be in FLASH1_SPECIAL1 but probably at differents locations if the link order of the files change (which might happens if somebody takes over the project or use another version of CodeWarrior). Is there a keyword I can use in my prm file to ensure that the ISR will always be at the same exact location ? (the size of the ISR will not change) In mnemonics, that would look like this

__interrupt void ShootCurInterrupt AT 0xE000 for instance

I read about some  PRAGMA options such as DIRECT, NEAR,... can they work in my case? Everytime I look for information about theses options, it is specified that their definition is backend dependent . What is the backend?, the compiler, the microcontroller ?

Thanks

Cyril


Message Edited by Cyril G. on 2008-06-11 10:52 AM

Outcomes