JEPG DecoderでAXI DMAを使いたいのでVivadoで構成したんだが、JPEG Decoderにデータが転送されてこない不具合が発生した。
JPEG Decoderは自作で、JPEG Decoder自体はすでに実績のあるもの、これにAXI Streamの入出力を追加して、AXI DMAと接続した。
もしかしたら、自作のAXI Streamモジュールが悪いのかなと思ったんだけど・・・
正確に言うと、AXI DMAからAXI Streame FIFOを通じて、JPEG Decoderに接続している。
まず、JPEG Decoder周辺を疑って、あれこれしたがどうもここじゃないらしい。
そこでJPEG Decoderを外して、AXI DMA⇒AXI Stream FIFO⇒AXI DMAの構成で確認したら、データが転送されてこない。
DMA自体の動作は問題ない。
データだけがやってこないのだ。
次に、AXI Stream FIFOを外してみた。
それでもデータ転送がされない。
ここまではJPEG Decoderから順番に外していったプロジェクトを使っていた。
次にプロジェクト自体も新しく作り上げて、至ってシンプルなAXI DMAでループバックするモジュールで構成した。
やはり、データが転送されてこない。
問題はデータが転送されてこないことなんです。
DMAの制御自体は問題なく動作している。
Linux部分のドライバもいろいろ疑ったので、ドライバやアプリもいろいろいぢったけど、やはりVivadoでAXI DMAでデータが転送されないようだ。
ほぼ、決定的かも・・・
何かの設定があるのか?
う〜ん、わからないなぁ。
JPEG Decoderのために別の方法を考えないと・・・