i.MX93: J-Link と SYSRESETREQ を使用した Cortex-M33 リセットが機能しない こんにちは、 Segger J-Link と gdb を使用して、i.MX93 上の Cortex-M33 のファームウェアをデバッグしようとしています。NXP の J-Link ソフトウェアのパッチを使用して SWD 接続を確立し、プロセッサを停止したり、レジスタやメモリを読み取ったりできるようになりました。 問題は、プロセッサをリセットしても機能しないことです。レジスタの内容は変更されないので、リセットは無視されるものと想定します。 (gdb) レジスタを監視する R0 = 40D000C0、R1 = 2001EFE3、R2 = 40D000C0、R3 = 00000000 R4 = 00000000、R5 = 00000000、R6 = FFFFFFFF、R7 = 2001EEE8 R8 = FFFFFFFF、R9 = FFFFFFFF、R10 = 2000F000、R11 = 00000000 R12= FFFFFFFF、R13= 2001EEE8、MSP= 2001EEE8、PSP= 00000000 R14(LR) = 0FFE219D、R15(PC) = 0FFE2248 XPSR 49000003、APSR 48000000、EPSR 01000000、IPSR 00000003 CFBP 00000000、コントロール 00、フォールトマスク 00、ベースプライ 00、プライマスク 00 セキュリティ拡張規則: MSP_S = 2001EEE8、MSPLIM_S = 00000000 PSP_S = 00000000、PSPLIM_S = 00000000 MSP_NS = 00000000、MSPLIM_NS = 00000000 PSP_NS = FFFFFFFC、PSPLIM_NS = 00000000 CONTROL_S 00、FAULTMASK_S 00、BASEPRI_S 00、PRIMASK_S 00 CONTROL_NS 00、FAULTMASK_NS 00、BASEPRI_NS 00、PRIMASK_NS 00 (gdb) モニターのリセット ターゲットをリセットする (gdb) レジスタを監視する R0 = 40D000C0、R1 = 2001EFE3、R2 = 40D000C0、R3 = 00000000 R4 = 00000000、R5 = 00000000、R6 = FFFFFFFF、R7 = 2001EEE8 R8 = FFFFFFFF、R9 = FFFFFFFF、R10 = 2000F000、R11 = 00000000 R12= FFFFFFFF、R13= 2001EEE8、MSP= 2001EEE8、PSP= 00000000 R14(LR) = 0FFE219D、R15(PC) = 0FFE2248 XPSR 49000003、APSR 48000000、EPSR 01000000、IPSR 00000003 CFBP 00000000、コントロール 00、フォールトマスク 00、ベースプライ 00、プライマスク 00 セキュリティ拡張規則: MSP_S = 2001EEE8、MSPLIM_S = 00000000 PSP_S = 00000000、PSPLIM_S = 00000000 MSP_NS = 00000000、MSPLIM_NS = 00000000 PSP_NS = FFFFFFFC、PSPLIM_NS = 00000000 CONTROL_S 00、FAULTMASK_S 00、BASEPRI_S 00、PRIMASK_S 00 CONTROL_NS 00、FAULTMASK_NS 00、BASEPRI_NS 00、PRIMASK_NS 00 J-Link からのリセット戦略では、Cortex-M33 コアのみがリセットされることになっているため、リセット信号ではなく SYSRESETREQ を使用します。デバッグ コントローラに SYSRESETREQ ビットを書き込むために必要なセキュリティ権限がない可能性はありますか? J-Link を使用して Cortex-M33 のリセットを実行する正しい方法は何ですか? よろしくお願いいたします。 マルテ Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは、
[email protected] でも詳細を共有していただけますか? このトピックからすでに 1 年以上経過していますが、まだ同じ問題が残っています。 ありがとう。 Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working プロセッサが再び失われることはなかったという意味ではうまくいきましたが、実行時間には大きな影響がありました。その理由はわかりません。 それぞれの操作には10倍の時間がかかりました。 コールド リセットを実行しますが、デフォルトで ROM にいくつかのコード (NXP が SD カードがないことを示唆していることとは反対) を残し、実行中のものにデバッガーを接続して RAM を上書きすることは意味がありますか? Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは、 この JLink スクリプトを使用することは可能ですか? https://kb.segger.com/images/8/86/Example_Reset_CortexM_Normal.JLinkScript これはCortexMの標準的な戦略です。 敬具 Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは、 解決策を共有していただけますか?私も現在同じ状況に直面しています。 Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは、クリストフさん。 上で述べたように、私は J-Link を使用して i.MX93 の Cortex-M33 をリセットする方法を見つけました。もしそれがあなたが探しているものであれば、喜んで詳細をお伝えします。電子メールアドレスまたは直接連絡できる他の方法を教えてください。 よろしくお願いいたします。 マルテ Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは。このトピックを見つけたばかりですが、M33 を A55 から分離して操作するための信頼できる解決策を誰かがようやく見つけることができたかどうか知りたいと思いました。最近、今後のプロジェクトのために開発環境の作成を開始しましたが、すぐにソフトウェア リセットのトリガーに関する同じ問題に遭遇しました。Threadが開かれてからしばらく経ちましたが、SEGGERは現在 (v8.10) IMXターゲットを組み込んだソフトウェアを提供していますが、まだシングルコアリセットを実行できないようです。SCB (SYSRESETREQ) と SCR レジスターでいくつか実験してみましたが、安定した結果は得られませんでした。また、VSCode 用の MCUXpresso プラグインも簡単にテストしましたが、カスタムの動作するリセット戦略の実装は見つかりませんでした。 よろしくお願いいたします。 クリストフ Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは、マルカイさん。私もまったく同じ問題を抱えているので、解決策にとても興味があります。解決策やアドバイスを送っていただくことは可能でしょうか?どうもありがとう。
[email protected] よろしくお願いいたします。 順州 Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは、マルテ 大変助かります。私のメールアドレスは
[email protected]です。 よろしくお願いいたします。 ニールス Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは、ニールス。 あまり役に立たない NXP サポートのおかげで、私はこの問題の解決策を見つけました。 メールアドレスまたは直接連絡できる他の方法を教えていただければ、喜んでお手伝いさせていただきます。 敬具、 マルテ・カイザー Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは@Sanket_Parekh 私も原作者と全く同じ状況です。NXP が提供する JLink スクリプトは、実際には M33 コアをリセットするのではなく、停止するだけのようです。これにより、レジスタとプロセッサの状態は変更されず、障害が発生した場合、最初に Linux 経由でコアをリセットしないとデバッグを適切に続行できなくなります。 JLink デバッガーを使用して、M33 コアのこのようなリセットをトリガーする方法はありますか? よろしくお願いいたします。 ニールス Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは、 Sanket_Parekhさん (1) i.MX93 Cortex-M33用のNXP J-Linkスクリプトパッチはどこで入手できますか? (2)Segger氏によると、J-Linkでi.MX93をサポートするためのロードマップはまだ存在しない。しかし、それはQ1またはQ2に発生する可能性があります。Cortex-M33 をデバッグする他の方法はありますか? BR Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは@malkai 、
お元気でお過ごしでしょうか。
「NXP が i.MX93 の Cortex-M33 コアをリセットするために意図した手順は何ですか?」 -> システム リセット コントローラ (SRC) は、すべてのシステム リセット信号の生成とブート引数のラッチを担当します。
->主な機能は次のとおりです。 • 他のモジュールからのすべてのグローバル システム リセット ソースを処理し、グローバル システム リセットを生成します。 • MIX (スライス) の電力ゲーティングとメモリの低電力制御を担当します。
->SRCはPADとヒューズビットからPOR_Bを取得してブートシーケンスを完了し、GPCの低電力要求を 電源のダウン/アップシーケンスを完了します。
第33章「システム リセット コントローラ (SRC)」を参照してください。 https://www.nxp.com/webapp/Download?colCode=IMX93RM
ありがとう、よろしく。 サンケト・パレック Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは@Sanket_Parekh m、 お返事ありがとうございます。しかし、その情報は問題の解決には役立ちません。ご存知のとおり、i.MX93 の Cortex-M33 コアには Armv8-M アーキテクチャがあり、AIRCR レジスタに VECTRESET ビットがありません ( https://developer.arm.com/documentation/ddi0553/latest/の D1.2.3 を参照)。SO、唯一利用可能なリセット要求は SYSRESETREQ であり、これには Cortex-M33 コアもシステム全体も反応しません。何故ですか? 私はすでに J-Link で使用されるリセット戦略を調べました。問題は、私が言ったように、NXP からのパッチは、CPU を停止するだけでこれらを置き換えるということです。また、リセット ラインは SoC 全体をリセットするため、ここでは使用できません。 SO、問題はまだ残っています。NXP が i.MX93 の Cortex-M33 コアをリセットするために意図した手順は何でしょうか? ありがとうございます。 マルテ・カイザー Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは@malkai 、 お元気でお過ごしでしょうか。 ->リセット選択は、ターゲット デバイスのリセット操作を制御します。すべてのリセット オプションは Cortex-M プロセッサ ベースのデバイスに適用され、JTAG および SWD モードで使用でき、リセット後に CPU を停止します。 ->Core - VECTRESET ビットを設定することによってのみ Cortex-M コアのリセットを実行します。オンチップペリフェラルはリセットされません。一部の Cortex-M デバイスでは、このリセット方法がリセットできる唯一の方法です。ただし、ほとんどの場合、この方法は推奨されません。これは、ほとんどのアプリケーションが一部のペリフェラル(PLL、外部メモリ インターフェイスなど)のリセット状態に依存しており、起動時にペリフェラルがすでに構成されていると混乱が生じる可能性があるためです。 ->ResetPin - J-Link は RESET ピンを低くして、コアとペリフェラルをリセットします。通常、これによりデバイスの CPU RESET ピンも低くなり、CPU とペリフェラルがリセットされます。ターゲット デバイスの RESET ピンがローにプルされていない場合、このリセット方法は失敗します。 以下のリンクのセクションのリセット戦略を参照してください。 https://community.nxp.com/ pwmxy87654/attachments/ pwmxy87654/kinetis/28743/1/ UM08001_JLink.pdf ありがとう、よろしく。 サンケト・パレック Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは@Sanket_Parekhさん、 お返事ありがとうございます。残念ながら、その情報は私の問題の解決に役立ちません。その間に、私はいくつかのことを知りました: 1.i.MX93 のパッチで NXP が提供する J-Link スクリプトではリセットが実装されません。CPU をリセットするのではなく、単に停止するだけです。 2. デバッガを介して AICR.SYSRESETREQ に手動で 1 を書き込んでリセットを要求しても、Cortex-M33 コアはリセットされません。 SO、私の最初の質問は残っています: デバッガーを介して Cortex-M33 をリセットする可能性はありますか? 感謝と敬意を込めて、 マルテ Re: i.MX93: Cortex-M33 Reset using J-Link and SYSRESETREQ not working こんにちは@malkai 、 お元気でお過ごしでしょうか。 こちらのリンクを参考にしてください。役に立つと思います。 https://community.nxp.com/t5/i-MX-プロセッサ-Knowledge-Base/すべてのボード-JTAG/ta-p/1106822 ------------------------------ ------------------------------ ------------------------------ ----------------------------- 注: この投稿で質問が解決した場合は、「正解」ボタンをクリックしてください。 ------------------------------ -------------------------------- -------------------------------- ----------------------------- ありがとう、よろしく。 サンケト・パレック