我有一个 S32K146EVB-Q144 评估板,起初运行良好。
在我实施 Lin 栈的一次调试过程中,它停止工作了。
当我RESET控制器时,我看到 D1 上持续出现红灯,另外两个绿灯还在那里。
我在 2-3 号位置使用 J10 和 J107 选择 USB 电源,在 2-3 号位置使用 J104 选择 OpenSDA 应用程序闪存模式。
现在,S32DS 完全检测不到我的控制器。
我按照下面帖子中提到的步骤进行了尝试,症状似乎完全相同。
关于S32K144 D2 红色 LED 始终亮起 - NXP Community
在这里,我使用 P&E Kinetics 恢复工具在 OpenSDA 中停止了处理器,但仍无法闪存任何新应用程序。
即使实现了停止,我也无法再次闪光,红灯仍然亮着。
通过调整跳线 J104,控制器也能进入启动加载器模式,实际上我也能在其中闪存 ne 启动加载器应用程序。但不知何故,我无法再次写入闪存,如果我尝试闪存任何示例 .srec文件,D2 保持周期性闪烁(通常在成功闪烁时闪烁一次,然后应用程序开始运行)。
简而言之:
-控制器无法到达主控制器或无法连续RESET
-控制器无法再次写入闪存(可能是网络安全问题)。
除了涉及 SEGGER-JLINK 的技术外,我尝试了上述主题中提到的技术,因为我没有这种调试探针。我有一个 PE Multilink Universal,但它也无法恢复/擦除闪存。
以下是板的详细信息:主
板名称是:S32K146EVB-Q144
MicroBoot
内核版本为:1.08
引导 加载程序版本为:1.13 安装的应用程序: peMicro EVB-S32K144 海量存储/调试
应用程序 版本为:1.25
DUID 是: 39A33939-91818199-37539805-F97AE678
EUID 是:4141A238-1BDB8733-1854BA22-D38368D6
TUID 是: 74823938-47328196-8576CC9B-0242983E
TOA 是 :86B6E505-56F042E0-79B2A114-62BA758F
TOA2 是:86B6E505-EB1A8A7C-AF6E54B6-43532420
SUID 是:86B6E505-5BA18877-37239804-8003EC65
MCU 是否永久锁定?
如果不是,我该如何找回我的板?
我是否发现有任何硬件/软件故障?(仅供参考,D2 和 D3 发出绿光,我认为这意味着我的 5V 和 3.3V 电源轨工作正常)
是否有物理方法进行批量擦除?(无法使用 S32DS 紧急动力学选项,因为那里根本无法检测到板)。
OpenSDA 芯片的任何引脚接地都会导致闪存擦除吗?
请注意,在圣诞假期期间,我们的支持响应时间可能会比平时长。在某些情况下,您的请求可能会在新年后得到处理。感谢您的理解。
HI
我不确定这是否是由于 应用程序版本为: 1.25 .请按住 RESET 按钮 SW5,然后插入 USB 线并将 MS D-DEBUG-S32K146EVB-q144_pemicro_v121.sda 放入 BOOTLOADER 驱动器中。这将把 应用程序版本更新为 1.21。
我还附上了 lpit_periodic_interrupt_s32k146.srec。
顺便说一下,您不需要外接 Segger J-Link。如果按步骤 6 :插入 J7,同时按住 SW5,OpenSDA 就会进入 BOOTLOADER 模式。然后 将世纪佳缘 J-Link 应用程序固件 (如 OpenSDA_V1.bin然后,板载调试器将变为 J-Link。
祝好,
Robin
-------------------------------------------------------------------------------
注:
- 如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。谢谢!
- 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略
如果您以后有相关问题,请另开新主题,并参考已关闭的主题。
-------------------------------------------------------------------------------
您好,Robin,
,感谢您的及时回复,我试着将其回滚到MSD-DEBUG-S32K146EVB-Q144_Pemicro_v121.SDA,
,其行为方式相同,启动加载器应用程序已闪烁,但 D1 仍闪烁红光,我无法闪烁 .srec使用 Kinetis 恢复工具停止运行后的文件。我看到控制器正在尝试闪烁 srec,但失败了,因为 D2 会周期性闪烁(通常只闪烁 3-4 次,应用程序就会被闪烁)。
然后,我尝试将引导加载器切换到OpenSDA_V1.bin,之后尝试使用 J-Link 指令器进行连接,结果看到以下日志 :
SEGGER J-Link Commander V8.94 (Dec 10 2025 14:50:47 编译)
DLL 版本 V8.94, Dec 10 2025 14:49:54 编译
通过 USB 连接 J-Link... 没问题
固件:J-Link OpenSDA 于 2023 年 1 月 31 日编译 13:42:36
硬件版本:V1.00
J-Link 正常运行时间(自启动以来):0d 00h 00m 28s S/N:621000000 vtref=3.300V
键入 " connect " 建立目标连接,'?'如需帮助
J-Link > connect
请指定设备/内核。
类型 '?'用于选择对话框
设备 > S32K146
请指定目标接口:
J) JTAG(默认)
S) SWD
T) cjTag
TIF > SWD SWD TIF SWD
指定目标接口速度 [kHz]。
速度 > 100
设备 " S32K146 " 已选中。
通过 SWD 连接目标
ConfigTargetSettings() 开始
ConfigTargetSettings() 结束 - 用时 22us
InitTarget() 开始
SWD 已选定。执行 JTAG -> SWD 切换序列。
停止 CPU 时超时。
InitTarget() end - Took 392ms
发现 SW-DP,ID 为 0x2BA01477
检测到 DPv0
CoreSight SoC-400 或更早版本
扫描 AP 映射以查找所有可用 AP
AP[2]:由于已到达 AP 地图的尽头,因此停止 AP 扫描
AP[0]:AHB-AP (IDR: 0x24770011, ADDR: 0x00000000)
AP[1]:JTAG-AP (IDR: 0x001C0000, ADDR: 0x01000000)
正在遍历 AP 映射以查找要使用的 AHB-AP,
AP[0]:找到内核
AP[0]:AHB-AP ROM base:0xE00FF000
CPUID 寄存器:0x410FC241。实现者代码:0x41 (ARM)
找到了 Cortex-M4 r0p1,小端节序。
FPUnit:6 个代码 (BP) 插槽和 2 个文字插槽
CoreSIGHT 组件:
romTBL [0] @ E00FF000
[0] [0]:E000E000 CID
B105E00D PID 000BB00C SCS-M7
[0] [1]:E0001000 CID B105E00D 003BB002 PID DWT
[0] [2]:E0002000 CID PID B105E00D 002BB003 FPB
[0] [3]:D PID T PIU
正在初始化 126976 字节的工作内存 @ 0x1FFF0000
重置类型:正常 (https://kb.segger.com/J-Link_Reset_Strategies) E0000000 B105E00D 003BB001 E0040000 B105900D 000BB9A1
RESET:通过 DEMCR.VC_CORERESET RESET 后暂停内核。
RESET:通过 AIRCR.SYSRESETREQ 重置设备。
RESET:S_RESET_ST 永远不会被清除。CPU 似乎永远处于 RESET。
RESET:使用备用:重置密码。
RESET:通过 DEMCR.VC_CORERESET 重置后暂停内核。
RESET:通过重置引脚重置设备
RESET:VC_CORERESET 未停止 CPU。(调试逻辑也可以通过RESET引脚重置?)。
RESET:重新连接并手动关闭 CPU。
发现 ID 为 0x2ba01477 的 SW-DP DP
v0 检测到 CoreSIGHT SoC-400 或更早版本的 AP 地图检测已跳过。
找到手动配置的 AP 映射。
AP[0]:AHB-AP (IDR: Not set, ADDR: 0x00000000)
AP[0]:找到内核
AP[0]:AHB-AP ROM base:0xE00FF000
CPUID 寄存器:0x410FC241.实现者代码:0x41 (ARM)
找到了 Cortex-M4 r0p1,小端节序。
CPU 无法暂停
RESET:重置后核心未停机,尝试禁用 WDT。
RESET:通过 DEMCR.VC_CORERESET 重置后暂停内核。
RESET:通过RESET引脚RESET设备
RESET:VC_CORERESET 未停止 CPU。(调试逻辑也可以通过RESET引脚重置?)。
RESET:重新连接并手动关闭 CPU。
发现 ID 为 0x2ba01477 的 SW-DP DP
v0 检测到 CoreSIGHT SoC-400 或更早版本的 AP 地图检测已跳过。
找到手动配置的 AP 映射。
AP[0]:AHB-AP (IDR: Not set, ADDR: 0x00000000)
AP[0]:找到内核
AP[0]:AHB-AP ROM base:0xE00FF000
CPUID 寄存器:0x410FC241.实现者代码:0x41 (ARM)
找到了 Cortex-M4 r0p1,小端节序。
CPU 无法暂停
RESET:失败。切换RESET引脚并再次尝试RESET策略。
发现 ID 为 0x2BA01477 的 SW-DP
检测到 DPv0
CoreSight SoC-400 或更早版本
跳过 AP 映射检测。找到手动配置的 AP 映射。
AP[0]:AHB-AP (IDR: Not set, ADDR: 0x00000000)
AP[0]:找到内核
AP[0]:AHB-AP ROM base:0xE00FF000
CPUID 寄存器:0x410FC241.实现者代码:0x41 (ARM)
找到了 Cortex-M4 r0p1,小端节序。
RESET:通过 DEMCR.VC_CORERESET RESET 后暂停内核。
RESET:通过 AIRCR.SYSRESETREQ 重置设备。
RESET:S_RESET_ST 永远不会被清除。CPU 似乎永远处于 RESET。
RESET:使用备用:RESET pin。
RESET:通过 DEMCR.VC_CORERESET RESET 后暂停内核。
RESET:通过重置引脚RESET设备
RESET:VC_CORERESET 未停止 CPU。(调试逻辑也可以通过RESET引脚重置?)。
RESET:重新连接并手动关闭 CPU。
发现 ID 为 0x2ba01477 的 SW-DP DP
v0 检测到 CoreSIGHT SoC-400 或更早版本的 AP 地图检测已跳过。
找到手动配置的 AP 映射。
AP[0]:AHB-AP (IDR: Not set, ADDR: 0x00000000)
AP[0]:找到内核
AP[0]:AHB-AP ROM base:0xE00FF000
CPUID 寄存器:0x410FC241.实现者代码:0x41 (ARM)
找到了 Cortex-M4 r0p1,小端节序。
CPU 无法暂停
RESET:重置后核心未停机,尝试禁用 WDT。
RESET:通过 DEMCR.VC_CORERESET 重置后暂停内核。
RESET:通过RESET引脚RESET设备
RESET:VC_CORERESET 未停止 CPU。(调试逻辑也可以通过RESET引脚重置?)。
RESET:重新连接并手动关闭 CPU。
发现 ID 为 0x2ba01477 的 SW-DP DP
v0 检测到 CoreSIGHT SoC-400 或更早版本的 AP 地图检测已跳过。
找到手动配置的 AP 映射。
AP[0]:AHB-AP (IDR: Not set, ADDR: 0x00000000)
AP[0]:找到内核
AP[0]:AHB-AP ROM base:0xE00FF000
CPUID 寄存器:0x410FC241.实现者代码:0x41 (ARM)
找到了 Cortex-M4 r0p1,小端节序。
CPU 无法停止运行
CPU 无法停止运行
CPU 无法停止运行
****** Error:Failed to halt CPU.
Memory zones:
Zone:"默认" 说明:默认访问模式
Cortex-M4 已识别。
J-Link>
请使用示波器观察RESET引脚的波形,将波形发送给我,并告诉我RESET周期和高级宽度。在某些情况下,可能无法恢复,必须更换 S32K1 芯片。
连接策略& 恢复步骤:
目标:让调试器有机会停止内核并中和有问题的固件。
答:降低 SWD 速度 + “RESET 时连接” 在 J‑Link Commander
中:
J-Link> device S32K146
J-Link> if SWD
J-Link> speed 1000 ; start at 1 MHz; if still failing, drop to 100 kHz
J-Link> connect
如果仍然失败,请使用手动重置下连接:
在外部将 RESET_B 保持在低电平,为板供电。
在命令行中运行连接。
释放RESET并立即:
J-Link> r
J-Link> h
J-Link> halt
多试几次,尤其是在 100 kHz SWD 速度下,计时至关重要。
B. 更改 J‑Link RESET 策略
不同的 RESET 策略值的行为不同。在 Commander 中(具体 ID 可能因版本而异):
J-Link> SetResetType = 3 ; a common “connect under reset / halt after reset”; Try 2 / 4 / 12 etc. depending on your J-Link version
J-Link> r
J-Link> halt
或者,尝试在 J-Link Commander 中的 RESET " 下选择 " Connect。
根据 S32K146EVB-SPF-29844-RB.pdf:
J104 1-2 来自 OpenSDA
J 10 2-3 P5V0
的 RESET 信号。 如果你有外部 9V 或 12V 电源,也可以尝试连接 J107 1-2 P5V_SBC。如果您恰好有一个外部调试器,例如 PEMicro Multilink试试能否下载 S32K146 的程序。
最近下载的项目是什么?是否启用了 CSEc?
请回答我之前的问题,并向我提供使用示波器测量的RESET信号。