LinuxからスイッチとLEDを制御するために、Linaroでzedboardを実行するデバイスドライバを作成しました。反復読み取り、C-生成プログラムから各ドライバに書き込むときには/ proc/zedLeds及び/ PROC/zedSwitchesGNUラジオでのI/Oの遅さがCの実装と比較されました
として実装されている
は遅延なしに次があります。スイッチが反転すると、関連するLEDがすぐに点灯します。
私はGNU Radioから同じことをするためにGNU Radioモジュール(スイッチソースとLEDシンク)を構築しました。それらは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
私は、どのくらいの頻度でそれぞれのドライバを開いて閉じる必要があるのだろうと思います...私はGNUラジオブロックの文脈からこれを回避する方法を知らないです。 – gutelfuldead
これをコメントとして追加するのではなく、コードを改善してください。 –