一般使用Jlink连接S32K312是可以的,但是我们已经通过写ADKP key实现了JTAG保护,芯片生命周期从CUST_DEL提前到IN_FIELD,我们想在芯片被JTAG保护后用Ozone调试。
由于 Ozone 使用与 Jlink.exe 类似的机制,我们使用 Jlink.exe 命令行界面进行调试。
我们做的步骤:
1 创建一个名为 S32K312_JTAG_auth.JlinkScript 的文件并将内容放入此文件中:
void InitTarget()
{
}
2 在命令行中调用 Jlink.exe,如:
jlink.exe -jlinkscriptfile "D:\...\S32K312_JTAG_auth.JlinkScript"
3 使用connect 命令并选择S32K312 作为目标设备进行连接,jlink 打印错误信息如下:
通过 SWD ConfigTargetSet
tings()连接到目标start
ConfigTargetSettings() end - Took 16us
InitTarget() start
InitTarget() end - Took 3us
Found SW-DP with ID 0x6BA02477
DPIDR: 0x6BA02477
CoreSight SoC-400 或更早的
AP 映射检测被跳过。找到手动配置的 AP 映射。
AP[0]:MEM-AP(IDR:未设置)
AP[1]:APB-AP(IDR:未设置)
AP[2]:MEM-AP(IDR:未设置)
AP[3]:MEM-AP (IDR:未设置)
AP[4]:AHB-AP(IDR:未设置)
AP[5]:AHB-AP(IDR:未设置)
AP[6]:MEM-AP(IDR:未设置)
AP[ 7]:MEM-AP(IDR:未设置)
AP[4]:跳过 ROMBASE 读取。用户
AP[4] 手动设置的 CoreBaseAddr:已跳过。无法读取 CPUID 寄存器
附加到 CPU 失败。在重置下执行连接。
DPIDR:0x6BA02477
CoreSight SoC-400 或更早版本的
AP 映射检测被跳过。找到手动配置的 AP 映射。
AP[0]:MEM-AP(IDR:未设置)
AP[1]:APB-AP(IDR:未设置)
AP[2]:MEM-AP(IDR:未设置)
AP[3]:MEM-AP (IDR:未设置)
AP[4]:AHB-AP(IDR:未设置)
AP[5]:AHB-AP(IDR:未设置)
AP[6]:MEM-AP(IDR:未设置)
AP[ 7]:MEM-AP(IDR:未设置)
AP[4]:跳过 ROMBASE 读取。用户
AP[4] 手动设置的 CoreBaseAddr:已跳过。无法读取 CPUID 寄存器
在 Coresight 设置中找不到核心
ConfigTargetSettings() start
ConfigTargetSettings() end - Took 34us
InitTarget() start
InitTarget() 结束 - 用 9us
找到 ID 为 0x6BA02477
DPIDR 的 SW-DP:0x6BA02477
CoreSight SoC-400 或更早的
AP 映射检测被跳过。找到手动配置的 AP 映射。
AP[0]:MEM-AP(IDR:未设置)
AP[1]:APB-AP(IDR:未设置)
AP[2]:MEM-AP(IDR:未设置)
AP[3]:MEM-AP (IDR:未设置)
AP[4]:AHB-AP(IDR:未设置)
AP[5]:AHB-AP(IDR:未设置)
AP[6]:MEM-AP(IDR:未设置)
AP[ 7]:MEM-AP(IDR:未设置)
AP[4]:跳过 ROMBASE 读取。用户
AP[4] 手动设置的 CoreBaseAddr:已跳过。无法读取 CPUID 寄存器
附加到 CPU 失败。在重置下执行连接。
DPIDR:0x6BA02477
CoreSight SoC-400 或更早版本
AP 地图检测已跳过。找到手动配置的 AP 映射。
AP[0]:MEM-AP(IDR:未设置)
AP[1]:APB-AP(IDR:未设置)
AP[2]:MEM-AP(IDR:未设置)
AP[3]:MEM-AP (IDR:未设置)
AP[4]:AHB-AP(IDR:未设置)
AP[5]:AHB-AP(IDR:未设置)
AP[6]:MEM-AP(IDR:未设置)
AP[ 7]:MEM-AP(IDR:未设置)
AP[4]:跳过 ROMBASE 读取。用户
AP[4] 手动设置的 CoreBaseAddr:已跳过。无法读取 CPUID 寄存器
无法在 Coresight 设置中找到核心
无法连接到目标。
问题描述:好像我用自己的InitTarget()函数替换Jlink定义的函数时,jlink.exe程序无法连接到target。
此外,我们计划在 Jlink 连接并开始调试之前,使用密码验证模式在 InitTarget() 中取消保护 S32K312 设备。
你能弄清楚这是否可以在这个芯片上工作吗?