• No : 8885
  • 公開日時 : 2021/10/17 16:36
  • 印刷

【NXP:Auto】 S32K1xx Flash書換後に読み出ししても古い値が読み出される問題

S32K1xxのFlash書換後に読み出ししても古い値が読み出されます。一度リセットを行うと、新しい値が読み出せます。原因を教えてください。
カテゴリー : 

回答

CPUコアがProgram flashにアクセスすると、LMEMのキャッシュとFlash Memory Controllerの投機バッファの2つにデータがキャッシュされます。そのため、Flashを書き換える際は、これらをクリアしてください。

投機バッファの具体的なクリアの方法は、SDKのサンプルプロジェクト「flash_partitioning_s32k144」のmain.cの100行目付近を参照してください。
 
S32K1xx Series Reference Manual, Rev. 13, 04/2020
 - 778~779ページ:35.5.2 Speculative reads
 
<補足>
S32K11xの場合は、LEMEのキャッシュはないため、Flash Memory Controllerのバッファのみのクリアで問題ありません。
S32K148の場合は、0x1000_0000~0x1000_7FFFのフラッシュ領域には、LEMEのキャッシュは無効なため、Flash Memory Controllerのバッファのみのクリアで問題ありません。