PSoC® 3/4/5LP デバイス でのCPUコード実行とフラッシュメモリへの書込み - KBA90912 - Community Translated (JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Community Translated by Motoo Tanaka Version: **
Translation - English: CPU Code Execution and Writing to Flash Memory of PSoC® 3/4/5LP Devices - KBA90912
質問:
PSoC 3/4/5LP デバイスでフラッシュメモリへの書込みを行っている間は CPU の実行は停止されますか?
回答:
PSoC 3/4/5LP デバイスにおいて、フラッシュメモリへの書込みはブロックされます。PSoC 3/4/5LP デバイスは不揮発性メモリの消去とプログラム動作を行うシステムパフォーマンスコントローラ (SPC) と呼ばれるハードウェアブロックを内蔵しています。フラッシュメモリからの CPU コードの実行は、SPC がフラッシュメモリへのデータ書込みを終了するまで停止されます。
PSoC 3/5LP デバイスにおいて、フラッシュメモリはキャッシュコントローラまたは SPCのいずれかによって読み出せます。しかし、フラッシュメモリへの書込みは、SPCのみで実行可能です。SPCとキャッシュコントローラは同時にフラッシュメモリにアクセスできません。もしキャッシュコントローラがSPCと同時にフラッシュメモリにアクセスを行おうとすると、キャッシュコントローラは SPC のフラッシュメモリへのアクセス動作が終了するまで待たなくてはなりません。CPU はキャッシュコントローラを介してフラッシュメモリにアクセスするため、この状況では停止することになります。
CyWriteRowFull(), CyWriteRowData(), およびCyWriteRowConfig()API は、SPC を介してフラッシュメモリへ書込みを行います。キャッシュミス状態のため CPU がフラッシュメモリからコードをフェッチする必要がある場合、キャッシュコントローラは SPC がフラッシュメモリへの書込み動作を終了するまで待たなくてはなりません。そのため、フラッシュメモリからの CPU コードの実行はフラッシュメモリへの書込みが終了するまで停止されます。
PSoC 4 デバイスにはキャッシュメモリがありません。しかし、CySysFlashWriteRow()API を使用したフラッシュメモリへの書込みはブロッキング命令であり、そのためフラッシュメモリからの CPU 実行はフラッシュメモリ書込みが行われている間停止されます。CPU の実行はフラッシュメモリ書込み動作の終了後に再開されます。
PSoC 4 と PSoC 5LP デバイスでは、フラッシュメモリへの書込み動作中に、CPUはSRAMメモリからのコードを実行できます。