2387372_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2387372_ja-JP

2387372_ja-JP

SDKのフラッシュAPIと、欠けているデータD_Flash呼び出S32K144

チームの皆さん、こんにちは。

プロジェクト(S32K144)でSDKのflash init APIを呼び出し、その後Flash消去とFlash書き込みを呼び出します。その後、フラッシュメモリ内の一部のデータが0xFFになっていることに気づきました。そこで、フラッシュ初期化とフラッシュ消去/書き込みの間に遅延時間を追加してみたところ、データが正常になりました。そして、遅延関数を使用する代わりに、while (!(FTFC->FSTAT & FTFC_FSTAT_CCIF_MASK)); をチェックしてみます。しかし、それでも失敗に終わった。SO、ハードウェア層でフラッシュモジュールの初期化が完了するまで待つ時間を少し遅らせなければならないのかもしれません。

BR

ロキー

Re: Call SDK flash API and some data in D_Flash missing of S32K144

こんにちは、 @Loky さん

どのドライバーバージョンを使っていますか?
レガシーSDKドライバの使用は推奨されません。RTDドライバを使うべきです。


Flash_Init関数はフラッシュメモリの内容を変更しません。
消去・書き込み機能はすでに内部でCCIFフラグをポーリングしているので、アプリケーションコード内でポーリングする必要はありません。
観察された動作は、キャッシュまたはフラッシュのプリフェッチバッファに関連している可能性があります。PCCCRとOCMDR0を無効にして、問題が解決するかどうか確認してください。


よろしくお願いいたします。

ダニエル

Re: Call SDK flash API and some data in D_Flash missing of S32K144

こんにちは、ダニエルさん。

Loky_0-1782824997442.jpeg

これが現在使っているSDKのFlashドライバーバージョンです。同僚によると、S32K144はSDK Flash Driverしかなく、RTDドライバーはないそうです。SDKドライバーの何が問題なのか簡単に説明してもらえますか?もしS32K144 RTDドライバをお持ちなら、共有していただけますでしょうか。

ご指摘の方法(キャッシュを無効にする)を試してみましたが、うまくいきませんでした。

電源投入リセットまたはLVDリセット時に、フラッシュメモリにいくつかの情報を記録し、同じセクターに他のデータも記録します。私はすべてのセクターデータを読み込み、情報を更新してセクター向けに書き直します。しかし、いくつか新たな発見がありました。フラッシュメモリを読み取る前に、データが既に0xFFになっていることが分かりました。消去命令または書き込み命令の実行中にフラッシュメモリの電源が誤ってオフになった場合、電源を再びオンにしたときにセクター内のデータが0xFFになるのでしょうか?この問題を引き続き調査します。もしかしたらソフトウェアのバグかもしれません。

BR

ロキー


Re: Call SDK flash API and some data in D_Flash missing of S32K144

こんにちは、ダニエルさん。

RTDパッケージありがとうございます。明日確認してみます。

プリフェッチバッファを無効にしたことは一度もありません。フラッシュメモリの消去と書き込みの前に、キャッシュとプリフェッチの両方を無効にすべきということでしょうか? それも試してみます。

はい、訂正不能なECCに遭遇し、本日ハードフォルトが発生しました。デバイスの電源を入れた後にこのセクターを再度消去する以外に、このECCの問題を解決する方法はありますか?この方法は現在のソフトウェア設計には当てはまらないと思います。

ご提案ありがとうございます。エミュレートされたEEPROMについて、同僚と話し合います。

BR

ロキー

Re: Call SDK flash API and some data in D_Flash missing of S32K144

こんにちは、 @Loky さん

SDKはレガシーソフトウェアです。NXPは現在、RTDドライバを提供しており、これにはフラッシュドライバも含まれており、MCAL層とレガシーSDKに相当する低レベルIP層の両方が含まれています。
RTDパッケージはこちらからダウンロードできます:

https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-RTD44-D

RTDリリースノートに記載された互換性のあるS32 Design Studioバージョンを使用していることを確認してください。


プリフェッチバッファも無効にしましたか?

OCMDR0 – プログラムフラッシュプリフェッチバッファ
OCMDR1 – データフラッシュプリフェッチバッファ


消去やプログラム操作中にフラッシュが予期せず電源が切れた場合、NXPはデータの整合性を保証できません。影響を受けるフラッシュメモリの内容は未定義となり、ECCエラーが含まれる可能性があります。


エミュレートEEPROM機能の使用を検討してください。

この目的に最適化されています。

AN11983 – S32K1xx EEPROM機能の使用を参照してください。

https://www.nxp.com/docs/en/application-note/AN11983.pdf

第5章 S32K1xx ブラウンアウト検出

第6章 S32K1xx 新しいクイックライティングモード


よろしくお願いいたします。

ダニエル






Re: Call SDK flash API and some data in D_Flash missing of S32K144

こんにちは、ダニエルさん:

原因が特定できて嬉しいです。VCC-5Vは電源オフ時に不安定で、MCUが低電圧で繰り返しリセットされるため、ソフトウェアは初期化時にフラッシュを消去するものの、フラッシュの書き込みはできません。

BR

ロキー

Tags (1)
No ratings
Version history
Last update:
3 weeks ago
Updated by: