The easiest way to do interrupt processing in Cortex-M3 processors(which I assume you are using), is to create an interrupt vector table in SRAM and then change the NVIC to use that. That way you can point to the interrupt handlers at runtime.

It's true that the normal way of doing it is with weak linking as you write, but there's no support for that directly in FPC currently, so it'll have to be done with external assembly. It is doable, but noone has made it entirely yet.

Den 10-05-2012 13:56, Koenraad Lelong skrev:
Hi,

I'm working on an embedded-arm application. I do want to use interrupts but I don't find how to easily setup the interrupt-handlers. In the startup code in C, I see default handlers defined with the keyword WEAK. Looking around, I found that this means that if one defines a function with the same name, that will be used instead of the default-handler. The start-address of that new function will be entered in the interrupt-vector table in flash. Is something similar possible with fpc ? Looking in the fpc-startup-code, the rtl, I don't see that, but that could be me. Or do I have to modify the rtl for every project I will be making ? What I did see I think, in some rtl-units for arm-embedded, is that there seems to be a contruction to put the start-address of the main error-handlers in RAM. Would that be the only way to have interrupts ?

Thanks for any help,

Regards,

Koenraad Lelong.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to