Я сделал драйвер устройства на Linaro, который запускал zedboard для управления коммутаторами и светодиодами из Linux.Медленный ввод-вывод с GNU-радио по сравнению с реализацией C
Они установлены в/Proc/zedLeds и/Proc/zedSwitches
Когда итеративно чтения и записи соответствующих драйверов из программы C-порожденной там рядом без задержки. Когда переключатель переключается, соответствующий светодиод горит немедленно.
Я построил модули GNU Radio (источник переключателя и раковину), чтобы сделать то же самое с GNU Radio. Они соединены дросселем образца 32 тыс. При работе с этим дизайном, чем дольше он работает, тем больше задержки происходит от переключения -> освещения.
Мой метод по существу такой же, как с использованием метода 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
Я думаю, что проблема, скорее всего, связана с тем, как часто мне приходится открывать и закрывать соответствующие драйверы ... Я не знаю, как это происходит из контекста блоков GNU Radio. – gutelfuldead
Вы не должны добавлять это как комментарий, но вместо этого улучшите свой код. –