Hello,
I want to write a bit-banging driver for a Raspberry Pi 3 (Cortex A53 with 4 cores).For testing I developed a simple Linux kernel mode driver which toggles a GPIO pin with approx. 1Mhz.In order to get no interference by the Linux kernel I disabled IRQ and FIQ before entering the toggling loop.I have also set CPU speed fix to 1.2Ghz.Then I monitor the GPIO pin with a scope.If I set a pulse-width > 2 us trigger, I see gaps of different length, which sometimes last longer than 5 us (depends on load for the other cores)
On a Rasperry Pi Zero ( ARM1176JZF-S with 1 Core) no such effect occurs. The signal is total clean at 1 MhzSo on the Pi 3 I conclude the delays must be some hardware interference from the other cores.Can anyone explain me how the hardware is causing such long delays?
Thanks,Rainer