2191978_zh-CN

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

2191978_zh-CN

2191978_zh-CN

安装 HSE 后应用程序固件损坏

使用固件 S32K3_HSE_DemoExamples_1_0_0 安装 HSE 后,我安装了完整的内存。

我的应用程序代码不再工作。在调试模式下,尝试访问闪存时可能会出现致命故障。

要与 HSE 合作,我是否需要更改申请中的某些内容?

我只想让 HSE 生成随机数。

Re: application firmware broke after installing HSE

你好@ggreguer

如果 HSE 已启动并运行,如果仍处于 CUST_DEL 生命周期,则可以使用服务 HSE_SRV_ID_ERASE_FW。这将擦除 HSE 固件和 SYS_IMG,所以从 HSE 的角度来看,它几乎就像 "RESET" 一样。我之所以说 "几乎",是因为它不会影响在 OTP 存储器 UTEST 闪存中编程的数据。这意味着,如果UTEST 中的 HSE 功能标志已编程,且已安装 FULL_MEM 固件,则 HSE 保留区域仍将保留。如果安装了 AB_SWAP,UTEST 中的 OTA 标志已编程,因此即使在 HSE FW 擦除后,仍会保留 AB_SWAP 固件的区域。因此,它不是 100% RESET。

如果 HSE 固件出了问题,导致无法启动,则需要恢复固件或通过 SBAF 擦除固件 - 这可以通过握手机制完成。遗憾的是,在这种情况下别无他法。

此致,

Lukas

Re: application firmware broke after installing HSE

嗨,@lukaszadrapa,你好吗?我会检查这些标志,进一步调查可能发生的情况。

同时,有没有办法对这些锁定的 MCU 进行主 RESET?我需要 RESET 才能从 HSE 中移除所有内容,让它恢复正常工作。我锁定了好几个板,它们确实是必要的。

Re: application firmware broke after installing HSE

如果 HSE 出了问题(时钟配置错误导致的致命错误、HSE 内存资源中的 ECC 错误......),则有可能闪存已为 HSE 锁定,但由于某些错误,操作尚未完成。你可以在 0x4039_C028 位的 16-29 位查看 HSE GPR 寄存器(参见 HSE 固件参考手册 v2.6,表 143)。HSE_CONFIG_GPR3)上的状态位。如果某些位在 RESET 后大约 1 秒后仍被永久设置,那么 HSE 可能处于关机模式,必须开始握手程序。请参阅 HSE 固件参考手册中的 “14.6.7 HSE 固件握手”。我还在这里写了一些说明:

https://community.nxp.com/t5/S32K/S32K3-HSE-ERR-GENERAL/m-p/2072826/highlight/true#M47407


如果这还没有帮助,我需要更多详细信息,以了解故障的具体原因。


此致,

Lukas

Re: application firmware broke after installing HSE我还有一个问题:有没有办法在我的 MCU 上执行硬RESET并将其恢复到以前的状态,这样我就可以毫无错误地擦除所有内存?
如您发送的图片所示,我已经通过等待 HSE 初始化测试了我的应用固件,但仍然无法正常工作。当我尝试使用以下方式向闪存写入数据时:
C40_Ip_pFlashBaseAddress->DATA[0] = 0x00U;

Re: application firmware broke after installing HSE

你好@ggreguer

1.安装 HSE 后,闪存中的部分内容将专门分配给 HSE 固件。您可以查看参考手册中的以下表格:
表 199。启用 HSE_B 固件使用功能标志时的配置详情
表 200。AB 交换配置
https://www.nxp.com/webapp/Download?colCode=S32K3XXRM

表 199 实际上是安装 FULL_MEM 时的内存状态。
例如,如果使用 Pemicro 调试器,用户可根据安装的固件选择正确的闪存算法。这样的闪存算法就可以避免进入保留区域。
我相信,Segger 的工具会根据状态寄存器自动完成这项工作。详情请直接与 Segger 联系。
https://kb.segger.com/NXP_S32K3xx#HSE_activated
https://www.segger.com/support/technical-support/

2.安装 HSE 固件后,需要做两件事:
- 需要等待 MU_0 中 FSR 寄存器中的 HSE_STATUS_INIT_OK 标志被设置。在此之前,你无法触发任何 HSE 服务。例如,您可以在 HSE DemoExamples 中找到类似的内容:

lukaszadrapa_0-1761287124700.pnglukaszadrapa_0-1761287124700.png

或者类似 RTD 中的例子:

lukaszadrapa_1-1761287139514.pnglukaszadrapa_1-1761287139514.png


- RESET 后初始化时钟时,必须等待 PRTN0_CORE2_STAT 寄存器中的 WFI 位。这一点表明 SBAF/HSE 处于 IDLE状态,时钟可以更改。在 HSE 运行时不能更改 HSE_CLK,否则会导致不可预测的行为。早期版本的 RTD 驱动程序没有这样做,而是由用户自行决定。现在它已得到修复,并在 RTD 5.0.0 及更高版本的时钟初始函数中实现。

问候,
Lukas

Re: application firmware broke after installing HSE安装 HSE 后,我也无法使用 j-flash 擦除内存。Re: application firmware broke after installing HSE

#hello@lukaszadrapa

我正在开发 S32K3X4EVB-T172 板并尝试安装 HSE 固件
HSE 固件刷新成功,但我的应用程序始终停在:

if (FALSE == checkHseFwFeatureFlagEnabled())
{
/* Stuck here */
}

因此,HSE FW 初始化无法进行。

我检查了 UTEST 区域 (0x1B000080),得到的值是 0XFFFFFFFF
,请查看我们的项目和图像,并帮助我们解决这个问题。

谢谢

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎12-01-2025 01:27 AM
更新者: