界面功能说明如下:
system.mode down system.reset (复位CPU) system.jtagclok 10Mhz(设置jtag clk) system.cpu =contexm33 (目标CPU) system.config memoryaccessport 0 (下面4个是在上图中最后侧点击CONFIG设置项) system.config debugaccessport 1 system.config jtagaccessport 2 system.config corejtagport 2 system.config SWDPTargetSel 0x02000001 (target ID,一般为硬件决定) system.mode up (trac32与板子连接,并CPU指向初始化向量表,一般为rom/ram零地址)
总结:执行该脚本主要实现了CPU重启,初始化连接,CPU指向中断向量表。
可以直接使用file--> load file,或者在脚本中增加
data.load elf_file_name (下载code到内存,覆盖原有内存数据) 或 data.load elf_file_name /nocode (只下载符号表,不覆盖内存,通常用于调试)
加载数据(到内存):data.load .binary (file_name) mem_addr 保存数据(到文件):data.save.binary (file_name) mem_addr++(mem_size-1) 保存addr1~addr2范围的数据: data.save.binary (file_name) mem_addr1++mem_addr2
下载成功后,点击工具菜单中的图标, 查看汇编代码
单步运行。在碰到子函数的时候会进入子函数中的第一条代码。
单步执行,和step区别是遇到函数时,over会执行完这个函数,到下一条指令,不会进入函数内。
next 的模式会在当前代码的下一条代码打一个临时断点,当程序执行以后会一直运行直到碰到这个临时断点,它可以帮助我们直接跨过一个循环体.比如:
return 会在一个函数的最后一行设置一个临时断点,当在函数体内点击 Return以后,程序会一直运行直到停在设置的临时断点的位置。
up会从当前函数执行结束,跳到应用它的函数的下条指令。
执行应用程序,直到碰到用户设置的断点才停下来。
y.spath.setrecursedir yourcodepath 或(待验证)data.load elf_file_name [/nocode] /sourcepath sourcecode_path /strippart i
相关解释:/sourcepath的作用是指定C code的路径,/strippart的作用是去掉相对路径的层数,i的具体数值可以试验几次来确定。
打开汇编,可以看到汇编的行号,以及当前代码属于的源文件,点击文件名,可以查看详细路径以及重命名的文件。
还可以通过view/var查看内存,变量等信息
点击 蓝色图标 i,可以 查看工程symbol,包括所有的函数和变量的symbol 以及对应的地址。
设置断点的方法有3种:
对第三种,点击set,可以添加不同的多个断点。
【转自网络,版权归原作者所有】
5T技术资源大放送!包括但不限于:C/C++,Arm, Linux,Android,人工智能,单片机,树莓派,等等。在上面的【人人都是极客】公众号内回复「peter」,即可免费获取!!
记得点击分享、赞和在看,给我充点儿电吧