我有一块全新的 S32K388,我正在尝试用一些全新的固件(不是 AUTOSAR 也不是 RTD)刷入它。我已将 IVT 设置为仅启动 core0,并且已将 hse_fw_header_start_address 设置为零。
但这种配置似乎会导致 MC_RGM DES 报告 RESET:
0x00000041 和 MC_RGM FES 报告 0x00010000,根据我对 S32K3XXRM 的了解,这意味着 HSE 看门狗超时导致基于升级的破坏性 RESET。
有趣的是,当我连接 J-Link 时,这种现象似乎就消失了,但我似乎找不到从我的固件中禁用或维护 SWT 的方法。我需要为 S32K388 下载/安装标准 HSE 固件吗?
为什么S32K388需要这个功能,而S32K344不需要?
经过进一步测试——如果我在读取 MC_RGM FES/DES 标志后将其全部清除(这样它们就不会在启动后保持不变),启动循环开始返回:FES: 0x00010000,偶尔返回 DES: 0x00000040(但大多数情况下返回 DES: 0x00000000)。
为了更清楚地说明原帖内容,我已将 IVT 中的启动配置字设置为 0x00000001 - 根据我的理解,这似乎意味着只设置了 CM7_0_ENABLE,而根本不应该有任何 HSE/SWT_0 设置?
万一我的另一条评论最终证明并不能解决问题:
更正一下——我上面评论中的最后一句话应该是“HSE_CLK 频率为 160MHz,AIPS_SLOW_CLK 频率为 40MHz”。
根据这篇帖子: https://community.nxp.com/t5/S32K/What-does-it-mean-HSE-SWT-RST-on-S32K311/mp/1955147
这是来自旧版 S32K3XXRM 的 S32K3xx_DCF_clients.xlxs 的图像: https://community.nxp.com/t5/S32K/S32K388-HSE-No-Response-Error/mp/2090937/highlight/true ?lightbox-message-images-2090937=336074i0A601700196531EB#M48394
我似乎通过在 UTEST 内存扇区中写入 0x40000101 0x00100006 到 0x1B000770(将“2”放入 HSE_CLK_MODE_AND_GSKT_CTRL)解决了我的问题。
在当前版本的 S32K3xx_DCF_clients.xlxs 中,HSE_CLK_MODE_AND_GSKT_CTRL 的描述如下:
但在 S32K3XXRM 中,我找不到关于垫片配置中应该如何配置的参考信息(最接近的似乎是“HSE_B”,但表格中提到的是一个不可能的 1:1 配置):
这只是文档更新失败吗?如果我使用 Option A++ 时钟(CORE_CLK 为 160MHz,AIPS_SLOW_CLK 为 40MHz),那么 HSE_CLK_MODE_AND_GSKT_CTRL 中是否应该设置 1:4 的比例?
请问您能否提供以下信息:
所使用的S32K388芯片的具体零件编号和版本号。
确认设备上是否曾经安装过 HSE 固件(或者这是否是一台完全空白/出厂全新的设备)。
IVT 配置,特别是 hseFwHeaderStartAddr、appBootAddr 和任何其他与 HSE 相关的 IVT 字段的值。
RESET后的完整RESET状态寄存器转储(MC_RGM_DES、MC_RGM_FES 和任何其他相关的RESET寄存器)。
无论问题是出现在多个设备上还是仅出现在单个板上。
一个能够重现该问题的最小项目/应用程序,或者至少是 RESET 发生之前执行的启动代码序列。
目前尚不清楚重置是由 HSE/SBAF、应用程序问题还是设备配置问题引起的,因此上述信息将有助于确定根本原因。
据我们所知,这已经解决了这个问题。我希望文档能够更新,以反映选项 A++ 需要更换此垫片@davidtosenovjan