ARM的调试技巧
KEILL的常用命令
生成反汇编的命令:
//可用于KEILL的反汇编生成命令,利用.axf文件生成all.dis文件,放在mdk-arm路径下。
//F103_Moduel\F103_Moduel.axf axf文件的路径以及文件名
//all.dis 反汇编的名字以及路径
fromelf --text -a -c --output=all.dis F103_Moduel\F103_Moduel.axf
生成bin文件的命令:
$L:表示生成的链接文件的路径
@L: 表示生成的链接文件的文件名,但不包含扩展名
#L:表示生成的链接文件的完整路径名及文件名
//
fromelf.exe --bin -o "$L@L.bin" !L
stm32的前几个地址的使用
具体使用查看启动文件(.s)
中断向量表映射到地址0,实际是0x0800 0000。如上图,Bin文件的前几个地址的存放数据的含义。
0x0000 0000 存放栈顶地址
0x0000 0004 存放复位处理函数
0x0000 0008
.....
注意:
这是map文件中的栈底位置stack: 0x20001e48
这是map文件中的栈顶位置**__initial_sp** : 0x20002248,程序复位之后,msp指向这个地址。
这是bin文件中第一个字节(0x0800 0000),存放了**__initial_sp**: 0x20002248