We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
A colleague and I are both interested in using an FIQ in our particular efforts. Unfortunately, we have both encountered difficulty in doing so.
By manually changing the Startup.s file to have the
FIQ_Addr: DD FIQ_Handler?A
point to our FIQ ISR, we managed to get out function to be serviced. Unfortunately, it fails to return from it to where it departed the normal run-time.
Has anyone seen this? Are there any different ways of handling this than what we did above?
DOH!
I made a mistake up in the subject.
It should say FIQ not, FIW.
I do enjoy making new acronyms.
A few thoughts…
Have you allocated sufficient stack space to the FIQ interrupt?
Have you a used the correct function attribute on your FIQ_Handler to indicate to the compiler that it is actually an interrupt handler?
As it turns out, we forgot to add the __irq
Hence, it wasn't being handled properly.
It works now. Thanks.
So, in summary for others,
like with an SWI, we had to edit Startup.s to point to our FIQ function with an IMPORT command for the function name and the SWI_address being pointed.
Then the function is declared with __irq at the end.
Thanks folks.