欢迎来到 电玩999 电玩网

您当前的位置:电玩网>电玩资讯>新手教学>如何用devkitpro编译ARM汇编源代码

热点资讯

更多

如何用devkitpro编译ARM汇编源代码

2015-03-15  |  来源:互联网  |  小编:admin  |   人看过  

最近重新下载devkitpro,虽然以前下载过devkitpro,但没研究出如何把自己写的ARM汇编源代码用devkitpro编译成机器码

这次重新下载devkitpro研究一下

首先下载devkitpro进行安装,devkitpro安装包下载页面地址:http://sourceforge.net/projects/devkitpro/files/Automated%20Installer/

先说说源代码文件编写格式:(源代码文件是纯文本格式文件,可用记事本之类编写)

例子:

.thumb
start:
push {r1-r2}
ldr r1,=0x02000A80
mov r2,#0x31
strb r2,[r1]
add r1,#0x1
mov r2,#0x38
strb r2,[r1]
pop {r1-r2}
bx r14

第一行写.thumb表示是THUMB模式,写.arm是ARM模式,或者用.code 16代替.thumb,.code 32代替.arm
之后是代码了
代码编写完毕后保存名为test.s的文件,并将test.s的文件复制到D:\devkitPro\devkitARM\bin目录下(假设我是将devkitpro是安装在\D:\devkitPro\目录下)
点击开始->运行,输入cmd回车进入命令提示符
输入:
d:回车 进入D盘
cd D:\devkitPro\devkitARM\bin回车 进入D:\devkitPro\devkitARM\bin目录
输入arm-eabi-as.exe -c test.s -o test.elf回车 将源代码编译成elf文件
再输入arm-eabi-objcopy.exe -O binary -R .note -R .comment -S test.elf test.bin回车 将elf文件转为只包含机器码bin格式文件
如果你要反汇编elf就输入arm-eabi-objdump.exe -d test.elf
假设你嫌命令太长,就做个批处理吧。 

在D:\devkitPro\devkitARM\bin目录下右键新建一个文本文档,重命名为"ca.bat"(或者其他名字也可,但扩展名一定要是bat),用记事本打开新建的bat文件,输入以下内容:
 

@echo off

echo usage:ca [*.s] [*.elf] [*.bin]

echo source .s to .elf

arm-eabi-as.exe -c %1 -o %2

echo .elf to binary .bin

arm-eabi-objcopy.exe -O binary -R .note -R .comment -S %2 %3

echo on

输入完毕后保存。
点击开始->运行,输入cmd回车进入命令提示符
 
输入:
 
d:回车 进入D盘
 
cd D:\devkitPro\devkitARM\bin回车 进入D:\devkitPro\devkitARM\bin目录
 
ca test.s test.elf test.bin回车 开始编译,稍等一下就可以看到在D:\devkitPro\devkitARM\bin目录下有test.elf和test.bin这2个文件生成,test.bin就是我们要的只包含机器码bin格式文件

再将批处理命令进一步简化的话:
 

@echo off

echo usage:ca [源代码文件名字](不包含扩展名)

echo source .s to .elf

arm-eabi-as.exe -c %1.s -o %1.elf

echo .elf to binary .bin

arm-eabi-objcopy.exe -O binary -R .note -R .comment -S %1.elf %1.bin

echo on

这样,例如源代码文件名是test.s,那么只输入ca test(不包含扩展名)就可以编译,命令够短了吧。


补充:假设要在其他目录编译,就要把D:\devkitPro\devkitARM\bin目录路径添加到环境变量。
 

清明节放假写这个东西,有用还是无用就看各位了。

分享吧~提高逼格:
分享代码网站注册去

相关阅读

文章评论


温馨提示:抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉边游戏伤身 合理安排时间 享受健康生活

游戏作品版权归原作者享有,如无意之中侵犯了您的版权,请您按照《版权保护投诉指引》来信告知,本网站将应您的要求删除。