我尝试在AVR 8位微控制器上使用jtag进行调试。
avarice --jtag /dev/ttyUSB0 0 :4444 ddd液晶显示器-调试器avr-gdb
在本届会议上,我要:
目标远程本地主机:4444 断主
Breakpoint 1 at 0x244: file lcd_test.cpp, line 254.续
现在目标停止,pc正确:
但是,如果我查看程序集代码窗口,我的偏移量为0x800000,并且内容错误:
Dump of assembler code from 0x800244 to 0x800344:
0x00800244: ldd r1, Y+16 ; 0x10
0x00800246: std Z+8, r0 ; 0x08
0x00800248: sbc r8, r16
0x0080024a: xch Z, r16
0x0080024c: .word 0x0018 ; ????
0x0080024e: eor r1, r0在带有layoit asm的本地avr中,一切看起来都很好。
知道如何从DDD中的装配窗口获得与avr相关的正确输出吗?
发布于 2020-05-22 14:34:51
这是gdb中一个很老的错误!2011年已经报告了这一情况。错误报告包含一个修补程序,可以应用于当前的gdb版本9.1,并按预期工作!
此外,还必须修补ddd:
diff -ur ddd-3.3.12/ddd/GDBAgent.C ddd-3.3.12_patched/ddd/GDBAgent.C
--- ddd-3.3.12/ddd/GDBAgent.C 2009-02-11 18:25:06.000000000 +0100
+++ ddd-3.3.12_patched/ddd/GDBAgent.C 2014-05-20 09:49:46.147850710 +0200
@@ -3200,7 +3200,8 @@
{
string end_( end );
normalize_address(end_);
- cmd += ' ';
+ cmd += ',';
+ cmd += ' ';
cmd += end_;
}
return cmd;更改后,ddd与avr一起工作.
https://stackoverflow.com/questions/61953224
复制相似问题