前言
- 总所周知针对不同编译器的汇编语言语法有所不同,尽管他们都是使用相同的处理器;自动转换的方法可大大提高工作效率。
一、GCC汇编转ARMCC汇编
- 先在Linux下使用GCC编译相关的汇编代码为.o
- 然后在Eclipse for DS-5 v5.26.0 IDE已有的可正常编译代码的工程中添加该.o文件
- 使用如下命令反汇编.o文件并生成对应的汇编.txt
-
- fromelf --text -c --output="{PWD}{ConfigName}.txt" "G:xxx.o" 分别对应上述txt的路径和要生成的.o路径
-
- 上述命令说明:指定输出文件名和输入文件
- 将生成的txt中的汇编代码拷贝并另存为.s文件即可
- 对于arm处理器
-
- 需要注意gcc编译时是使用thumb还是ARM指令,在ds5下编译另存为的.s文件需要选择对应的thumb或ARM指令。
-
- 若在ds5下使用ARM指令的汇编,那么在Linux用GCC编译是可以通过增加-marm编译选项告诉编译器使用ARM指令编译;gcc默认是Thumb指令编译。
二、ARMCC汇编转GCC汇编
- 同理只需获得在ds5下编译得到的.o
- 在Linux下使用gcc反汇编即可得到对应的汇编代码
- GCCPTAH/arm−none−eabi−objdump−dS*.axf > log
- 注意事项同上不再赘述。
总结
本文介绍了一种高效的转换不同编译器下相同汇编代码的互相转换的方法,具体为Eclipse for DS-5 v5.26.0 IDE下的ARMCC和GCC编译器。