DMA descriptor
用途によって分かれる descriptor 群をあらかじめ3通り用意しておいて、DMAC->BASEADDR だけを書き換えようという案. これを作るのに手間取った. シミュレータ上はそれとなくできたが、MCU で動かすと下記の問題が判明.
- DMAC->BASEADDR は DMAC->CTRL.DMAENABLE が 0 のときのみ更新可能.
- ソフトが生成した descriptor は DMAC によって更新されてしまう (なんのために writeback があるの?)
- そもそもボトルネックが descriptor の再生成かちゃんと調べてない.
descriptor の更新は想定していなくて、DMAC が更新しない前提で処理の軽減化を狙っていたので困った. どういう値に更新しているか調べる. そしてどの処理の処理時間が長いか調べる必要がある(かなり面倒くさい).