Any example of FIQ implementation under Linux?
I am trying to achieve hard real-time under 100us on the STM32MP157f-eval, specifically, on the Cortex A7 dual core.
Note: I specifically target the Cortex A7 cores because the M4 is already taken for other tasks which requires much smaller latency.
What I did so far is:
- Build the Yocto openst-linux
- Add Preempt-RT patch
- Added several software: irqbalance, tuna, hiccups... to monitor and tune the system.
- Isolate one core
- Tested high-priority process, also IRQ. Tested with internal clock and external oscilloscope.
- Tried to disable most drivers
After all those efforts, the jitter improved but I still get ~500us jitter when applying load for enough time.
------------------------------
I found the following text which brings me to think that FIQ (Fast Interrupts reQuests) are available on this hardware and could possibly be a solution to my quest for low latency and low jitter.
https://bootlin.com/blog/fiq-handlers-in-the-arm-linux-kernel/
Is there some example code about using those FIQ? Ideally under Linux, for example to drive an GPIO.
Related work:
https://stackoverflow.com/questions/32194264/bcm2708-rpi-rasbpian-fiq-not-triggered
