2390216_ja-JP

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

2390216_ja-JP

2390216_ja-JP

S32K344チップ、spdにeMCEM_1モジュールを追加した後、ブートローダーを使用してダウンロードに失敗しました。

ロジックを整理して書き直します。タイトルにあるように、アプリコードでeMCEM_1を有効にすると、公式ブートローダーを使用したアプリのダウンロードが失敗しました。チップを消去しなければ、再びブート画面に入ることができず、電源を入れ直しても問題は解決しなかった。電源を入れ直した後、起動プロセスでアプリが起動したものの、アプリが起動しなかったのではないかと推測しています。eMCEM_1を無効にすると、この問題は発生しません。eMCEM_1が有効になっているときに、Bootでアプリを書き換えるにはどうすればいいですか

Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

こんにちは、 @XPW さん

問題の説明が必ずしも明確ではない。
もしアプリケーションがブートローダーを通じてプログラムされている場合、アプリケーションに含まれるeMCEM_1設定はダウンロード中に実行されるわけではなく、単なるバイナリであるため、プログラミングプロセス自体に影響を与えることはありません。
ブートローダーがアプリケーションへの実行を転送した後にのみ、eMCEM/FCCU関連の設定が重要になり、その時点で以下の点を確認することが有用です。

  • FCCUステータス登録簿
  • DCMフラグ、MC_RGMフラグ。
  • また、アプリケーションが実際にmain()に到達するかどうかも重要です。

現在の説明からは、プログラミング操作が失敗するのか、プログラムが成功して問題がアプリケーションの実行開始時に起こるのかは不明です。

出来事の正確な順序を説明していただけますか?


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

ダニエル

Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

調査の結果、が有効になった際に、一部のグローバル変数が定義どおりに初期化されていなかったことが判明しました
説明が必要な箇所を選択してください
まず、ターゲットを有効にしていないとき

XPW_0-1783494597992.png
Clock_ip.c(RTDファイル内)

XPW_1-1783494731850.pngXPW_2-1783494792174.png

Power_ip。c は RTD ファイル内

XPW_3-1783494883662.png

XPW_4-1783494909192.png
Can initialize correctly
しかし、起動したとき:

XPW_5-1783495188492.png

XPW_6-1783495223242.png
Clock_ip.c(RTDファイル内)

XPW_7-1783495794585.png

XPW_8-1783495823066.png

Power_ip.c は RTD ファイル内にあります。

XPW_9-1783495866324.png

XPW_10-1783495886502.png

グローバル変数の初期化に失敗しました

もっと良い解決策はありますでしょうか?










Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

こんにちは、 @XPW さん

スクリーンショットを見る限り、変数は最初は正しく初期化されているようです。しかし、eMCEMの初期化後、Clock_Ip_pfkNotificationsCallbackには無効なポインタが含まれています。
eMCEMはポインターの値を魔法のように変更するわけではありません。これは、以下のいずれかの問題に非常によく似ています。

  • 起動時の初期化 (.data copy / .bss初期化が正しく完了していません。
  • RAMの破損はmain()関数の前に発生します。
  • リンカー部分は重複している。
  • スタック破損。

SPDデモプロジェクトのリンカーファイルでテストできますか?


BR、ダニエル


Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

リンクファイルは以下のように変更されました。

XPW_0-1783992772039.png

XPW_1-1783993101988.png

私は3つのグローバル変数を定義しました。

XPW_2-1783993317537.png

が有効になっていない場合、init_data-bssを実行した後、

XPW_3-1783993342206.png

XPW_4-1783993406406.png

4バイトに正しく整列され、適切に割り当てられているようです。

しかし、を有効にすると、init_data-bssを実行した後、

XPW_5-1783994068084.png

XPW_6-1783994226472.png

位置がずれているようです。

Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

この現象の原因は何でしょうか?また、どのように調査し、解決すればよいでしょうか?

Re: S32K344 chip, failed to download using bootloader after adding eMCEM_1 module in spd

こんにちは、 @XPW さん

スクリーンショットを見る限り、変数の初期化自体に問題があるとは考えにくい。variable_aは8ビット変数であり、eMCEMを有効にすると追加の変数が導入され、.データのレイアウトが変わる可能性がありますセクション。したがって、異なるオフセットで変数が見られることは想定内のことであり、それ自体がデータの破損を示すものではありません。
重要な問題は、アプリケーションが単独で実行されたときに起こるのか、それともブートローダーでプログラムされて起動された時だけ発生するのかということです。
デバッガで直接プログラムし、ブートローダーなしで実行した場合にこの問題を再現できますか?もし問題がブートローダーを通じてアプリケーションを読み込んだ後にのみ発生する場合は、調査はアプリケーション自体ではなく、ブートローダーのプログラミングプロセス、イメージレイアウト、またはブートローダーのハンドオーバーに焦点を当てるべきです。


BR、ダニエル

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