首先,使用IDA反汇编STM32代码应该打开的是bin文件,而不是.hex或.axf文件,只有bin文件是和下载到flash内的数据一致的。具体参见:三种文件的区别
那么,怎么生成bin文件呢,在有工程的情况下,在MDK中是在user的afterbuild后添加命令:
fromelf --bin -o ./Output/@L.bin ./Output/@L.axf
@L代表着工程名,./是工程文件所在文件夹,第一个.bin是生成的文件,第二个axf是用来生成bin的文件,是MDK必定生成的,也可以用hex。具体参见Keil MDK5生成 .bin文件的简单教程(图文)