実際のハードウェア上の異なるタイプの RAM に ECC エラーを挿入する必要があります。
また、利用可能なすべてのタイプの RAM でそれらを読み取る必要があります。
これを実行するための正確な方法が必要です。
また、S32K3GHS マイクロコントローラを使用しています。
これを実行する方法に関する何らかのドキュメントまたは方法論を提供してください。
こんにちは@Bhumika_NL 、
NXP は、S32K3xx ファミリ向けに Safety ペリフェラル Driver (SPD) を提供しています。
eMCEM ドライバーは、ECC エラーを挿入するために使用される EIM モジュールを制御します。
SPD ドライバは、S32K3xx 標準ソフトウェア パッケージの一部として無料で入手できます。
https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K3-STDSW-D
NXP は、SPD をパッケージの一部として含む、有料のプレミアム ソリューションとして セーフティ ソフトウェア Framework (SAF) も提供しています。
完全な SAF バージョンも、NDA に基づいて評価および開発目的に限り無料で利用できるようになりました。
ご興味がございましたら、担当の NXP FAE (会社に FAE がある場合) にお問い合わせいただくか、お近くの NXP 販売代理店を通じてご連絡ください。
BR、ダニエル
独自の関数と、参照用の疑似コードまたはサンプルコードを使用して、RAM に ECC エラーを挿入したいと考えています。
また、モジュールやドライバを使用せずに障害を注入する方法について詳しく教えていただけますか。または、それが実行可能な方法であるかどうかをお知らせください。
こんにちは@Bhumika_NL 、
次の例をご覧ください。
https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K344-EIM-ERM-DTCM-SRAM-ベアメタル-v3-0-S32DS3...
よろしくお願いいたします。
ダニエル
こんにちは@Bhumika_NL 、
残念ながら、そのような擬似コードは存在しません。
BR、ダニエル
こんにちは、danielmartynekさん、
リファレンスマニュアルのモジュールの1つに、さまざまな種類のメモリにECCエラーを注入できると記載されているのを見つけました。
45.2
概要
エラー注入モジュール(EIM)は、主に診断目的で使用されます。これは、現場でエラーを注入することによって診断機能(メモリECC、相互接続パリティ)をテストする方法を提供する。この方法でサポートされている機能安全機能を確認するには、チップ固有のEIM情報を参照してください。
EIMを使用すると、RAM読み出しデータやパリティビットのECCなど、システムのエラーチェック機構に人工的なエラーを注入できます。EIMがチップ上でサポートする各メカニズムについて、EIMは該当するターゲットバス内のデータに、シングルビットおよびマルチビットの反転を挿入することができる。メモリアクセス時に意図的に障害を注入することで、関連システムのSEC-DED ECC機能を検証することができる。
45.2.1
特徴
EIMには以下の機能が含まれています。
•
19種類のエラー注入チャネルをサポートします。チャネル割り当ての詳細については、チップ固有のEIM情報を参照してください。
•
2段階有効化メカニズムによる、偶発的な有効化および再構成エラー注入機能に対する保護
EIMモジュールを使用してエラーを注入できるチャネルと方法について、もう少し詳しい情報が必要です。
また、S32K3のリファレンスマニュアルで見たERMモジュールには、メモリ1、メモリ1など、さまざまなメモリがあります。
しかし、どのメモリがメモリ0で、どのメモリがメモリ1であるかなどはどこにも記載されていません。
これらについても情報を提供していただけますか?
エンシエ0
エンシエ0
メモリ0の非訂正可能割り込み通知を有効にする
このフィールドは、すべての場合でサポートされているわけではありません。以下の表には、サポートされているレジスタのみが記載されています。
注記
実例
サポートされている分野
フィールドはサポートされていません
ERM_0
CR0
—
ERM_1
—
CR0
0b - メモリ0の訂正不可能なエラーイベント情報の割り込み通知は無効になっています。
1b - メモリ0の訂正不可能なエラーイベント情報の割り込み通知が有効になっています。
29-28
—
予約済み
27
ESCIE1
ESCIE1
メモリ1の単一修正割り込み通知を有効にする
このフィールドは、すべての場合でサポートされているわけではありません。以下の表には、サポートされているレジスタのみが記載されています。
注記
実例
サポートされている分野
フィールドはサポートされていません
ERM_0
CR0
—
ERM_1
—
CR0
0b - メモリ1のシングルビット修正イベント情報通知が無効になっています。
こんにちは、 @danielmartynek さん、
この件についてご協力いただけますか?
こんにちは@Bhumika_NL 、
EIMチャネルの割り当てに関する詳細は、リファレンスマニュアル改訂版12に記載されています。
表273 – EIMチャネルマッピング – S32K3x1、S32K3x2、S32K344/S32K324/S32K314
ERMモジュールの場合、メモリとチャネルのマッピングは以下のように提供されます。
表291 – S32K389を除くすべてのデバイスのERM_0チャネルマッピング
よろしくお願いいたします。
ダニエル
改訂版12のリファレンスマニュアルを見つけるのは非常に難しいと感じています。
しかし、現在私が使用しているのはリビジョン4で、表273と表291にはメモリへのチャネル割り当てに関する情報が見つかりませんでした。そこには他にもいくつか情報が見えました。
この件に関して何かご提案いただけますでしょうか?
本当にありがとうございます。それでは、このマニュアルを一度確認してみます。
最新のマニュアルはこちらです (改訂版)。12):
https://www.nxp.com/webapp/Download?colCode=S32K3XXRM
BR、ダニエル
現在、NXP社のS32K394マイクロコントローラに取り組んでおり、これをターゲットデバイスとして確定しました。
しかし、以前使用していたリファレンス・マニュアルには、この特定のコントローラに関する記述はありませんでした。つきましては、S32K394シリーズの適切なリファレンスマニュアルをご提供いただけますでしょうか。特に以下の詳細を含めていただけると幸いです。
この情報は、デバッガーを使用した検証とテストを進める上で役立ちます。
ありがとうございます。S32K394をお使いだとは知りませんでした。
S32K39、S32K37、S32K36リファレンスマニュアル、改訂版4、2024年11月
表210。ACP_EIM_0
表211。ACP_EIM_1
表212。ACP_EIM_2
表219。ACP_ERM_0 チャネルマッピング
表220。ACP_ERM_1チャネルマッピング
よろしくお願いいたします。
ダニエル
私は上記のEIMモジュールのレジスタを使用して、SRAM0メモリ位置に対してs32k3(シングルビットとマルチビットの両方)にECCエラーを正常に注入することができました。
しかし、他のメモリ位置では、同じ方法で ECC エラーを注入することはできません。
参考のためにコードを添付します
こんにちは@Bhumika_NL 、
新しいスレッドを作成していただけますか?
こちらは既に主要な品質保証体制が整っています。
ありがとうございました。
BR、ダニエル