我在 Linaro 上制作了一个设备驱动程序,运行一个 zedboard 来控制 Linux 的开关和 LED。
它们安装为 /proc/zedLeds 和 /proc/zedSwitches
当从 C 生成的程序迭代地读取和写入相应的驱动程序时,几乎没有延迟。当开关被翻转时,相关的 LED 会立即亮起。
我构建了 GNU Radio 模块(开关源和 LED 接收器)来从 GNU Radio 做同样的事情。它们通过 32k 采样节流阀连接。运行此设计时,它运行的时间越长,切换-> 照明的延迟就越长。
我的方法与使用 C 方法基本相同,所以我不确定极端延迟来自何处。有油门和没有油门我都试过了。
会不会是使用 GNU 只是占用了太多落后于操作的资源?
这是包含所有项目文件的 github。
https://github.com/minersrevolt/zedboard_gnuradio
结构:
├── 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