TraveoII自動車ボディコントローラー – FAQ – フラッシュ - KBA232509-Community translated(JA)
- RSS フィードを購読する
- 新着としてマーク
- 既読としてマーク
- ブックマーク
- 購読
- 印刷用ページ
- 不適切なコンテンツを報告
Original KBA:Traveo II Automotive Body Controller - FAQ – FLASH - KBA232509
Translated by: Kenshow
ホームページ: TraveoII自動車ボディコントローラー-FAQ– CDC -...-サイプレス開発者コミュニティ
6.フラッシュ
6.1. Traveo II Body Entry Controllerにはキャッシュがありますか?
Traveo IIボディエントリコントローラーは、フラッシュコントローラーブロックの一部としてキャッシュを備えているため、CodeFlashおよびWorkFlashメモリでキャッシュを使用できます。SRAMデータはキャッシュされません。詳細については、Traveo™II Automotive Body Controller Entry Family Architectureテクニカルリファレンスマニュアル(TRM)(002-19314 Rev. *E)のCM0+およびCM4 CPUキャッシュのセクションを参照してください。CM0+とCM4には個別に割り当てられたキャッシュがあり、それぞれFLASHC_CM0_CA_CTLxレジスタとFLASHC_CM4_CA_CTLxレジスタによって制御されます。
6.2. 特定のFM_CTL_ECTレジスタにアクセスできません。理由は何でしょうか?
デバイスのデータシートに記載されているように、これらのレジスタはPPUペアPERI_MS_PPU_FX_FLASHC_FlashMgmtによって保護されています。このPPUはブートによって設定され、FM_CTL_ECTレジスタへのアクセスをブロックします。フラッシュ操作中に使用されるため、ほとんどのレジスタは必要ありません。フラッシュ割り込みレジスタ(FLASHC_INTR、FLASHC_INTR_SET、FLASHC_INTR_MASK)を設定するには、[FM割り込みの設定]システムコールを使用します。
6.3. Traveo IIのCodeFlashとWorkFlashとは何ですか?
CodeFlashは、プログラムを格納するために使用されるフラッシュメモリです。CodeFlashは、自動車アプリケーションでの使用を目的とした組み込みフラッシュであるeCTFlashの一部です。コードフラッシュの上位セクタは監視領域として割り当てられ、他のセクタはコード領域として割り当てられます。監視領域は、トリムパラメータ、システム構成パラメータ、保護とセキュリティの設定、ブートスクリプト、およびその他のサイプレス独自の情報を保存するために使用されます。この領域への読み取りアクセスは許可されていますが、プログラム/消去アクセスは禁止されています。コード領域は、プログラムコードフラッシュを格納するためのメモリフィールドです。
WorkFlashは、データの保存に使用されるフラッシュメモリです。WorkFlashは、自動車アプリケーションでの使用を目的とした組み込みフラッシュであるeCTFlashの一部です。ワークフラッシュのすべてのセクタが作業領域として割り当てられます。作業領域は、データを格納するためのメモリフィールドです。
詳細については、各シリーズのTraveoIIアーキテクチャTRMを参照してください。
6.4. Traveo IIのeCTフラッシュとは何ですか?
エンベデッドチャージトラップ(eCT)は、厳しい信頼性要件を持つ高性能MCU向けに開発された特許取得済みの独自のNORフラッシュテクノロジーです。eCTは、自動車、産業、および消費者向けアプリケーションの組み込みフラッシュメモリにとって非常に魅力的な機能を備えています。eCTフラッシュは、MirrorBit® NORフラッシュメモリの6つの技術世代で量産実績のあるチャージトラップ技術をベースにしています。
eCTテクノロジーは、TraveoやTraveo II製品ファミリーなどの多くの自動車用MCUで使用されています。これらの製品は、次のような幅広い自動車用途に対応しています。
- インストルメントクラスターとヘッドアップディスプレイ
- ハイブリッドおよび電気自動車のモーター制御
- ボディコントロールモジュールとHVAC
eCTフラッシュの詳細については、サイプレスeCTフラッシュの概要を参照してください。
6.5. Traveo II CodeFlashとWorkFlashのオペレーションサイズ番号はいくつですか?
CodeFlash
- 消去セクタのサイズは、ラージセクター(LS)の場合は32 KB、スモールセクタ(SS)の場合は8KBです。
- プログラムのデータサイズは、64ビット、256ビット、および4096ビットにすることができます。プログラムサイズは、「プログラム行」システムコールを介して設定できます。
WorkFlash
- 消去セクタのサイズは、LSの場合は2 KB、SSの場合は128Bです。
- プログラムのデータサイズは、32ビット、64ビット、128ビット、256ビット、512ビット、1024ビット、2048ビット、および4096ビットです。
6.6. Traveo IIフラッシュ操作は低電力モードで利用できますか?
フラッシュ操作( Cy_Flash_ProgramRow()、 Cy_Flash_EraseAll()、およびCy_Flash_EraseSector())は、Sleepモードで許可されます。ただし、 Cy_Flash_ProgramRow()、 Cy_Flash_EraseAll()、またはCy_Flash_EraseSector()が完了するまで、ユーザーファームウェアはDeepSleepモードまたはHibernateモードに入らないでください。さらに、フラッシュ動作中は、XRESピン、ソフトウェアリセット、ウォッチドッグリセットソースなどのデバイスをリセットしないでください。また、低電圧検出回路は、リセットではなく割り込みを生成するように設定する必要があります。そうでない場合、フラッシュの一部が予期しない変更を受ける可能性があります。
6.7. WorkFlashが消去直後(つまり、初期化前)に読み取られた場合はどうなりますか?
WorkFlashが消去された直後、WorkFlashの内容は不確実です。初期化の前にWorkFlashに(読み取り)アクセスすると、ECCエラーが発生し、FLASHC_FLASH_CTLの場合は例外が発生します。WORK_ERR_SILENTは0です。
6.8. ブランクチェックコマンドをコードフラッシュに使用できますか?
SROM API、ブランクチェックコマンド(0x2A)は、アドレス指定されたWorkFlashにのみ適用できます。コードフラッシュ書き込みの場合、フラッシュセクターが消去されて成功を返した後、セクタ内のすべての値が「1」であることを確認して確認します。検証に合格したら、フラッシュ書き込みコマンドを実行します。フラッシュ書き込みが完了したら、リードバックデータをそのセクタに書き込まれる対応するデータと比較して、セクタを確認します。
6.9. 「1ビット」ECCエラーが空白の場所の読み取りによるものかどうか、または実際のECCエラーがあったかどうかを確認するにはどうすればよいですか。
障害割り込みにブレークポイントを設定できます。障害割り込みが発生したら、次の手順を実行できます。
1. FAULT_STRUCT_STATUSレジスタのフォールトIDが「0x34」であり、「VALID」ビットが設定されていることを確認してください。
2. FAULT_STRUCT_DATA0レジスタから障害の場所を特定します。
DATA0 [26:0]に違反アドレスが含まれています。32ビットシステムアドレスを導出するには、最上位ビットとして5'b00010を追加します。
3. FLASHC_FLASH_CTLレジスタの「WORK_ECC_EN」の値が「1」であるか確認してください。
4. そうでない場合は、WORK_ECC_ENを「1」に設定します。次に、次の手順に従います。
- Debugger Memoryウィンドウで、手順2で計算したアドレスの値を読み取ります。これはvalue0と見なすことができます。
- 手順2で計算したアドレスの値を再度読み取ります。これはvalue1と見なすことができます。
- ここで、「FLASHC_FLASH_CTL」レジスタのWORK_ECC_ENを「0」に設定し、手順2で計算したアドレスの値を読み取ります。これはvalue2と見なすことができます。
- ここで、「FLASHC_FLASH_CTL」レジスタのWORK_ECC_ENを「0」に設定し、手順2で計算したアドレスの値を再度読み取ります。これはvalue3と見なすことができます。
考えられる推論:
値value0、value1、value2、およびvalue3を確認してください。
- 「value0とvalue1が等しい」、「value2とvalue3が等しい」、「value0とvalue2の差が1ビットしかない」場合は、アドレスがすでにプログラムされており、空白ではなく、実際に1ビットのECCエラーが発生していることを意味します。
- (value0とvalue1が異なる)または(value2とvalue3が異なる)、または前の条件が失敗した場合、読み取られているアドレスは空白でした。WorkFlashで空白のアドレスを読み取ると、偽のデータが生成されます。