読者です 読者をやめる 読者になる 読者になる

PL330 の勉強

DMAC の PL330 を勉強中。資料が少ない。Znyq では PL の Core と通信ができる。すごい。で使おうと思ったが、うまく動ない。Linux を動かしたうえで devmem2 で直接アクセスすると動く。
初期化のシーケンスが大事なようだ。あと、0xf8003xxx を使うようだ。こっちはセキュアなんだけど、、、トラストゾーンと関係なく、最初はセキューアで初期化されるみたい。そのあと、ノンセキューアで使えるようになる(?未確認。っていうかセキュアとノンセキュアの意味をちゃんと把握しないとダメ)
で、酢の(ベアメタルっていうんですか?呼称がめんどくさいな)プログラムからは動かない。0xf8000xxx はロックされているし、、(ロック解除をしないと書きこめない。あーそうだステラリスでもそうだったと後から思い出す。詳しくは ps7_init をみるとよい)
ロック解除しても 0xf8003xxx から実行してもインストラクションエラーになる。0x18 (NOP) は動くこともあるような気がする。
何が悪いんだ~~~
って一晩やった結果、わからずじまいではあるが、Xilinx がstandalone 用のドライバを用意していることに気が付いた。これだと一発で動く。早く気づけよ、、、、ってかんじ。