2411990_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2411990_ja-JP

2411990_ja-JP

IMXRT1176 アプリケーションがクラッシュ、後でIMXRTが起動しない

こんにちは、

カスタムボードIMXRT1176を使っていますが、アプリケーションとセカンダリブートローダーの開発中にアプリケーションがクラッシュし、その後、アプリケーションのフラッシュができません。シリアルダウンローダーモードに入ってからFLEXSPI NORフラッシュを消去してみましたが、それでも表示されます


「Flash ドライバ V.2の起動失敗 - rc Ef(55): 動的フラッシュドライバ起動がフラッシュパラメータを提供できません。終了(0x0、0x0、0x0)ステータス0x40 - ドライバーがinit失敗を報告 - EXTSPIJドライバーrc 20107(0x4E8B)チップ初期化失敗 - Ef(55): 動的フラッシュドライバー起動がフラッシュパラメータを提供できません。フラッシュドライバーの初期化に失敗MIMXRT1170_SFDP_QSPI.cfx##」


NXPのブートユーティリティをUSB経由でMCUに接続して、このログを試しました。

「--------MCUデバイスROM情報--------
ユニークID[31:00] = 0x8295ad77
ユニークID[63:32] = 0x242cc80e
現行バージョン = K3.0.1
対象バージョン = T3.0.0
ライフサイクル状態 = HABオープン
--------MCUフラッシュローダー情報-------
現行バージョン = K2.8.0
ターゲットバージョン = T1.0.1
--------MCUデバイスeFusemap--------
(0x940)SYSBT_CFG0=0x0
(0x950)SYSBT_CFG1=0x0
(0x960)SYSBT_CFG2=0x8
BT_FUSE_SEL = 1'b0
BMOD[1:0] = 2'b00(ヒューズからの起動)、起動デバイス内にアプリがない場合、MCUは直接シリアルダウンローダーモードに入ります
BMOD[1:0] = 2'b10(内部起動)時、MCUはBOOT_CFGxピンとヒューズの両方に基づいてアプリを起動BOOT_CFGx
----------FlexRAMメモリ-----------
IOMUXC_GPR->GPR16 = --------
--------MCUデバイスROM情報--------
ユニークID[31:00] = 0x8295ad77
ユニークID[63:32] = 0x242cc80e
現行バージョン = K3.0.1
対象バージョン = T3.0.0
ライフサイクル状態 = HABオープン
--------MCUフラッシュローダー情報-------
現行バージョン = K2.8.0
ターゲットバージョン = T1.0.1
--------MCUデバイスeFusemap--------
(0x940)SYSBT_CFG0=0x0
(0x950)SYSBT_CFG1=0x0
(0x960)SYSBT_CFG2=0x8
BT_FUSE_SEL = 1'b0
BMOD[1:0] = 2'b00(ヒューズからの起動)、起動デバイス内にアプリがない場合、MCUは直接シリアルダウンローダーモードに入ります
BMOD[1:0] = 2'b10(内部起動)時、MCUはBOOT_CFGxピンとヒューズの両方に基づいてアプリを起動BOOT_CFGx
----------FlexRAMメモリ-----------
IOMUXC_GPR->GPR16 = --------
--------MCUデバイスROM情報--------
ユニークID[31:00] = 0x8295ad77
ユニークID[63:32] = 0x242cc80e
現行バージョン = K3.0.1
対象バージョン = T3.0.0
ライフサイクル状態 = HABオープン
--------MCUフラッシュローダー情報-------
現行バージョン = K2.8.0
ターゲットバージョン = T1.0.1
--------MCUデバイスeFusemap--------
(0x940)SYSBT_CFG0=0x0
(0x950)SYSBT_CFG1=0x0
(0x960)SYSBT_CFG2=0x8
BT_FUSE_SEL = 1'b0
BMOD[1:0] = 2'b00(ヒューズからの起動)、起動デバイス内にアプリがない場合、MCUは直接シリアルダウンローダーモードに入ります
BMOD[1:0] = 2'b10(内部起動)時、MCUはBOOT_CFGxピンとヒューズの両方に基づいてアプリを起動BOOT_CFGx
----------FlexRAMメモリ-----------
IOMUXC_GPR->GPR16 = --------
--------MCUデバイスROM情報--------
ユニークID[31:00] = 0x8295ad77
ユニークID[63:32] = 0x242cc80e
現行バージョン = K3.0.1
対象バージョン = T3.0.0
ライフサイクル状態 = HABオープン
--------MCUフラッシュローダー情報-------
現行バージョン = K2.8.0
ターゲットバージョン = T1.0.1
--------MCUデバイスeFusemap--------
(0x940)SYSBT_CFG0=0x0
(0x950)SYSBT_CFG1=0x0
(0x960)SYSBT_CFG2=0x8
BT_FUSE_SEL = 1'b0
BMOD[1:0] = 2'b00(ヒューズからの起動)、起動デバイス内にアプリがない場合、MCUは直接シリアルダウンローダーモードに入ります
BMOD[1:0] = 2'b10(内部起動)時、MCUはBOOT_CFGxピンとヒューズの両方に基づいてアプリを起動BOOT_CFGx
----------FlexRAMメモリ-----------
IOMUXC_GPR->GPR16 = --------」


「MCUがフラッシュローダーに入ったが外部メモリの設定に失敗しました。基板をリセットし、適切な起動デバイスを設定して再度お試しください」と表示されます。


私のNORフラッシュメモリはW25Q32JV Quad SPIです。

この件に関して、どうかご協力をお願いいたします。


ありがとうございました。

ナゲンドラ


Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

こんにちは、 @Gavin_Jia さん

ご回答ありがとうございます。

1.RAMからサンプルを実行したところ、IDが0になりました。

2. フラッシュはFlexSPI Aに接続されています

FlexSPI1信号RT1176ボール/パッド名

FLEXSPI1_A_SCLKGPIO_SD_B2_07
FLEXSPI1_A_DATA0GPIO_SD_B2_08
FLEXSPI1_A_DATA1GPIO_SD_B2_09
FLEXSPI1_A_DATA2GPIO_SD_B2_10
FLEXSPI1_A_DATA3GPIO_SD_B2_11
FLEXSPI1_A_SS0_BGPIO_SD_B1_06

このボードは以前、私たちのアプリケーションで動作しており、Flexspiの例を使ってフラッシュを消去・プログラムすることで、アプリケーションのセカンダリーブートローダーを実装しましたが、その間にアプリケーションがフリーズし、それ以降はフラッシュできなくなりました。


Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

こんにちは、 @Nagendra_Kumar さん

ログを見ると、MCU、ROM、フラッシュローダーはすべて正常(HABオープン、シリアルダウンローダー接続)を示しています。故障はFlexSPI–to–W25Q32JVの初期化で、ツールはSFDPパラメータすら読み取れないので、これは基板や設定の問題で、フラッシングツールの問題ではありません。新しいフラッシュでも失敗する場合は、以下の順序で確認してください。

  1. まず、内部RAMからflexspi_nor_polling_transfer_cm7サンプルを実行し、W25Q32JVのJEDEC IDを読み取ります。IDが読み取れない場合は、ハードウェアやピンの問題が確認できます。まだフラッシュツールに注目しないでください。
  2. フラッシュがどのFlexSPIインスタンス/ピングループに表示されているかを確認してください。デフォルトの.cfxまた、MCUBootUtilityはFlexSPI1ポートA(EVK配線)を前提としています。もしあなたのものがFlexSPI2またはFlexSPI1のセカンダリ上にある場合は、option0のピングループフィールドを変更し、FLEXSPI_PIN_GROUP_SELヒューズ(アドレス0x9A0[10])を焼却します。MCUBootUtilityでマッチするインスタンスを明示的に選択します。
  3. Secure Provisioning Tool(SPT)を検討してみてください。これはW25Qファミリ向けの組み込みFCBテンプレートと、セットアップを検証するためのブートメモリ構成機能を備えています。

また、このボードは以前にW25Q32JVから正常にプログラムされ、起動されたことがありますか?

よろしくお願いします、
ギャビン

Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

こんにちは、

言い忘れていましたが、NORフラッシュメモリも新しい部品に交換しました。しかし、エラーは依然として残っている。

Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

こんにちは、 @Nagendra_Kumar さん

最新情報のご提供ありがとうございます!

表には以下のように記載されていることが分かりました。

FLEXSPI1_A_SS0_B GPIO_SD_B1_06

GPIO_SD_B2_06であるべきです。これはタイプミスでしょうか、それとも実際の接続状態はこうなっているのでしょうか? RAMコードはJEDEC ID 0を返しました。これは、フラッシュハードウェアが全く応答していないことを示しています。したがって、接続が正しい場合は、ハードウェアの接続と電源を確認し、オシロスコープを使用して波形を調べる必要があります。

よろしくお願いします、
ギャビン



Re: IMXRT1176 Application Crashed , Later IMXRT doesnot boot

こんにちは、 @Gavin_Jia さん

FLEXSPI1_A_SS0_BGPIO_SD_B1_06

GPIO_SD_B1_06はタイプミスです。申し訳ありません。実際には、GPIO_SD_B2_06のみ接続されています。表中のFLEXSPIピンをオシロスコープで調べたところ、ピンにアクティビティがないことがわかりました。

さらに、あなたが言及したサンプルをRAMから実行した場合、SS0_B信号は常にローレベルになります。同じタイプのボードが複数あり、正常に動作しているボードではIDが0xEFと表示されます。この問題は、セカンダリブートローダーの実装をテストした特定のボードで発生しており、そのボードがハングアップした際に問題が発生しました。ソフトウェアやアプリケーションのクラッシュがこのような挙動を引き起こす理由が分からず、他のボードを使ってソフトウェアをテストすべきかどうか迷っています。残念ながら、私が書いたコードは提供できません。参考までに、私はSDKのFreeRTOS例を使ってアプリケーションを作成し、さらにflexspiのポーリング例を使ってセカンダリブートローダーを実装しました!DMAを使ったLPSPIを2台、DMAを使ったUARTを2台、CANを2台使っています。小さな用途です。SDKバージョン2.8.1を使っています。

ご回答をお待ちしております。

ナゲンドラ・クマール。



タグ(1)
評価なし
バージョン履歴
最終更新日:
1週間前
更新者: