Nucleo-L452につなげたQSPI Flash (MX25R6435F)の動作確認をしました。
QSPI Flashの操作のためのコードは、CubeL4に含まれているSTM32L496G-Discovery用のBSPのコード(stm32l496g_discovery_qspi.c)を流用しました。PIN割り当てを変更すればいいだけのようなものです。BSPのAPIには初期化、Read, Write, Eraseといった基本操作が用意されているので、それらをシェルから使えるようにして、動作確認です。
先頭の256バイトの部分しか試していませんが、消去、書き込み、読み出しができることを確認。BSPのコードは割り込みを使っておらず、書き込み終了もポーリングで検出しているのですが、今回の用途にはこれでも十分に用が足りるので、このまま使うつもりです。
一旦、データの書き込みができれば、QSPIの動作モードをMemory mappedに変更してやると、0x90000000以降のメモリ空間で内容が読み出せるようになります。以下、Map前メモリダンプ、Map操作、そしてMap後のメモリダンプです。
イメージとしては理解してましたが、実際に動かしてみるととっても簡単に使えて便利そう。
QSPI Flashの操作のためのコードは、CubeL4に含まれているSTM32L496G-Discovery用のBSPのコード(stm32l496g_discovery_qspi.c)を流用しました。PIN割り当てを変更すればいいだけのようなものです。BSPのAPIには初期化、Read, Write, Eraseといった基本操作が用意されているので、それらをシェルから使えるようにして、動作確認です。
先頭の256バイトの部分しか試していませんが、消去、書き込み、読み出しができることを確認。BSPのコードは割り込みを使っておらず、書き込み終了もポーリングで検出しているのですが、今回の用途にはこれでも十分に用が足りるので、このまま使うつもりです。
一旦、データの書き込みができれば、QSPIの動作モードをMemory mappedに変更してやると、0x90000000以降のメモリ空間で内容が読み出せるようになります。以下、Map前メモリダンプ、Map操作、そしてMap後のメモリダンプです。
イメージとしては理解してましたが、実際に動かしてみるととっても簡単に使えて便利そう。