7. 外部Flash(非メモリ・マップド・モード)
動機
NAND FlashのようなメモリマップされないFlashメモリを使用する場合、そこに格納されているデータ・アセットをTouchGFXが使用できるように、ドライバを開発する必要があります。
このトピックの詳細は、「画像の格納にメモリマップされないFlashを使用する」セクションを参照してください。
Note
ボード立ち上げにアドレス指定できない外部Flashが関係しない場合は、このステップをスキップしてください。
目標
このステップの目標は、メモリマップされないFlashメモリ内の場所から複数バイト読み出し、配列に格納できるドライバを作成することです。
検証
次の表に、このセクションの検証ポイントを示します。
検証ポイント | 検証内容 |
---|---|
Flashの内容の確認 | Flashから読み出される内容が正しいこと。 |
性能の検証 | マイクロコントローラの設定に応じた読出し性能であること。 |
前提条件
- Flashに関する情報(通常はデータシート)
- マイクロコントローラと外部Flashの接続に関する情報
- Flashの速度
作業内容
通常、NAND FlashはマイクロコントローラのFMCを介して設定します。
必ずFlashに接続されるGPIOを設定してください。
メモリマップされないQSPI Flashは、STM32CubeMXで、メモリマップされるQSPI Flashと同様に設定します。
コード
Flashの特定のアドレスから複数バイト読み出せるコードを作成します。 コードの例を以下に示します。 ドライバの実装方法は、使用するFlashチップによって異なります。
void readNonaddressableFlash(uint32_t from, uint8_t *into, uint32_t n)
{
...
}
uint8_t bytes[1000];
//read external Flash
readNonaddressableFlash(0xab001212, bytes, 1000);
このコードは、後ほどTouchGFX抽象化レイヤの開発に使用します。