[fpc-devel] Interrupt vector table generation

Jeppe Johansen jepjoh2 at es.aau.dk
Mon Mar 7 14:28:32 CET 2011


Den 07-03-2011 13:49, Marco van de Voort skrev:
> In our previous episode, Jeppe Johansen said:
>> A better idea, I think, is to use the old interrupt procedure directive.
>> For some embedded platforms simply allow also specifying a interrupt
>> vector/index after the interrupt keyword. Ex:
>>
>> procedure USARTRxInterrupt; interrupt 10;
>> begin
>>      // Handler code
>> end;
> I do know how GCC does it with the embedded target (dspic) that I use at
> work:
>
> the name of the interrupt routine is hardwired to the table entry. This
> allows to get rid of the number constants (which are maintained centrally)
> all together.
>
> It also allows to keep code portable between different versions that might
> have a different interrupt table layout (since the CPU dependant mapping
> from names to numbers would be different).
Wouldn't this be the same as having numbered constants? That is allowed 
in the implementation

You could have somthing like this, and control it with the 
controllertype unit

unit stm32f103re;
interface

const
  UsartRXInt = 10;

implementation
end.
...
unit stm32f103ct;
interface

const
  UsartRXInt = 32;

implementation
end.
...
program myprogram;

procedure MyRXInterrupt; interrupt UsartRXInt;
begin

end;

begin
end.




More information about the fpc-devel mailing list