I made a device driver on Linaro running off a zedboard to control the switches and LEDs from Linux.
They are mounted as /proc/zedLeds and /proc/zedSwitches
When iteratively reading and writing to the respective drivers from a C-generated program there is next to no delay. When a switch is flipped the associated LED is illuminated immediately.
I built GNU Radio modules (switch source and led sink) to do the same thing from GNU Radio. They are connected by a 32k sample throttle. When running this design the longer it runs the longer the delay becomes from switching --> illumination.
My method is essentially the same as using the C method so I'm not sure where the extreme delay is coming from. I've tried it both with and without the throttle.
Could it be that using GNU is just taking up too many resources lagging the operations?
Here is the github with all project files.
https://github.com/minersrevolt/zedboard_gnuradio
Structure:
├── gr-zedboard # gnu radio blocks
├── lib # GRC Block source code
├──led_sink_impl.cc # source code for LED Sink block
├──switces_source_impl.cc # source code for Switch Source block
├── switch_led_drivers # dev drivers for switch and leds
├── BOOT # files for BOOT partition of SD Card
├── led_driver # contains LED device driver
├── switch_driver # contains Switch device driver
├── testLED_SWITCH_DRIVERS.c # C code showing functionality of dev drivers
├── switch_led_test # example GNU Radio Companion build