注意:开发环境不同,启动代码不同…

今天一直纠结于程序老是出问题,就是拿别人的源码直接编译还是出问题,现在终于明白,开发环境不同启动代码也不同,在网上下载个源码启动代码如下:

.globl _start
_start:

   
    ldr r0, =0x70000000
    orr r0, r0, #0x13
    mcr p15,0,r0,c15,c2,4       @ 256M(0x70000000-0x7fffffff)
     
ldr r0, =0x7E004000
mov r1, #0
str r1, [r0]

ldr sp, =8*1024
mov r0, #9
bl xxxxx
halt:
b halt
此源码我直接在RVDS开发环境下运行还是出错了,以前老是以为自己编写格式出错了,弄了好久都没弄明白,在群众和别人交流之中才了解到错误的原因,最终根源在于开发环境不同,在rvds下应该如下:
(PRESERVE8)
IMPORT main
AREA init,CODE,READONLY

ENTRY
CODE32
START
ldr r0,=0x70000000
orr r0,r0,#0x13
mcr p15,0,r0,c15,c2,4


ldr r0,=0x7E004000
mov r1,#0
str r1,[r0]

ldr sp,=8*1024
bl main
            END
这里需要注意如果你的rvds(ADS)是1.x版本括号里面的那条伪指令不要,如果是2.x高版本就必须要有 PRESERVE8这条伪指令,否则会报错的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值