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


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

    .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这条伪指令,否则会报错的。
  • 相关阅读:
    关于Android反编译
    调用图灵机器人API实现Android智能机器人
    STM32 驱动1602液晶
    1602A液晶
    STM32 PWM波
    STM32的优先级NVIC_PriorityGroupConfig
    STM32——timer
    Ajax Json的后台例子
    固定导航例子
    本周学习总结
  • 原文地址:https://www.cnblogs.com/songfeixiang/p/3733845.html
Copyright © 2020-2023  润新知