关闭

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

435人阅读 评论(0) 收藏 举报
分类:
今天一直纠结于程序老是出问题,就是拿别人的源码直接编译还是出问题,现在终于明白,开发环境不同启动代码也不同,在网上下载个源码启动代码如下:

.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这条伪指令,否则会报错的。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:319227次
    • 积分:5007
    • 等级:
    • 排名:第5610名
    • 原创:162篇
    • 转载:172篇
    • 译文:1篇
    • 评论:24条
    交流分享
    欢迎大家加入QQ群:469897460 一起来分享交流技术
    最新评论