问题描述
我正在尝试让 gdb(multiarch cli/eclipse)通过 jtag 和使用 openocd 在 avnet ultra 96 板上调试 linux 内核。我的 jtag 调试探针是 Digilent HS3。我能够让 openocd 将内核显示为原生 gdb 线程,但随后发生此错误:
Error: 598 22320 aarch64.c:1948 aarch64_write_cpu_memory(): abort occurred - dscr = 0x03047d53
生成消息的行是:
if (retval != ERROR_OK)
return retval;
dpm->dscr = dscr;
if (dscr & (DSCR_ERR | **DSCR_SYS_ERROR_PEND**)) {
/* Abort occurred - clear it and exit */
LOG_ERROR("abort occurred - dscr = 0x%08" PRIx32,dscr);
armv8_dpm_handle_exception(dpm,true);
return ERROR_FAIL;
}
错误是由于上面调用了 retval = aarch64_write_cpu_memory_fast(target,count,buffer,&dscr);
十行。
我想知道这是否可能是由于粘滞位或类似的东西(JTAG-DP STICKY 错误)。 另一件让我感到困惑的事情(如果我弄错了请纠正我)是 gdb 似乎正在尝试向目标的内存写入一些内容,因此失败了。 不知道为什么 gdb 在没有设置断点的情况下会这样做。
欢迎提出任何想法。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)