Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
TJA1445がスリープモードの場合、CANHとCANLは低レベルになります。 こんにちは、 TJA1445をスリープモードでテストする際、ウェイクアップソースモードをWUFに設定し、VBATVCCをデフォルトで0、CPNCを1、PNCOKを1に設定した場合、スリープモードに入った後にCANHとCANLが2.5Vではなく低レベル(0V)になるのはなぜですか?この時点でCANの状態は「CANオフライン」ですか?TJA1445がスリープモードに入ったときにCANHとCANLが2.5Vになるように設定するにはどうすればよいですか?現在のテスト環境では、CANメッセージを1つ送信するだけではTJA1445をウェイクアップするには不十分です。 liugaosong_0-1788782128664.pngliugaosong_0-1788782128664.pngliugaosong_0-1788782128664.png CH1はINHピン、CH2はCANHピンです。ご覧のとおり、スリープモードは低レベルです。 Re: TJA1445 休眠时CANH和CANL为低电平 PN関連のレジスタが電源障害前に設定されていれば、VCC/VIOをオフにしてBATのみを残すことができます。  そして、バス上でWUPに一致するメッセージが見つかった場合、CANオフラインからCANオフラインバイアスに移行できます。WUFに一致する別のメッセージを受信すると、PNウェイクアップを開始できます。 WUPメッセージの要件は、ほとんどのメッセージで一般的に満たされています。つまり、特定のフレームを2つ連続して送信すれば、デバイスを起動するのに十分です。     Re: TJA1445 休眠时CANH和CANL为低电平 こんにちは、 ボードがスリープモードになり、VCCがオフになった場合、TJA1445は1フレームでウェイクアップできないのでしょうか?CANオフラインからCANオフラインバイアスへのプロセスを経る必要があるのでしょうか?このとき、CANHとCANLは2.5Vになるのでしょうか、それともCANステータスが常にCANオフラインモードのままTJA1445はスリープモードに入るのでしょうか?
查看全文
Flash Drives # which is best flash drive avialble now in the market ## Please tell me Re: Flash Drives Hi@reedjhn9 I didn't quite understand your question. Could you describe it in more detail—specifically, the product you are using and the exact issue you want to know about?
查看全文
USB初期化失敗: -22 こんにちは、 USBポート経由でuucツールを使用してwic.b2zイメージをeMMCに書き込もうとしています。書き込み中にUSB初期化失敗:-22エラーが発生しました。imx8mpプロセッサを使用しています。 bootcmd_mfg を実行します: mfgtool_args を実行します。iminfo が${initrd_addr}の場合、test が${tee}の場合、bootm が${tee_addr} ${initrd_addr} ${fdt_addr}の場合、booti が${loadaddr} ${initrd_addr} ${fdt_addr}の場合、fi を実行します。それ以外の場合は、echo "fastboot を実行します..." を実行します。fastboot 0 を実行します。fi を実行します。 自動起動を停止するには、任意のキーを押してください: 0 ## 43800000 番地の画像を確認中... 不明な画像フォーマット! fastbootを実行... USB初期化失敗: -22 u-boot=>     i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus Re: USB init failed: -22 こんにちは、 問題の原因を分析するために、ボードの起動設定と全過程を共有してください。 Re: USB init failed: -22 U-Boot SPL 2024.04-lf_v2024.04+g6c4545203d1+p0(2024年11月15日 - 04:02:13 +0000) DDRINFO: DRAM initを起動 DDRINFO:DRAMレート4000MTS DDRINFO:ddrphyのキャリブレーション完了 DDRINFO: ddrmix設定完了 第0節:RNGのインスタンス化 ノーマルブート BOOTROMからの起動を試みています 起動段階:USB起動 img info 0x48022fa0、サイズ1064を探せます ダウンロードを続ける必要があります 1024 注意:JR0はHABで使用可能なのでNSにリリースしないでください 通知:BL31: v2.10.0(リリース):オートモーティブ-15.0.0_1.1.0 お知らせ:BL31:製造日時:2024年11月4日 08:52:12 U-Boot 2024.04-lf_v2024.04+g6c4545203d1+p0(2024年11月15日 - 04:02:13 +0000) CPU:i.MX8MP Lite[4] rev1.1 1600 MHz(1200 MHzで動作) CPU:インダストリアル温度グレード(-40°Cから105°C)で35°Cに対応 リセット原因:POR(POR) モデル:NXP i.MX8MPlus LPDDR4 EVKボード DRAM:6 GiB tcpc_init: デバイスIDが見つからない=0x50 setup_typec: tcpc port2 init 失敗、err=-19 tcpc_init: デバイスIDが見つからない=0x50 setup_typec: tcpc port1 init 失敗、err=-19 コア:284デバイス、36 uクラス、デバイスツリー:別々 MMC: FSL_SDHC: 1, FSL_SDHC: 2 どこからともなく環境を読み込む...了解 [*]-ビデオリンク0adv7535_mipi2hdmi adv7535@3d:cecデバイスID=0x3cが見つかりません プローブ失敗 パネル装置adv7535@3d 表示タイミングが取得できない プローブ映像装置故障、退位-19 [0] LCD-controller@32e80000、ビデオ [1] mipi_dsi@32e60000、video_bridge [2] adv7535@3d、パネル adv7535_mipi2hdmi adv7535@3d: cecデバイスIDが見つからない=0x3c プローブ失敗 パネル装置adv7535@3d 表示タイミングが取得できない プローブ映像装置故障、退位-19 出演:連続ドラマ 終了:連続ドラマ えっと:連続 第0節:RNGのインスタンス化 MMC:カードは提示されていません USB起動検出。Fastbootモードに入る! ネット:FEC0のPHYが取得できませんでした:addr 1 FEC0: addr 1のPHYが取得できませんでした eth1:ethernet@30bf0000【プライム】 速攻:通常 mfgtoolsのUSBから起動 警告 - mfgtoolsのデフォルト環境をご利用ください 、デフォルト環境を使用 実行bootcmd_mfg:実行mfgtool_args;もし情報が ${initrd_addr}なら;もしテストなら ${tee} =はい;次にbootm ${tee_addr} ${initrd_addr} ${fdt_addr};そうでなければbooti ${loadaddr} ${initrd_addr} ${fdt_addr};fi;そうでなければエコー「Run fastboot ...";ファストブート0;FI; どのキーを押してもオートブートを止める:0 ## 43800000で画像確認中... 不明な画像フォーマット! fastbootを実行... USB初期化失敗: -22 u-boot=> Re: USB init failed: -22 こんにちは、 最後のプリビルドイメージ(Linux 6.18.20_2.0.0)と uuu ツールの最終バージョンを再度フラッシュしてみてください。 敬具。
查看全文
USB 初始化失败:-22 您好, 我尝试使用 uuc 工具通过 USB 端口将 wic.b2z 镜像刷入 eMMC 存储。刷写过程中出现 USB 初始化失败:-22 错误。我使用的是 imx8mp 处理器。 运行 bootcmd_mfg: run mfgtool_args;if iminfo ${initrd_addr} ; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr} ${fdt_addr} ; else booti ${loadaddr} ${initrd_addr} ${fdt_addr} ; fi; else echo "运行 fastboot ..."; fastboot 0; fi; 按任意键停止自动启动:0 正在检查 43800000 处的图像... 未知图像格式! 运行 fastboot... USB 初始化失败:-22 u-boot=>     i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus Re: USB init failed: -22 你好, 请提供完整的操作流程和主板的启动配置,以便我们分析问题原因。 Re: USB init failed: -22 U-Boot SPL 2024.04-lf_v2024.04+g6c4545203d1+p0(2024年11月15日 - 04:02:13 +0000) DDRINFO:启动 DRAM 初始化 DDRINFO:DRAM 速率 4000MTS DDRINFO:DDRPHY 校准完成 DDRINFO:ddrmix 配置完成 SEC0:RNG 实例化 正常启动 尝试从 BOOTROM 启动 启动阶段:USB 启动 查找图像信息 0x48022fa0,大小 1064 需要继续下载 1024 注意:请勿将 JR0 释放给 NS,因为它可能被 HAB 使用。 注意:BL31:v2.10.0(版本):automotive-15.0.0_1.1.0 通知:BL31:构建时间:2024年11月4日 08:52:12 U-Boot 2024.04-lf_v2024.04+g6c4545203d1+p0(2024年11月15日 - 04:02:13 +0000) CPU:i.MX8MP Lite[4] rev1.1 1600 MHz(运行频率为 1200 MHz) CPU:工业级耐温等级(-40℃至105℃),工作温度35℃ 复位原因:POR 型号:NXP i.MX8MPlus LPDDR4 EVK 板 动态随机存取存储器(DRAM):6 GiB tcpc_init:找不到设备 ID=0x50 setup_typec:tcpc port2 初始化失败,错误代码=-19 tcpc_init:找不到设备 ID=0x50 setup_typec:tcpc port1 初始化失败,错误代码=-19 核心:284 个设备,36 个微类,设备树:独立 MMC:FSL_SDHC:1,FSL_SDHC:2 环境正在加载,但不知从何而来……好的 [*]-视频链接 0adv7535_mipi2hdmi adv7535@3d:找不到 CEC 设备 ID=0x3c 探测面板设备 adv7535@3d 失败 无法获取显示时序 探测视频设备故障,返回码 -19 [0] lcd-controller@32e80000,视频 [1] mipi_dsi@32e60000,视频桥 [2] adv7535@3d,面板 adv7535_mipi2hdmi adv7535@3d:找不到 CEC 设备 ID=0x3c 探测面板设备 adv7535@3d 失败 无法获取显示时序 探测视频设备故障,返回码 -19 输入:串行 输出:串口 错误:串行 SEC0:RNG 实例化 MMC:未持有卡片 检测 USB 启动。即将进入fastboot模式! 网络:无法获取 FEC0 的 PHY:地址 1 无法获取 FEC0 的 PHY:地址 1 eth1:以太网@30bf0000 [PRIME] Fastboot:正常 从 USB 启动 mfgtools *** 警告 - 请使用 mfgtools 的默认环境 使用默认环境 运行 bootcmd_mfg: run mfgtool_args;if iminfo ${initrd_addr} ; then if test ${tee} = yes; then bootm ${tee_addr} ${initrd_addr} ${fdt_addr} ; else booti ${loadaddr} ${initrd_addr} ${fdt_addr} ; fi; else echo "运行 fastboot ..."; fastboot 0; fi; 按任意键停止自动启动:0 ## 正在检查 43800000 处的图像... 未知图像格式! 运行 fastboot... USB 初始化失败:-22 u-boot=> Re: USB init failed: -22 你好, 请尝试再次刷入最新的预编译镜像( Linux 6.18.20_2.0.0 )和最新版本的uuu工具。 此致敬礼
查看全文
S32K344 – Is PFLASH Block 2 available to the application with HSE_B firmware installed? Hello, We are developing a Power Distribution Unit around the S32K344 (HSE_FW_S32K344_0_2_55_0, 0.2.55.0 build pb150130 (30 janvier 2025). Type : Standard FW configuration) with a dual-bank bootloader and secure firmware update. We are stuck on one point of the flash layout and would appreciate a definitive answer. The problem Our NVM configuration regions (runtime parameters written by the application) currently live in PFLASH Block 0, in the same block as the executing code. Writing to them at runtime triggers read-while-write stalls on the core, which freezes the unit for the duration of the program/erase operation. This is not acceptable for our application (the PDU drives safety-relevant loads). The obvious fix is to move these regions to a block that does not contain executed code. Block 2 (0x600000–0x6FFFFF, sectors 368–381) is the natural candidate: it is not used by our application banks, and it is not the block where HSE stores its data. What we have checked so far – The S32K3xx Reference Manual describes the PFLASH block structure but does not say anything about HSE reservations. – The public HSE Basic FW FAQ states that Blocks 0 and 1 are guaranteed for the application, and that the HSE firmware reserves part of Block 3 (176 KB in FULL_MEM configuration). It does not mention Block 2 at all. – The HSE demo application and RTD examples we looked at do not use Block 2 either, so we cannot infer anything from them. – We have submitted an NDA / DocStore access request for the HSE Firmware Reference Manual v2.4, which we understand covers this. The request is pending. Questions With HSE_B firmware installed, is Block 2 entirely available to the application (code and data) in FULL_MEM configuration? What about AB_SWAP? Is there any HSE-related restriction on erasing/programming Block 2 at runtime from the application core (e.g. sectors locked or monitored by HSE, SBAF or secure boot)? Is there a public document that describes the full PFLASH block allocation between HSE firmware, SBAF and the application? If not, could someone help us get access to the HSE Firmware Reference Manual while our NDA request is processed? Until we have a confirmed answer, our design is deliberately confined to Blocks 0 and 1, which leaves us with the read-while-write issue. Thank you in advance for your help. Re: S32K344 – Is PFLASH Block 2 available to the application with HSE_B firmware installed? Hello @manu_fenixecu, A1. Yes, Block 2 is entirely user flash. Refer to HSE-B FW RM v2.7, Figure 33 (FULL_MEM) and Figure 34 (AB_SWAP) for the flash memory layout of S32K344, S32K314, and S32K324. A2. HSE-B FW RM v2.7, Section 14.6.4.2 (HSE_CONFIG_GPR3) — the application should read bit 27. A3. The only publicly available reference is the S32K3xx RM rev12, Table 198 ("Configuration details when the HSE_B firmware usage feature flag is enabled"). The HSE-B FW RM cannot be shared without an NDA in place. For HSE-related support, please use support tickets rather than this public community. Regards, Daniel Re: S32K344 – Is PFLASH Block 2 available to the application with HSE_B firmware installed? Thank you for sharing 😉
查看全文
i.MX8QXP C0: クラッシュ証拠キャプチャ SCwatchdogresetCortex-M4監視A35クラスタ全体にラムーブ こんにちは、NXPチームの皆さん、 プラットフォームの詳細: SoC: i.MX8QXP C0、MEKリファレンスに基づくカスタムボード BSP: NXP Linux 6.6.3 [状態完全タグ、例:lf-6.6.3-1.0.0]、ヨクト・スカースギャップ SCFWバージョン:[scu_rmを実行し、ブートログを確認してバージョンを貼り付けてください] SECO/AHAB: [有効/無効、バージョン] U-Boot: [2024.04/tag] Cortex-M4(CM4_0):現在使用されておらず、ファームウェアはインストールされていません ユースケース:生産オートモーティブ向けインストゥルメントクラスター;A35はLinux/Weston HMIを動作させています 問題提起: 実稼働環境では、A35 複合システムがクラッシュしたり、ハードハングアップ(カーネルパニック/ロックアップ)を起こしたりするケースが時折発生します。現在では持続的なクラッシュの証拠もなく、自律的な復旧もありません。クラスターは手動で電源を入れ直すまで停止状態のままで、フィールドやDVの発生はデバッグできません。我々は、(a) pstore/ramoops を使用したウォッチドッグリセット後のパニックログの永続化、および (b) A35 パーティションのみをリセットできる機能を備えた CM4_0 による A35 の監視を実装したいと考えています。 i.MX8QXP C0において、システムウォッチドッグ(imx-sc-wdt、SCFWによって処理される)が作動した場合、どのようなタイプのリセットが実行されますか?(SoC/ボード全体のリセット、またはAクラスタパーティションのリセット)これはSCFWボードファイルまたはsc_pm API経由で設定可能ですか? Re: i.MX8QXP C0: crashevidence capture ramoops across SCwatchdogresetCortex-M4 supervision A35 clus こんにちは、 はい、SCFWが管理する仮想監視犬を使ってパーティションをリセットすることもできます SC_TIMER_WDOG_ACTION_PARTITION 動作はLinux/A35パーティションのみをリセットします。 また、SCFW sc_pm APIを介してA35パーティション上で sc_pm_reset_partition() を呼び出すことで、CM4_0ファームウェアから直接同じ効果を得る方法もあります。これにより、CM4_0はウォッチドッグメカニズムとは独立した完全な監視制御が可能になります。 この件については、あなたが使っている特定のバージョンのSCFW移植ガイドで詳しく知ることができます。 よろしくお願いいたします。 アルド。
查看全文
S32K322 LCU/Emios S32K144とS32K322のエンコーダの実装方法と原理の違いについて理解を深めたいです。 S32K144では、初期の角度がPWMを通じて伝達され、その後カウントがABIインターフェースに提供されてさらなるプロセッシングが行われます。また、FTMを介した直交デコーダ機能を使用して、A、B、I信号/配線の断線を検出する故障検出メカニズムも備えています。 しかし、S32K322では、同じロジックが期待どおりに動作せず、特に方向を正しく検出できないことが問題となっています。 例えば、Iパルス線が切断されると、絶対カウントはゼロになる。これによりスイッチングが誤作動し、その後、絶対カウントが徐々に変化し、最終的に4095パルスに達する。 S32K144では、Iパルスが切断された場合でも、単一出力のA信号とB信号によって適切なカウント値が得られるため、故障を検出することが可能です。 以下のケースで期待される挙動を例示したり、明確にしていただけますか? Aパルスワイヤーが切断されました Bパルスワイヤーが外れています Iパルスワイヤが切断されました AとBのパルスワイヤーが切断されています A、B、Iパルスワイヤが切断されている また、S32K144とS32K322の両方で、これらのシナリオでエンコーダのカウントと方向がどのように振る舞うかについても説明していただけると助かります。 よろしくお願いいたします。 ティル S32K3 S32K1 ブラシレスDCモータ  Re: S32K322 LCU/Emios こんにちは、 S32K322にはS32K144上にあるFTMペリフェラルは含まれていません。S32K3ファミリでは、直交エンコーダの機能はLCU、TRGMUX、eMIOSモジュールの連携を中心に構築されています。これは、S32K144に搭載されているFTMベースの直交デコーダとは根本的に異なるアーキテクチャである。 S32K322では、PHAとPHBはLCUによって別々のCWおよびCCWパルスストリームにデコードされ、2つのeMIOSチャネルでカウントされます。アプリケーションはこれらのカウンターの差からインクリメンタル位置を得ます。 S32K3直交デコーダデザインの有用な出発点は、アプリケーションノートAN13767、特に4.2.5節で、方向検出、TRGMUXルーティング、eMIOSエッジカウンタ構成に使用されるLUT真理表を説明しています。追加情報はS32K344モータ制御キットのページおよび関連するコミュニティディスカッションでご覧いただけます。 AN13767: アプリケーションノートAN13767 S32K344モーター制御キット: S32K344 BLDC/PMSM開発キット コミュニティディスカッション: S32K344の直交デコーダ LCUのLUT実装に基づき、A信号またはB信号のいずれかが切断されても、残ったチャネルはLCU出力でCWまたはCCWパルスを生成するトランジションを生成できます。その結果、対応するeMIOSカウンターはカウントを継続し、方向情報が引き続き取得できる場合があります。しかし、パルスレートが低下するため、通常動作時と比較して1回転あたりのカウント数が約4分の1に減少する。 A信号とB信号の両方が切断されている場合、LCU入力には有効な直交位相遷移は存在しません。その結果、CWパルスもCCWパルスも生成されず、eMIOSカウンタは変化しない。 インデックス(I)信号に関しては、NXPモーター制御キットの実装ではインデックス信号は使用されていません。位置と方向はAおよびBの直交信号のみから導かれ、位置のずれはローターアライメント時に校正されます。さらに、この実装ではインデックス信号はMCUに接続されていません。したがって、I信号を切断した際に観察される挙動はアプリケーション固有のものと考えられます。 BR、ペトル Re: S32K322 LCU/Emios アプリケーションノートに記載されているLCUのLUTロジックを完全には理解できませんでした。 私には以下の質問があります。 1. A/B信号切断の検出: 絶対カウントだけでAまたはB信号の切断を検出するのは信頼性が低いことは理解しています。なぜなら、AまたはBの信号が切断された場合でも絶対カウントが 0または4095 のままになるからです。 同時に、 CW/CCWカウンター に基づいて固定しきい値を定義するのは難しいです。なぜならローターが前後に回転し、カウンターが転がってしまうからです。したがって、CW/CCWカウンターはロールオーバー条件に応じて 4095を超え、最大65535(uint16)まで続きます。 このシナリオにおいて、 A/B信号の切断を検出するための推奨されるロジックまたは閾値は何でしょうか? カウンターローバーの状態を考慮し、この状況に適した診断方法を提案していただけますか?
查看全文
TJA1445 休眠时CANH和CANL为低电平 Hi,     测试TJA1445进入Sleep模式时,唤醒源模式为WUF,VBATVCC默认为0,CPNC配置为1,PNCOK配置为1,为什么进入Sleep模式后,CANH和CANL为低电平0v,不是2.5V,此时CAN state是CAN Offline吗?如何配置可以当TJA1445进入Sleep后,CANH和CANL为2.5V,因为当前环境测试下来,CAN唤醒时,只发一帧CAN报文,是无法唤醒TJA1445的, liugaosong_0-1788782128664.pngliugaosong_0-1788782128664.pngliugaosong_0-1788782128664.png CH1是INH引脚,CH2是CANH,可以看到休眠是低电平。 Re: TJA1445 休眠时CANH和CANL为低电平 如果在掉电前设置好PN相关的寄存器,是可以关掉VCC/VIO,只保留BAT的。  然后总线上如果有满足WUP的报文,可以从CAN Offline进入CAN OfflinBias。再收到符合WUF的报文就可以PN唤醒了, WUP报文的要求正常一般报文都能满足,相当于连续发两帧特定帧报文就能唤醒     Re: TJA1445 休眠时CANH和CANL为低电平 Hi, 板子休眠,VCC是关了的,TJA1445做不到一帧唤醒吗?必须要要经过从CAN Offline进入CAN OfflinBias吗?这时候CANH和CANL能不能是2.5V,还是说TJA1445进入Sleep模式,CAN状态一定是在CAN Offline模式。
查看全文
U盘 目前市面上最好的U盘是哪一款? ## 请告诉我 Re: Flash Drives 你好@ reedjhn9 我不太明白你的问题。您能否更详细地描述一下——具体来说,您正在使用的产品以及您想了解的具体问题?
查看全文
IW416 Wi-Fi 射频测试模式 – PN9 / EN 300 328 有效载荷模式 你好, 我们正在使用 AN14114 Rev.7.0 对IW416进行 EN 300 328 法规测试评估。 我们的认证实验室要求使用 PN9 数据序列进行连续调制传输。 然而,在 Wi-Fi TX 连续命令中,AN14114 仅描述了一种固定的有效载荷模式: echo "tx_continuous= " 并举例如下: echo "tx_continuous=1 0 0xAAA 0 3 0x8" 请您确认一下: 1. IW416 Wi-Fi RF 测试模式是否支持直接生成 PN9/PRBS9? 2. 如果不是,NXP 推荐用于 EN 300 328 测试的有效载荷模式是什么? 3. 0xAAA 能否作为连续分组模式中 PN9 的推荐替代方案? 4. 这些设置对于连续调制传输是否正确? - 传输模式 = 0 -cs模式=0 - 活动子通道 = 3 谢谢!
查看全文
IMXRT1024でヒューズを焼損させずにHABをテストする 署名のないledのblinkyコードを使ってHAB監査API(報告状況と報告イベント情報)を実装しました。EVKボードは開いており、ヒューズも焼けていません 署名なしイメージ(CSF=0) - HABが4イベント情報で失敗 署名画像 - HAB パス0イベント情報 なので、ボードでもオープンHAB認証が実行されているのでイベント情報が見られると仮定しました。 しかし今回は同じIVT(CSF=0)でプロジェクトファームウェアを使い、同じHAB監査を実施しました 署名なし画像 - 0 イベント情報 のHABパス リードされた点滅ログ(署名なし): RVTヘッダー 0x 2002c0: tag=0xdd len=0x 038 par=0x43 HAB:RVTバージョン=0x 40305 居住区:report_status() = 0x33(HAB_FAILURE) HAB: config = 0xf0(HAB_CFG_OPEN) HAB: state = 0x66(HAB_STATE_NONSECURE) HAB: event[0], 8バイト HAB: hdr: tag=0xdb len=0x 0 8 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x22(HAB_INV_ADDRESS) context=0x a(HAB_CTX_AUTHENTICATE) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 8 43 33 22 a 0 HAB: event[1], 20バイト HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) コンテキスト=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 0 60 0 10 0 0 0 0 20 HAB: event[2], 20バイト HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) context=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 60 0 10 20 0 0 0 1 HAB: event[3], 20バイト HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) コンテキスト=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 0 60 0 20 0 0 0 4 HAB: VERDICT = 4 イベント情報 記録済み -- 上記のデコード済みフィールドを参照 私のプロジェクトファームウェア(署名なし) HAB: RVTヘッダー 0x002002c0 HAB: tag=0xdd len=0x0038 par=0x43 HAB:RVTが確認され有効 居住区:RVTバージョン=0x00040305 居住区:report_status() = 0xf0 HAB: config = 0xf0 HAB: state = 0x66 HAB: 監査イベント情報やクエリなし... HAB: report_event(idx=0) 0x33返されました(イベント情報やクエリなし) HAB: VERDICT = PASS(監査イベント情報なし) なぜ違いがあるのか Re: Test HAB on IMXRT1024 without burning fuses こんにちは、 @Abhay2080 さん。 ご連絡ありがとうございます!LED点滅コードが入っているSDK版と、画像作成に使われているSPT版の両方をいただけますか? ご辛抱いただきありがとうございます! すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses これはSDKバージョンです - SDK_25_06_00_MIMXRT1024xxxxx SPTバージョン - 26.06 MCU xpresso - v25.6.136 MCU Xpressoでコンパイルした場合、LED Blinky用の署名なし画像はSPTとCST 4.0の両方で作成されます Re: Test HAB on IMXRT1024 without burning fuses こんにちは、 @Abhay2080 さん。 情報と詳細なログをありがとうございます。これは素晴らしい観察結果で、違いはIVT内のCSFポインタがゼロかゼロでないかという一点に集約されます。 HABv4が認証を決定する方法 i.MX RT10xxでは、ブートROMは認証を試みるかどうかを判断する前にIVTのCSFフィールドを確認します。 CSF = 0x00000000 (null)の場合、HABは認証を完全にスキップし、イベント情報は記録されず report_status() 0xf0 (HAB_SUCCESS)を返します。これはセキュリティ上の「合格」ではありません。認証は一度も試みられていません。 CSF = non-zero (CSF領域を指す場合):HABは認証を試みます。署名が欠落または無効の場合、失敗イベント情報が記録され、 report_status() は 0x33 (HAB_FAILURE)を返します。オープンボードの場合、これはブートを停止させません。 なぜLED点滅(署名なし)が4つの故障イベント情報を示したのか あなたのLED点滅バイナリはMCUXpresso IDEによって構築され、その後SPT(Secure Provisioning Tool)で処理されてブート可能なイメージが作成されました。「署名なし」ビルドタイプの場合でも、SPTのブートイメージパイプラインは、ゼロ以外のCSFポインタをIVTに書き込み、イメージ内にCSF領域を予約します。Boot ROMは非ゼロポインタを発見し、認証を試みましたが有効な署名データは見つからず、4つのイベントを記録しました。 イベント情報0( HAB_INV_ADDRESS / HAB_CTX_AUTHENTICATE 😞 HABは認証のために画像を探しましたが、無効なアドレスに遭遇しました。これは空のCSF領域と一致します。 イベント情報1–3( HAB_INV_ASSERTION / HAB_CTX_ASSERT 😞 HABによる画像領域に対する内部検証は、実際の脳脊髄液データが存在しないため失敗しました。 なぜプロジェクトのファームウェア(署名なし)にイベント情報が0と表示されたのか あなたのプロジェクトファームウェアは、SPTの起動可能なイメージ生成ステップ を経ずに 、MCUXpresso IDEを通じて直接コンパイルされました。結果として得られるバイナリには、IVT内に真のヌルCSFポインタが含まれています。Boot ROMは CSF = 0 を認識し、認証を完全にスキップし、HABはクリーンな報告をします。ログの report_event(idx=0) からの 0x33 リターンは「このインデックスにイベント情報なし」(つまり、クエリ自体が何も保存されていないため返HAB_FAILURE)を意味しており、HABが故障を検出したわけではありません。 確認の簡単な方法 バイトオフセット +0x18 (CSFフィールド)で、両方のバイナリのIVTを調べます。 SPT製LED点滅:ゼロ以外の値(例: 0x60006xxx または類似のフラッシュアドレス) プロジェクトファームウェア: 0x00000000 プロジェクトのファームウェアで HAB 監査を適切にテストするには 起動可能なイメージはSPT(またはelftosb/nxpimage)でビルドし、CSF領域をイメージに埋め込む必要があります。署名なしビルドでも同様です。これにより、Boot ROMが認証を試み、HABイベント情報が生成されます。そうして初めて、HAB監査コードはテスト目的のための有意義なデータを収集できるようになります。 まとめると、HAB認証はオープンボード上で動作するというあなたの最初の仮定は正しいですが、それはIVTに非ゼロのCSFポインタが存在する場合に限られます。プロジェクトのファームウェアで観察された動作は想定どおりであり、正しいものです。 これで少しでも分かりやすくなれば幸いです!他に質問があればお知らせください。   すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses はい、Kan_Liあなたが言った説明は正しいですが、正しいシナリオは私たちにとってです。 LED点滅(署名なし)-> このバイナリiはMCU Xpresso IDEのみで生成(SPT経由は処理していません)。サイズ - 30KB そして、LED点滅(符号なし)と私のプロジェクト(符号なし)の両方のIVTを比較しても、両方ともまったく同じIVT(CSF=0)でした。サイズ 64KB 16進数比較を参照 左側はLED点滅、右側は私のプロジェクトのファームウェアです また、ヒューズを焼損させずにHABを正しくテストする方法についても教えてください。 Abhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.png Re: Test HAB on IMXRT1024 without burning fuses こんにちは、 @Abhay2080 さん。 16進数での比較をありがとうございます。おかげで状況がずっと分かりやすくなりました。おっしゃる通り、両方のバイナリはCSF=0の同一のIVT(初期値変換)を持っています。実際の根本原因は、CSFポインタではなく、ブートデータ size フィールドにあります。 16進ダンプの内容 ファイルオフセット 0x1020 (IVTの boot_data が指す位置)にあるブートデータ構造を見てみましょう。 フィールド LED点滅 プロジェクトファームウェア start (0x1020) 0x60000000 0x60000000 size (0x1024) 0x00004000 = 16 KB 0x00000400 = 1 KB plugin (0x1028) 0x00000000 0x00000000 IVT内の両方のCSFフィールドは 0x00000000 であり、同一であることが確認されました。 HABの挙動が異なる理由 HABライブラリの authenticate_image() は、認証を試みる前に画像スコープを決定するために、Boot Data領域( start から start + size )を使用します。重要なことに、 IVT自体はフラッシュオフセット 0x1000 (ベースから4096バイト)に配置されています。HABは、IVTが宣言されたブートデータ領域内に含まれるかどうかを確認します。 LED点滅— ブートデータは16KB( 0x4000 )を宣言します。オフセット 0x1000 (4096)のIVTは [0x60000000, 0x60004000) の中にあります。HAB は IVT を見つけ、 authenticate_image() を試行し、CSF=0 に遭遇します → ログには HAB_INV_ADDRESS + 3 つのアサーション失敗が記録されます → report_status() = HAB_FAILURE 。 プロジェクトファームウェア- ブートデータは 1 KB ( 0x400 ) のみを宣言しています。オフセット 0x1000 (4096)のIVTは [0x60000000, 0x60000400) 外側です。HABは宣言された領域内で有効なIVTを検出できず→認証は→ report_status() = HAB_SUCCESS , 0イベント情報で完全にスキップされます。 まとめると、プロジェクトファームウェアの1KBブートデータサイズは誤って小さすぎます。IVTはその境界を超えているため、HABはそれに手を出しません。 ブートデータのサイズはどちらも、実際のバイナリファイルのサイズ(それぞれ30KBと64KB)とは一致しないことに注意してください。両方のイメージは、適切なブート可能なイメージビルダーではなく、IDEが直接生成したブートデータを持っています。サイズのずれの程度によって、HABが発生するかどうかが決まります。 根本的な原因 SPTやelftosbを経ずにMCUXpresso IDEから直接コンパイルすると、結果として得られるバイナリはHAB評価のための適切なブートデータ構造を持ちません。 size フィールドは、IVT を包含する場合と包含しない場合がある値に設定され、予測不可能な HAB 監査結果をもたらします。 ヒューズを焼損させずにHABを正しくテストする方法 オープンボードにおける信頼できる手法は以下のとおりです。 SPTまたはelftosbを使用してビルドします。これにより、ブートデータ(ベースからCSF/コードの終わりまでイメージ全体をカバーする start 、 size )、FCB、IVT、およびオプションでCSFブロックが正しく設定されます。生のIDEコンパイル .bin でHABをテストするのは絶対に避けてください。ブートデータは信頼性が低くなります。 署名のないイメージ(CSF=0、正しいブートデータ)でテスト してください — HABは認証を試みますがCSFは検出できず、 HAB_INV_ADDRESS +アサーション失敗を記録します。 report_status() = HAB_FAILURE 。これにより、HABが正しく動作しており、監査コードが正常に機能していることが確認できます。これはまさに、あなたのLED点滅+SPTの結果が示していたことと同じです。 署名付きイメージ(CSFが有効で、ブートデータが正しいもの)を使用してテストします。SPTまたはCST 4.0を使用して、キーで適切に署名されたイメージを作成します。オープンボードでは、HABは埋め込まれたSRK/CSFを使用してイメージを認証します。署名が有効であれば、→ report_status() = HAB_SUCCESS 、0のイベント情報となります。署名が間違っていたり欠如している場合、→失敗のイベント情報。どちらの場合もオープンボード上でブートが続きます。 ヒューズを書き込む前に信頼性を確認してください。署名済みのイメージがオープンボードに表示され、HAB_SUCCESS が表示された後でのみ、SRK ハッシュヒューズを書き込んでください。これにより認証チェーン全体が安全に検証されます。 推奨されるテスト手順(すべてオープンボードで実施): Step 1: SPT -> Build unsigned image -> Flash -> Run HAB audit Expected: HAB_FAILURE, 4 events (HAB is running, audit code is correct) Step 2: SPT/CST -> Build signed image -> Flash -> Run HAB audit Expected: HAB_SUCCESS, 0 events (signing + authentication working end-to-end) Step 3: Corrupt the signed image or swap keys -> Flash -> Run HAB audit Expected: HAB_FAILURE, events logged (confirms rejection logic) Step 4: Burn fuses (SRK hash) -> confirm Step 2 still passes on Closed board これで違いが十分に説明できたでしょうか。重要なポイントは、HABをテストする際は必ずSPT/elftosbを使って起動可能なイメージを構築することです。生のIDEバイナリは使わないでください。 すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses @Kan_Li 、Boot データは小さなエンディアン32ビットワードに保存されているため、両方のバイナリのStartは同じなので、誤解されていると思います 始め0x60000000 ブートデータサイズは LED点滅 - 0x00400000(4MB) 私のプロジェクトです - 0x00040000(256KB) つまり、あなたの説明通りIVTは定義されたブートデータ内に含まれます Re: Test HAB on IMXRT1024 without burning fuses こんにちは、 @Abhay2080 さん。 おっしゃる通りです。バイト順序の誤りについてお詫び申し上げます。両方のブートデータサイズ(4MBと256KB)にはIVTが含まれているため、以前の説明は誤りでした。 根本原因:スタートアップコードによってHABイベントログが消去された ブートROMは両方のイメージに対して同じ4つの失敗イベント情報(CSF=0、認証試行)を生成します。違いは、プロジェクトファームウェアのCランタイム起動時が、HABライブラリがイベントログやステータスを保存する領域を含む大きなOCRAM領域をゼロにし、HAB監査コードが実行される 前に ゼロ化することです。そのため、 report_status() は 0xF0 返却し、イベント情報は0でした。HAB状態自体が消去されたのです。 修正方法: HAB監査コールをBSSのゼロイニットループの前に Reset_Handler に移動すると、イベント情報が見えます。 他に何かご質問がありましたら、お気軽にお知らせください。 すてきな一日を、 カン ------------------------------------------------------------------------------- 注記: この投稿があなたの質問への回答になっている場合は、「正解としてマーク」ボタンをクリックしてください。ありがとうございます! - 前回の投稿から7週間Threadをフォローしており、その後の返信は無視しています もし後で関連する質問があれば、新しいThreadを開き、閉じたThreadを参照してください。 -------------------------------------------------------------------------------
查看全文
Programming External MCU (S32K358) using open board debugger of S32K3X8EVB-Q289HWUM Hello,  I am trying to program my external MCU S32K358 using an onboard debugger of S32K3X8EVB-Q289HWUM board connected at 20-pin Cortex Debug D ETM connector, along with cable J55 cable. But I get errors. Please let me know what I actually need to do to successfully program my controller. Yash2530_0-1789183591258.jpegYash2530_0-1789183591258.jpeg CMD>VC Verifying object file CRC-16 to device ranges ... block 00400000-0042F4B7 ... Calculated CRC-16 does not match block. (File = $A9EE, Device = $EDEF) Error verifying flash of device Error occured during Flash programming. INFO: DAP IDCODE = 0x6BA02477 INFO: DAP successfully powered up. DP CTRL/STAT = 0xF0000000 Starting reset script (C:\NXP\S32DS.3.6.7\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_6.1.8.202603121731\supportFiles_ARM\NXP\S32K3xx\S32K358.mac) ... REM Enable clocks for selected cores in MC_ME module Delaying for 200mS ... Done. REM Initialize RAM and DMA: REM Initialize DMA TCD: REM Copy valid executable code to RAM for each core to be used. REM Enable required cores in MC_ME: Delaying for 20mS ... Done. Delaying for 20mS ... Done. Reset script (C:\NXP\S32DS.3.6.7\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_6.1.8.202603121731\supportFiles_ARM\NXP\S32K3xx\S32K358.mac) completed. PEmicro GDB Launch Failure : Error during flash programming. Terminating debug session. PE-ERROR: Error downloading to the device. Terminating debug session. Disconnected from "127.0.0.1" via 127.0.0.1. Disconnection by port "53100" from 6224 PE-ERROR: Error : Attempted to send response but connection already closed. Disconnected from "127.0.0.1" via 127.0.0.1. Disconnection by port "53104" from 7224 INFO: DAP IDCODE = 0x6BA02477 Target Disconnected. Regards, Yash Gupta Re: Programming External MCU (S32K358) using open board debugger of S32K3X8EVB-Q289HWUM Hi First of all, I do not recommend using the onboard debugger. The onboard debugger on the S32K3X8EVB is designed for programming and debugging the MCU on the evaluation board itself. Using this debugger to program or debug an external custom S32K358 board is not an officially recommended use case by PEmicro; therefore, NXP cannot guarantee proper operation in this configuration. Limitations regarding the onboard debugger were previously mentioned in the "Program/Debug issue with S32K142-Q48" discussion. I am not aware if PEmicro has changed the limitations for the S32K3 onboard debugger. Even if there are no such limitations from PEmicro, you must still ensure that the onboard S32K358 is not being powered through the debugger interface circuitry (verify by measuring onboard VDD_HV_A, VDD_HV_B, V11, etc.) or that the JTAG_TCLK/SWD_CLK lines are disconnected from the onboard S32K358. Additionally, you need to verify that the signal voltage of the onboard debugger interface matches the voltage on your custom board. Best Regards, Robin
查看全文
IW416 Wi-Fi RFテストモード – EN300 328用のPN9 / ペイロードパターン こんにちは、 当社は、AN14114 Rev.7.0を使用して、EN 300 328規制試験におけるIW416の評価を行っています。 当社の認証機関は、PN9データシーケンスを用いた連続変調送信を要求しています。 しかし、Wi-Fi TX連続コマンドにおいて、AN14114は固定ペイロードパターンのみを規定している。 echo "tx_continuous=<開始/停止> " そして、次のような例を挙げています。 echo "tx_continuous=1 0 0xAAA 0 3 0x8" 確認いただけますか: 1. IW416 Wi-Fi RFテストモードは直接PN9/PRBS9生成に対応していますか? 2. そうでない場合、NXPはEN 300 328試験にどのようなペイロードパターンを推奨しますか? 3. 0xAAAは連続パケットモードのPN9の推奨代替として使用可能か? 4. これらの設定は、連続変調送信に対して正しいですか? - 送信モード = 0 - cs モード = 0 - アクティブなサブチャネル = 3 よろしくお願いします。
查看全文
Test HAB on IMXRT1024 without burning fuses I have taken unsigned led blinky code and implemented HAB audit API (report status and report event). EVK board is open and fuses not burnt Unsigned image(CSF=0) - HAB fail with 4 events Signed image - HAB pass 0 events  So i assumed that even board is open HAB authentication runs and hence i can see events. But now i taken project firmware with same IVT (CSF=0) and i implemented same HAB audit but this time Unsigned image - HAB pass with 0 events Led blinky logs (unsigned): RVT header at 0x 2002c0: tag=0xdd len=0x 038 par=0x43 HAB: RVT version = 0x 40305 HAB: report_status() = 0x33(HAB_FAILURE) HAB: config = 0xf0(HAB_CFG_OPEN) HAB: state = 0x66(HAB_STATE_NONSECURE) HAB: event[0], 8 bytes HAB: hdr: tag=0xdb len=0x 0 8 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x22(HAB_INV_ADDRESS) context=0x a(HAB_CTX_AUTHENTICATE) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 8 43 33 22 a 0 HAB: event[1], 20 bytes HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) context=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 60 0 10 0 0 0 0 20 HAB: event[2], 20 bytes HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) context=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 60 0 10 20 0 0 0 1 HAB: event[3], 20 bytes HAB: hdr: tag=0xdb len=0x 014 par=0x43 HAB: status=0x33(HAB_FAILURE) reason=0x c(HAB_INV_ASSERTION) context=0xa0(HAB_CTX_ASSERT) engine=0x 0(HAB_ENG_ANY) HAB: raw: db 0 14 43 33 c a0 0 0 0 0 0 60 0 20 0 0 0 0 4 HAB: VERDICT = 4 EVENT(S) LOGGED -- see decoded fields above but  my  project firmware(unsigned) HAB: RVT header at 0x002002c0 HAB: tag=0xdd len=0x0038 par=0x43 HAB: RVT found and valid HAB: RVT version = 0x00040305 HAB: report_status() = 0xf0 HAB: config = 0xf0 HAB: state = 0x66 HAB: querying audit events... HAB: report_event(idx=0) returned 0x33 (no events or query HAB: VERDICT = PASS (no audit events logged) Why there is a difference  Re: Test HAB on IMXRT1024 without burning fuses Hi @Abhay2080 , Thanks for the reaching out! May I have the sdk version that has the led blinky code and the SPT version used for building the image?  Thank for your patience! Have a great day, Kan ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses This is SDK version - SDK_25_06_00_MIMXRT1024xxxxx SPT version - 26.06 MCU xpresso - v25.6.136 unsigned image for led blinky if compiled through mcu xpresso and then signed image is created through both SPT and CST 4.0 Re: Test HAB on IMXRT1024 without burning fuses Hi @Abhay2080 , Thanks for the info and detailed logs — this is a great observation and the difference comes down to one thing: whether the CSF pointer in the IVT is zero or non-zero. How HABv4 decides to authenticate On i.MX RT10xx, the Boot ROM checks the CSF field of the IVT before deciding whether to attempt authentication: If CSF = 0x00000000 (null): HAB skips authentication entirely — no events are logged and report_status() returns 0xf0 (HAB_SUCCESS). This is not a "pass" in the security sense; authentication was never attempted. If CSF = non-zero (points to a CSF region): HAB attempts authentication — if the signature is missing or invalid, failure events are logged and report_status() returns 0x33 (HAB_FAILURE). On an open board this does not halt boot. Why your LED blinky (unsigned) showed 4 failure events Your LED blinky binary was built by MCUXpresso IDE and then processed through SPT (Secure Provisioning Tool) to create a bootable image. Even for an "unsigned" build type, SPT's bootable image pipeline writes a non-zero CSF pointer into the IVT and reserves a CSF region in the image. The Boot ROM found that non-zero pointer, attempted authentication, found no valid signature data, and logged the 4 events: Event 0 ( HAB_INV_ADDRESS / HAB_CTX_AUTHENTICATE 😞 HAB tried to locate the image for authentication but encountered an invalid address — consistent with an empty/stub CSF region. Events 1–3 ( HAB_INV_ASSERTION / HAB_CTX_ASSERT 😞 HAB's internal assertion checks on the image regions failed because there is no real CSF data present. Why your project firmware (unsigned) showed 0 events Your project firmware was compiled directly through MCUXpresso IDE without going through SPT's bootable image generation step. The resulting binary has a genuinely null CSF pointer in the IVT. The Boot ROM sees CSF = 0 , skips authentication entirely, and HAB reports clean. The 0x33 return from report_event(idx=0) in your log means "no event at this index" (i.e., the query itself returns HAB_FAILURE because there is nothing stored), not that HAB detected a failure. Quick way to verify Inspect the IVT of both binaries at byte offset +0x18 (the CSF field): SPT-built LED blinky: non-zero value (e.g., 0x60006xxx or similar flash address) Your project firmware: 0x00000000 To properly test HAB audit with your project firmware You need to build the bootable image through SPT (or elftosb/nxpimage) so that a CSF region is embedded in the image — even for an unsigned build. This ensures the Boot ROM attempts authentication and HAB events are generated. Only then will your HAB audit code capture meaningful data for testing purposes. In summary, your original assumption is correct that HAB authentication runs on an open board — but only when a non-zero CSF pointer is present in the IVT. The behavior you observed with your project firmware is expected and correct. Hope this helps clarify! Let us know if you have further questions.   Have a great day, Kan ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses Yes Kan_Li the explaination you mentioned is correct but the correct scenario us - LED blinky (unsigned) -> This binary i generated through MCU xpresso IDE only (not processed through SPT). size - 30KB And even i compare the IVT for both led blinky unsigned and my project unsigned both have exactly same IVT (CSF=0) .- size 64KB See hex compare left side is Led blinky and right side is my project firmware Also please mention what is the right way to test HAB without burning fuses Abhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.png Re: Test HAB on IMXRT1024 without burning fuses Hi @Abhay2080 , Thank you for the hex comparison — this gives a much clearer picture. You're correct that both binaries have identical IVTs with CSF=0. The actual root cause is in the Boot Data size field, not the CSF pointer. What the hex dump shows Looking at the Boot Data structure at file offset 0x1020 (pointed to by boot_data in the IVT): Field LED Blinky Project Firmware start (0x1020) 0x60000000 0x60000000 size (0x1024) 0x00004000 = 16 KB 0x00000400 = 1 KB plugin (0x1028) 0x00000000 0x00000000 Both CSF fields in the IVT are 0x00000000 — confirmed identical. Why the HAB behavior differs The HAB library's authenticate_image() uses the Boot Data region ( start to start + size ) to determine the image scope before attempting authentication. Crucially, the IVT itself is located at flash offset 0x1000 (= 4096 bytes from base). HAB checks whether the IVT falls within the declared Boot Data region: LED Blinky — Boot Data declares 16 KB ( 0x4000 ). IVT at offset 0x1000 (4096) is inside [0x60000000, 0x60004000) . HAB finds the IVT, attempts authenticate_image() , encounters CSF=0 → logs HAB_INV_ADDRESS + 3 assertion failures → report_status() = HAB_FAILURE . Project Firmware — Boot Data declares only 1 KB ( 0x400 ). IVT at offset 0x1000 (4096) is outside [0x60000000, 0x60000400) . HAB cannot locate a valid IVT within the declared region → authentication is skipped entirely → report_status() = HAB_SUCCESS , 0 events. In summary: the 1 KB Boot Data size in your project firmware is incorrectly too small — the IVT sits beyond that boundary, so HAB never touches it. Note that neither Boot Data size matches the actual binary file sizes (30 KB and 64 KB respectively). Both images have Boot Data that was generated by the IDE directly rather than through a proper bootable image builder. The difference in how wrong the size is determines whether HAB engages. Root cause When you compile directly from MCUXpresso IDE without going through SPT or elftosb, the resulting binary does not have a properly formed Boot Data structure for HAB evaluation. The size field ends up set to a value that may or may not encompass the IVT, giving unpredictable HAB audit results. The correct way to test HAB without burning fuses The reliable methodology on an Open board is: Build through SPT or elftosb — this correctly populates the Boot Data ( start , size covering the entire image from base to end of CSF/code), FCB, IVT, and optionally the CSF block. Never test HAB using a raw IDE-compiled .bin — the Boot Data will be unreliable. Test with an unsigned image (CSF=0, correct Boot Data) — HAB will attempt authentication, find no CSF, and log HAB_INV_ADDRESS + assertion failures. report_status() = HAB_FAILURE . This confirms HAB is running correctly and your audit code is working. This is exactly what your LED blinky + SPT result showed. Test with a signed image (CSF valid, correct Boot Data) — build a properly signed image via SPT or CST 4.0 with your keys. On an Open board, HAB authenticates the image with the embedded SRK/CSF. If the signature is valid → report_status() = HAB_SUCCESS , 0 events. If the signature is wrong or absent → failure events. Boot continues in both cases on an Open board. Confidence check before burning fuses — only after you see HAB_SUCCESS with your signed image on an Open board should you proceed to burn the SRK hash fuses. This validates the entire authentication chain safely. Recommended test sequence (all on Open board): Step 1: SPT -> Build unsigned image -> Flash -> Run HAB audit Expected: HAB_FAILURE, 4 events (HAB is running, audit code is correct) Step 2: SPT/CST -> Build signed image -> Flash -> Run HAB audit Expected: HAB_SUCCESS, 0 events (signing + authentication working end-to-end) Step 3: Corrupt the signed image or swap keys -> Flash -> Run HAB audit Expected: HAB_FAILURE, events logged (confirms rejection logic) Step 4: Burn fuses (SRK hash) -> confirm Step 2 still passes on Closed board Hope this fully explains the difference. The key takeaway is to always use SPT/elftosb for building the bootable image when testing HAB — never the raw IDE binary. Have a great day, Kan ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses @Kan_Li i think you misunderstood since Boot data is stored in little Endian 32-bit word, So Start in both binaries are same Start 0x60000000 Boot data size is LED blinky - 0x00400000 (4MB) My project it is - 0x00040000 (256KB) So as per your explanation IVT falls inside the defined boot data Re: Test HAB on IMXRT1024 without burning fuses Hi @Abhay2080 , You're right — apologies for the byte order error. Both Boot Data sizes (4 MB and 256 KB) include the IVT, so my previous explanation was incorrect. Root cause: HAB event log cleared by startup code The Boot ROM generates the same 4 failure events for both images (CSF=0, authentication attempted). The difference is that your project firmware's C runtime startup zeroes a larger OCRAM region — which includes the area where the HAB library stores its event log and status — before your HAB audit code runs. This is why report_status() returns 0xF0 and 0 events are found; the HAB state itself was wiped. How To Fix: Move your HAB audit calls to Reset_Handler , before the BSS zero-init loop, and the events will be visible. Please kindly let me know if you have any further question. Have a great day, Kan ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. -------------------------------------------------------------------------------
查看全文
i.MX8QXP C0:崩溃证据捕获 ramoops 跨越 SCwatchdogresetCortex-M4 监督 A35 集群 NXP团队您好, 平台详情: SoC:i.MX8QXP C0,基于 MEK 参考芯片的定制板 BSP:NXP Linux 6.6.3 [状态精确标签,例如:lf-6.6.3-1.0.0],约克托·斯卡斯盖普 SCFW 版本:[运行 scu_rm / 检查启动日志 — 粘贴版本] SECO/AHAB:[已启用/未启用,版本] U-Boot:[2024.04/tag] Cortex-M4 (CM4_0):当前未使用,未加载固件 应用案例:量产汽车仪表盘;A35 运行 Linux/Weston HMI 问题陈述: 在生产环境中,我们偶尔会看到 A35 复合体崩溃或死机(内核崩溃/锁定)。目前我们没有持久的崩溃证据,也没有自主恢复功能——集群会一直处于崩溃状态,直到手动重启电源,并且无法调试现场/DV 事件。我们希望实现 (a) 使用 pstore/ramoops 在看门狗重置时保持 panic 日志的持久性,以及 (b) 由 CM4_0 监督 A35,并能够仅重置 A35 分区。 在 i.MX8QXP C0 上,当系统看门狗(imx-sc-wdt,由 SCFW 处理)触发时,执行的是哪种类型的 RESET——完整的 SoC/板 RESET 还是 A 集群分区 RESET?这可以通过SCFW板级文件或sc_pm API进行配置吗? Re: i.MX8QXP C0: crashevidence capture ramoops across SCwatchdogresetCortex-M4 supervision A35 clus 你好, 是的,您可以使用由 SCFW 管理的虚拟看门狗来重置分区 SC_TIMER_WDOG_ACTION_PARTITION 的行为正是您想要的,它只会重置 Linux/A35 分区。 此外,还可以通过 SCFW sc_pm API 直接调用 A35 分区上的 sc_pm_reset_partition() 函数,从 CM4_0 固件中实现同样的效果,这使得 CM4_0 能够独立于看门狗机制进行完全的监控控制。 您可以在您所使用的特定版本的 SCFW 移植指南中找到更多相关信息。 此致敬礼/Saludos, 阿尔多。
查看全文
在不烧断熔丝的情况下测试 IMXRT1024 上的 HAB 功能 我使用了未签名的 LED 闪烁代码,并实现了 HAB 审计 API(报告状态和报告事件)。EVK板开路,熔丝未烧断。 无符号镜像(CSF=0)- HAB 失败,共发生 4 个事件 签名图像 - HAB 通过 0 事件 所以我假设即使板处于打开状态,HAB 认证也会运行,因此我可以看到事件。 但是现在我使用了相同的 IVT (CSF=0) 项目固件,并实施了相同的 HAB 审计,但这次是 未签名图像 - HAB 通过,事件数为 0 LED闪烁日志(未签名) : RVT 标头位于 0x2002c0:标签=0xdd 长度=0x038 参数=0x43 HAB:RVT 版本 = 0x 40305 HAB:report_status() = 0x33(HAB_FAILURE) HAB:配置 = 0xf0(HAB_CFG_OPEN) HAB:状态 = 0x66(HAB_STATE_NONSECURE) HAB:事件[0],8 字节 HAB:hdr:标签=0xdb 长度=0x08 参数=0x43 HAB:状态=0x33(HAB_FAILURE) 原因=0x22(HAB_INV_ADDRESS) 上下文=0xa(HAB_CTX_AUTHENTICATE) 引擎=0x0(HAB_ENG_ANY) HAB:原始数据:db 0 8 43 33 22 a 0 HAB:事件[1],20 字节 HAB:hdr:标签=0xdb 长度=0x014 参数=0x43 HAB:状态=0x33(HAB_FAILURE) 原因=0xc(HAB_INV_ASSERTION) 上下文=0xa0(HAB_CTX_ASSERT) 引擎=0x0(HAB_ENG_ANY) HAB:原始数据:db 0 14 43 33 c a0 0 0 0 0 0 60 0 10 0 0 0 0 20 HAB:事件[2],20 字节 HAB:hdr:标签=0xdb 长度=0x014 参数=0x43 HAB:状态=0x33(HAB_FAILURE) 原因=0xc(HAB_INV_ASSERTION) 上下文=0xa0(HAB_CTX_ASSERT) 引擎=0x0(HAB_ENG_ANY) HAB:原始数据:db 0 14 43 33 c a0 0 0 0 0 0 60 0 10 20 0 0 0 1 HAB:事件[3],20 字节 HAB:hdr:标签=0xdb 长度=0x014 参数=0x43 HAB:状态=0x33(HAB_FAILURE) 原因=0xc(HAB_INV_ASSERTION) 上下文=0xa0(HAB_CTX_ASSERT) 引擎=0x0(HAB_ENG_ANY) HAB:原始数据:db 0 14 43 33 c a0 0 0 0 0 0 60 0 20 0 0 0 0 4 HAB:结果 = 4 个事件已记录 -- 请参阅上面的解码字段,但 我的项目固件(未签名) HAB:RVT 标头位于 0x002002c0 HAB:标签=0xdd 长度=0x0038 参数=0x43 HAB:RVT已找到且有效 HAB:RVT 版本 = 0x00040305 HAB:report_status() = 0xf0 HAB:配置 = 0xf0 HAB:状态 = 0x66 HAB:正在查询审计事件... HAB:report_event(idx=0) 返回 0x33(无事件或查询) HAB:结果 = 通过(未记录任何审计事件) 为什么会有差异 Re: Test HAB on IMXRT1024 without burning fuses 你好@Abhay2080 , 感谢您的联系!请问能否提供包含LED 闪烁代码的 SDK 版本以及用于构建镜像的 SPT 版本? 感谢您的耐心等待! 祝你有美好的一天, 坎 ------------------------------------------------------------------------------- 笔记: - 如果此回复解答了您的问题,请点击“标记为正确答案”按钮。谢谢你! - 我们会持续关注帖子,从最后一条回复发出后持续7周,之后的回复将被忽略。 如果您之后有相关问题,请另开新帖并引用已关闭的帖子。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses 这是 SDK 版本 - SDK_25_06_00_MIMXRT1024xxxxx SPT 版本 - 26.06 MCU xpresso - v25.6.136 如果使用 MCU Xpresso 编译,则 LED 闪烁灯的未签名镜像;如果使用 SPT 和 CST 4.0 编译,则生成的是已签名镜像。 Re: Test HAB on IMXRT1024 without burning fuses 你好@Abhay2080 , 感谢您提供的信息和详细日志——这是一个很棒的观察,区别归根结底在于一件事: IVT 中的 CSF 指针是零还是非零。 HABv4 如何决定进行身份验证 在 i.MX RT10xx 上,启动 ROM 会检查 IVT 的 CSF 字段,然后再决定是否尝试进行身份验证: 如果 CSF = 0x00000000 (null):HAB完全跳过身份验证——不记录任何事件,并且 report_status() 返回 0xf0 (HAB_SUCCESS)。从网络安全意义上讲,这并非“通行证”;从未尝试进行身份验证。 如果 CSF = non-zero (指向 CSF 区域):HAB尝试进行身份验证——如果签名缺失或无效,则会记录失败事件,并且 report_status() 返回 0x33 (HAB_FAILURE)。在开放式电路板上,这不会阻止启动。 为什么您的 LED 指示灯(未签名)显示 4 个故障事件 您的 LED 闪烁二进制文件由 MCUXpresso IDE 构建,然后通过 SPT(安全配置工具)处理以创建可启动映像。即使对于“无符号”版本类型,SPT 的可引导映像管道也会将非零 CSF 指针写入IVT,并在映像中保留一个 CSF 区域。启动 ROM 检测到非零指针,尝试进行身份验证,但未找到有效的签名数据,并记录了以下 4 个事件: 事件 0 ( HAB_INV_ADDRESS / HAB_CTX_AUTHENTICATE 😞 HAB 尝试查找用于身份验证的图像,但遇到了无效地址——这与空/短截线 CSF 区域一致。 事件 1–3 ( HAB_INV_ASSERTION / HAB_CTX_ASSERT 😞 由于没有真正的脑脊液数据,HAB 对图像区域的内部断言检查失败了。 为什么您的项目固件(未签名)显示 0 个事件 您的项目固件直接通过 MCUXpresso IDE 编译,而没有经过 SPT 的可启动映像生成步骤。生成的二进制文件中,IVT 的CSF 指针确实为空。启动 ROM 检测到 CSF = 0 ,完全跳过身份验证,HAB 报告干净。日志中 report_event(idx=0) 返回的 0x33 表示“此索引处没有事件”(即,查询本身返回 HAB_FAILURE,因为没有存储任何内容),而不是 HAB 检测到了故障。 快速验证方法 检查两个二进制文件在字节偏移量 +0x18 处的 IVT(CSF 字段): SPT内置LED闪烁:非零值(例如, 0x60006xxx 或类似的闪存地址) 您的项目固件: 0x00000000 要使用您的项目固件正确测试 HAB 审计 您需要通过 SPT(或 elftosb/nxpimage)构建可引导映像,以便将 CSF 区域嵌入映像中——即使对于未签名的构建也是如此。这样可以确保启动 ROM 尝试进行身份验证并生成 HAB 事件。只有这样,您的 HAB 审计代码才能捕获用于测试目的的有意义的数据。 总而言之,你最初的假设是正确的,即 HAB 认证是在开放的板上运行的——但仅当 IVT 中存在非零的 CSF 指针时才如此。您观察到的项目固件的行为是预期的,也是正确的。 希望这能有所帮助!如果您还有其他问题,请与我们联系。   祝你有美好的一天, 坎 ------------------------------------------------------------------------------- 笔记: - 如果此回复解答了您的问题,请点击“标记为正确答案”按钮。谢谢你! - 我们会持续关注帖子,从最后一条回复发出后持续7周,之后的回复将被忽略。 如果您之后有相关问题,请另开新帖并引用已关闭的帖子。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses 是的,Kan_Li,你提到的解释是正确的,但正确的场景是—— LED 闪烁(无符号)-> 此二进制文件仅通过 MCU xpresso IDE 生成(未通过 SPT 处理)。大小 - 30KB 即使我比较了 LED 闪烁(无符号)和我的项目(无符号)的 IVT,它们的 IVT 也完全相同(CSF=0)。大小 64KB 参见十六进制比较 左侧是 LED 闪烁灯,右侧是我的项目固件。 另外,请问在不烧断熔丝的情况下测试HAB的正确方法是什么? Abhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.pngAbhay2080_0-1788931301704.png Re: Test HAB on IMXRT1024 without burning fuses 你好@Abhay2080 , 感谢您提供的十六进制对比图——这让情况变得清晰多了。你说得对,这两个二进制文件都具有相同的 IVT,CSF=0。真正的根本原因在于启动数据 size 字段,而不是 CSF 指针。 十六进制转储显示的内容 查看文件偏移量 0x1020 处的启动数据结构(在 IVT 中由 boot_data 指向): 字段 LED闪烁灯 项目固件 start (0x1020) 0x60000000 0x60000000 size (0x1024) 0x00004000 = 16 KB 0x00000400 = 1 KB plugin (0x1028) 0x00000000 0x00000000 IVT 中的两个 CSF 场均为 0x00000000 — 已确认相同。 为什么有害藻华的行为会有所不同 HAB 库的 authenticate_image() 使用启动数据区域( start 到 start + size )来确定映像范围,然后再尝试进行身份验证。关键在于, IVT 本身位于闪存偏移量 0x1000 (= 从基址算起 4096 字节) 。HAB 检查 IVT 是否位于已声明的启动数据区域内: LED 闪烁— 启动数据声明 16 KB ( 0x4000 )。偏移量 0x1000 (4096) 处的 IVT 位于 [0x60000000, 0x60004000) 内。HAB 找到 IVT,尝试 authenticate_image() ,遇到 CSF=0 → 记录 HAB_INV_ADDRESS + 3 个断言失败 → report_status() = HAB_FAILURE 。 项目固件— 启动数据仅声明 1 KB ( 0x400 )。偏移量 0x1000 (4096) 处的 IVT 位于 [0x60000000, 0x60000400) 之外。HAB 无法在声明的区域内找到有效的 IVT →完全跳过身份验证 → report_status() = HAB_SUCCESS ,0 个事件。 总结一下:你的项目固件中的 1 KB 启动数据大小太小了——IVT 超出了该边界,因此 HAB 永远不会触及它。 请注意,启动数据的大小与实际二进制文件的大小(分别为 30 KB 和 64 KB)不符。这两个镜像的启动数据都是由 IDE 直接生成的,而不是通过正规的启动镜像生成器生成的。尺寸误差的程度决定了有害藻华是否会发生。 根本原因 如果直接从 MCUXpresso IDE 编译而不经过 SPT 或 elftosb,则生成的二进制文件没有用于 HAB 评估的正确格式的启动数据结构。 size 字段最终被设置为一个可能包含也可能不包含 IVT 的值,从而导致 HAB 审核结果不可预测。 不烧断熔丝测试HAB的正确方法 在开放板中,可靠的方法是: 通过 SPT 或 elftosb 构建——这将正确填充启动数据( start 、 size ,涵盖从基础到 CSF/代码末尾的整个映像)、FCB、IVT,以及可选的 CSF 块。切勿使用原始的 IDE 编译的 .bin 测试 HAB – 启动数据将不可靠。 使用未签名映像进行测试(CSF=0,正确的启动数据) — HAB 将尝试进行身份验证,找不到 CSF,并记录 HAB_INV_ADDRESS + 断言失败。 report_status() = HAB_FAILURE 。这证实了 HAB 运行正常,并且您的审计代码有效。这与你的 LED 闪烁 + SPT 测试结果完全一致。 使用签名镜像进行测试(CSF 有效,正确的启动数据) — 构建一个正确签名的镜像通过 SPT 或 CST 4.0 使用您的密钥。在 Open 板上,HAB 使用嵌入式 SRK/CSF 对映像进行认证。如果签名有效 → report_status() = HAB_SUCCESS ,0 个事件。如果签名错误或缺失 → 发生故障事件。在两种情况下,Open 板上的启动过程都会继续进行。 在烧毁熔丝之前进行置信度检查——只有在 Open 板上看到带有签名映像的 HAB_SUCCESS 后,才能继续烧毁 SRK 哈希熔丝。这样可以安全地验证整个身份验证链。 推荐测试顺序(全部在 Open 板上进行): Step 1: SPT -> Build unsigned image -> Flash -> Run HAB audit Expected: HAB_FAILURE, 4 events (HAB is running, audit code is correct) Step 2: SPT/CST -> Build signed image -> Flash -> Run HAB audit Expected: HAB_SUCCESS, 0 events (signing + authentication working end-to-end) Step 3: Corrupt the signed image or swap keys -> Flash -> Run HAB audit Expected: HAB_FAILURE, events logged (confirms rejection logic) Step 4: Burn fuses (SRK hash) -> confirm Step 2 still passes on Closed board 希望这能彻底解释清楚二者的区别。关键在于,在测试 HAB 时,始终使用 SPT/elftosb 构建可启动映像,而绝不能使用原始 IDE 二进制文件。 祝你有美好的一天, 坎 ------------------------------------------------------------------------------- 笔记: - 如果此回复解答了您的问题,请点击“标记为正确答案”按钮。谢谢你! - 我们会持续关注帖子,从最后一条回复发出后持续7周,之后的回复将被忽略。 如果您之后有相关问题,请另开新帖并引用已关闭的帖子。 ------------------------------------------------------------------------------- Re: Test HAB on IMXRT1024 without burning fuses @Kan_Li我觉得你误解了,因为启动数据是以小端序 32 位字存储的,所以两个二进制文件中的起始位置是相同的。 起始地址 0x60000000 启动数据大小为 LED闪烁 - 0x00400000 (4MB) 我的项目文件大小为 - 0x00040000 (256KB) 所以根据你的解释,IVT 属于已定义的启动数据范围。 Re: Test HAB on IMXRT1024 without burning fuses 你好@Abhay2080 , 你说得对——很抱歉出现了字节顺序错误。两种启动数据大小(4 MB 和 256 KB)都包含 IVT,所以我之前的解释是错误的。 根本原因:HAB 事件日志被启动代码清除 Boot ROM 为两个映像生成相同的 4 个故障事件(CSF=0,尝试身份验证)。区别在于,你的项目固件的 C 运行时启动会在 HAB 审计代码运行之前,将一个更大的 OCRAM 区域(包括 HAB 库存储其事件日志和状态的区域)清零。这就是为什么 report_status() 返回 0xF0 且未找到任何事件;HAB 状态本身已被清除。 解决方法:将 HAB 审计调用移至 Reset_Handler ,在 BSS 零初始化循环之前,事件就会可见。 如果您还有其他问题,请随时告诉我。 祝你有美好的一天, 坎 ------------------------------------------------------------------------------- 笔记: - 如果此回复解答了您的问题,请点击“标记为正确答案”按钮。谢谢你! - 我们会持续关注帖子,从最后一条回复发出后持续7周,之后的回复将被忽略。 如果您之后有相关问题,请另开新帖并引用已关闭的帖子。 -------------------------------------------------------------------------------
查看全文
i.MX8QXP C0: crashevidence capture ramoops across SCwatchdogresetCortex-M4 supervision A35 cluster Hi NXP Team,  Platform details: SoC: i.MX8QXP C0, custom board based on MEK reference BSP: NXP Linux 6.6.3 [state exact tag, e.g. lf-6.6.3-1.0.0], Yocto Scarthgap SCFW version: [run scu_rm / check boot log — paste version] SECO/AHAB: [enabled/not enabled, version] U-Boot: [2024.04/tag] Cortex-M4 (CM4_0): currently unused, no firmware loaded Use case: production automotive instrument cluster; A35 runs Linux/Weston HMI Problem statement: In production we occasionally see the A35 complex crash or hard-hang (kernel panic / lockup). Today we have no persisted crash evidence and no autonomous recovery — the cluster stays dead until a manual power cycle, and field/DV occurrences cannot be debugged. We want to implement (a) panic-log persistence across a watchdog reset using pstore/ramoops, and (b) supervision of the A35 by the CM4_0 with the ability to reset only the A35 partition. On i.MX8QXP C0, when the system watchdog (imx-sc-wdt, handled by SCFW) fires, what type of reset is performed — full SoC/board reset or A-cluster partition reset? Is this configurable via SCFW board file or sc_pm API? Re: i.MX8QXP C0: crashevidence capture ramoops across SCwatchdogresetCortex-M4 supervision A35 clus Hello, yes, you may use a virtual watchdog managed by the SCFW to reset the partition SC_TIMER_WDOG_ACTION_PARTITION behavior is what you want it resets only the Linux/A35 partition. Also, there is a way to achieve the same effect from CM4_0 firmware directly by calling sc_pm_reset_partition() on the A35 partition via the SCFW sc_pm API, which gives the CM4_0 full supervisory control independent of the watchdog mechanism. You can find more information about this on the SCFW porting guide for the specific version that you are using. Best regards/Saludos, Aldo.
查看全文
S32K3X8EVB-Q289HWUMのオープンボードデバッガを用いた外部MCU(S32K358)のプログラミング こんにちは、 外部MCU S32K358を、S32K3X8EVB-Q289HWUMボードのオンボードデバッガと20ピンのCortex Debug D ETMコネクタに接続し、J55ケーブルケーブルを使ってプログラムしようとしています。しかし、エラーが発生します。コントローラーをうまくプログラムするために実際に何をすればいいのか教えてください。 Yash2530_0-1789183591258.jpegYash2530_0-1789183591258.jpeg CMD>VC オブジェクトファイルのCRC-16をデバイス範囲と照合しています... ブロック 00400000-0042F4B7 ... 計算されたCRC-16がブロックと一致しません。(ファイル = $A9EE、デバイス = $EDEF) デバイスのフラッシュメモリの検証エラー Flashプログラミング中にエラーが発生しました。 情報: DAP IDCODE = 0x6BA02477 情報:DAPの電源投入に成功しました。DP CTRL/STAT = 0xF0000000 リセットスクリプトを開始します (C:\NXP\S32DS.3.6.7\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_6.1.8.202603121731\supportFiles_ARM\NXP\S32K3xx\S32K358.mac)... REM MC_MEモジュールで選択したコアのクロックを有効にする 200ミリ秒遅延します... 終わり。 REM RAMとDMAを初期化します。 REM DMA TCD の初期化: REM 使用する各コアに対して、有効な実行可能コードをRAMにコピーします。 REM MC_ME で必要なコアを有効にする: 20ミリ秒遅延します... 終わり。 20ミリ秒遅延します... 終わり。 リセットスクリプト (C:\NXP\S32DS.3.6.7\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_6.1.8.202603121731\supportFiles_ARM\NXP\S32K3xx\S32K358.mac)完了しました。 PEmicro GDB 起動失敗: フラッシュプログラミング中にエラーが発生しました。デバッグセッションを終了します。 PEエラー:デバイスへのダウンロード中にエラーが発生しました。デバッグセッションを終了します。 127.0.0.1 経由で「127.0.0.1」から切断されました。ポート「53100」による6224からの切断 PEエラー: エラー: 応答を送信しようとしましたが、接続が既に閉じられています。 127.0.0.1 経由で「127.0.0.1」から切断されました。ポート「53104」による7224からの切断 情報: DAP IDCODE = 0x6BA02477 ターゲットとの接続が切断されました。 よろしくお願いいたします。 ヤシュ・グプタ Re: Programming External MCU (S32K358) using open board debugger of S32K3X8EVB-Q289HWUM ハイ まず第一に、オンボードデバッガーの使用はお勧めしません。S32K3X8EVBのオンボードデバッガは、評価ボード上でMCUのプログラミングとデバッグを行うために設計されています。このデバッガを使って外部カスタムS32K358ボードをプログラムまたはデバッグすることは、PEmicroによる公式推奨のユースケースではありません。したがって、NXPはこの構成での適切な動作を保証することはできません。 オンボードデバッガに関する制限事項については、以前に「 S32K142-Q48のプログラム/デバッグに関する問題」という議論の中で言及しました。PEmicroがS32K3オンボードデバッガの制限を変更したかどうかは把握していません。 たとえPEmicroにそのような制限がなくても、オンボードS32K358がデバッグャインターフェース回路を通じて電源供給されていないか(オンボードVDD_HV_A、VDD_HV_B、V11などを測定して確認)、またはJTAG_TCLK/SWD_CLKラインがオンボードS32K358から切り離されているかを必ず確認してください。 さらに、オンボードのデバッガインターフェースの信号電圧がカスタムボードの電圧と一致しているかも確認する必要があります。 よろしくお願いいたします ロビン
查看全文
使用 S32K3X8EVB-Q289HWUM 的开放式板调试器对外部 MCU (S32K358) 进行编程 你好, 我正在尝试使用连接到 20 针 Cortex Debug D ETM 连接器的 S32K3X8EVB-Q289HWUM 板的板载调试器,以及 J55 电缆,对我的外部 MCU S32K358 进行编程。但我遇到了错误。请告诉我我究竟需要做些什么才能成功对我的控制器进行编程。 Yash2530_0-1789183591258.jpegYash2530_0-1789183591258.jpeg CMD>VC 正在验证目标文件 CRC-16 校验值是否与设备范围匹配…… 区块 00400000-0042F4B7 ... 计算出的 CRC-16 值与数据块不匹配。(文件 = $A9EE,设备 = $EDEF) 验证设备闪存时出错 Flash编程过程中发生错误。 信息:DAP IDCODE = 0x6BA02477 信息:DAP 已成功启动。DP CTRL/STAT = 0xF0000000 启动 RESET 脚本 (C:\NXP\S32DS.3.6.7\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_6.1.8.202603121731\supportFiles_ARM\NXP\S32K3xx\S32K358.mac)... REM 启用 MC_ME 模块中选定内核的时钟 延迟200毫秒…… 完毕。 REM 初始化 RAM 和 DMA: REM 初始化 DMA TCD: REM 将有效的可执行代码复制到每个要使用的核心的 RAM 中。 REM 启用 MC_ME 中所需的内核: 延迟20毫秒…… 完毕。 延迟20毫秒…… 完毕。 重置脚本 (C:\NXP\S32DS.3.6.7\eclipse\plugins\com.pemicro.debug.gdbjtag.pne_6.1.8.202603121731\supportFiles_ARM\NXP\S32K3xx\S32K358.mac)完全的。 PEmicro GDB 启动失败:闪存编程期间出错。调试会话结束。 PE错误:下载到设备时出错。调试会话结束。 通过 127.0.0.1 与“127.0.0.1”断开连接。通过端口“53100”与6224断开连接 PE-ERROR:错误:尝试发送响应,但连接已关闭。 通过 127.0.0.1 与“127.0.0.1”断开连接。通过端口“53104”与7224断开连接 信息:DAP IDCODE = 0x6BA02477 目标设备已断开连接。 问候, 亚什·古普塔 Re: Programming External MCU (S32K358) using open board debugger of S32K3X8EVB-Q289HWUM HI 首先,我不建议使用板载调试器。S32K3X8EVB 板载调试器设计用于在评估板上对 MCU 进行编程和调试。使用此调试器对外部定制的 S32K358 板进行编程或调试并非 PEmicro 官方推荐的使用场景;因此,NXP 无法保证在此配置下正常运行。 关于板载调试器的局限性,之前在“ S32K142-Q48 的程序/调试问题”讨论中已经提到过。我不知道 PEmicro 是否更改了 S32K3 板载调试器的限制。 即使 PEmicro 没有此类限制,您仍然必须确保板载 S32K358 没有通过调试器接口电路供电(通过测量板载 VDD_HV_A、VDD_HV_B、V11 等进行验证),或者 JTAG_TCLK/SWD_CLK 线已与板载 S32K358 断开。 此外,您还需要验证板载调试器接口的信号电压是否与您的定制板上的电压相匹配。 此致敬礼, Robin
查看全文
如何编写NFC芯片 我正在尝试用iPhone 12 Pro Max对NFC 215芯片进行编程。我正在使用NXP标签写入器应用程序。在NXP标签写入器应用程序中,我点击“新建”、“网站”,然后输入描述信息以及URI类型和URI数据。然后我点击“保存并写入”,我收到一条通知,提示“NDEF 记录已成功保存到我的数据集中”。当我关闭应用程序并点击芯片时,没有任何反应。我还尝试用另一部手机,但仍然不行。大家有什么想法或建议吗? nfc error.PNGNFC错误.PNG Re: How to write nfc chip 你好@Erik3 “已保存到我的数据集中”这条消息表示数据已存储在应用程序本地,尚未写入芯片。请尝试: 在 TagWriter 中,转到“我的数据集”→ 选择您的条目 → TAP “写入” 将 iPhone 靠近芯片,直到看到写入标签确认信息。 此外,您还可以使用 NFC TagInfo 应用程序扫描芯片,并验证其当前内容和状态。
查看全文