打印
[ARM入门]

ok6410 s3c6410 为什么简单的代码没办法成功执行

[复制链接]
1246|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zdl_361|  楼主 | 2016-3-3 17:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define GPBCON (*(volatile unsigned long * ) 0x7f008820)
#define GPBDAT (*(volatile unsigned long * ) 0x7f008824)
extern void delay(void){
        int i=99;
        for(i=99;i<0xFabcF;i++){}
}
int main(){
        GPBCON=0x1111;
        GPBDAT=0;
        while(1){
                delay();
                GPBDAT= ~GPBDAT;
        }
        return 0;
}
-----------------
crt0.S
.text
.global _start
.global halt_loop
_start:
        ldr sp,=1024*8
        bl main
halt_loop:
        b halt_loop

编译器使用 arm-elf-gcc
-g  -Os   -fno-strict-aliasing  -fno-common -ffixed-r8  -fno-builtin  -nostdinc -march=armv6 -Wall -mtune=arm1176jzf-s  -mfloat-abi=soft -mfpu=vfp
程序的功能就是控制led闪烁,
编译优化选项 -O0程序不成功,-Os 能成功执行。

相关帖子

沙发
zdl_361|  楼主 | 2016-3-3 17:13 | 只看该作者
真想不通,为什么。源代码不变,不优化程序运行不正确,优化后程序才能正确运行。是我开发板的问题么。

使用特权

评论回复
板凳
zdl_361|  楼主 | 2016-3-3 17:15 | 只看该作者
6410 官方提供的 uboot 烧录到sd卡里面可以正常运行。

使用特权

评论回复
地板
a3376539| | 2016-3-3 22:00 | 只看该作者
我研究一下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝