主题 : 如何用arm-linux-gcc 这个编译器把 C 文件编译成可以下载到6410板上运行的裸机程序 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 68998
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2012-04-29
最后登录: 2012-05-09
楼主  发表于: 2012-05-05 13:30

 如何用arm-linux-gcc 这个编译器把 C 文件编译成可以下载到6410板上运行的裸机程序

如何用arm-linux-gcc 这个编译器把 C 文件编译成可以下载到6410板上运行的裸机程序

[plg@localhost ~]$ arm-linux-gcc -c -o utils.o utils.c
[plg@localhost ~]$ ls
main.c  s3c6410_addr.h  soc_cfg.h  utils.c  utils.h  utils.o
[plg@localhost ~]$ arm-linux-gcc -c -o main.o main.c
[plg@localhost ~]$ ls
main.c  main.o  s3c6410_addr.h  soc_cfg.h  utils.c  utils.h  utils.o
[plg@localhost ~]$ ls -ltr
total 36
-rw-r--r-- 1 plg plg  511 2012-05-05 12:12 main.c
-rw-r--r-- 1 plg plg  208 2012-05-05 12:13 utils.h
-rw-r--r-- 1 plg plg 1691 2012-05-05 12:13 utils.c
-rw-r--r-- 1 plg plg 6773 2012-05-05 12:14 s3c6410_addr.h
-rw-r--r-- 1 plg plg 7974 2012-05-05 12:14 soc_cfg.h
-rw-rw-r-- 1 plg plg 1700 2012-05-05 13:07 utils.o
-rw-rw-r-- 1 plg plg 1420 2012-05-05 13:08 main.o

到了这里就不会把 它们编译成  .bin 文件了

请大侠们指点点下

级别: 新手上路
UID: 68998
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
综合积分: 16 分
注册时间: 2012-04-29
最后登录: 2012-05-09
1楼  发表于: 2012-05-05 13:59
我的步骤是这样的

[plg@localhost ~]$ arm-linux-gcc -c -o utils.o utils.c
[plg@localhost ~]$ ls
main.c  s3c6410_addr.h  soc_cfg.h  utils.c  utils.h  utils.o
[plg@localhost ~]$ arm-linux-gcc -c -o main.o main.c
[plg@localhost ~]$ arm-linux-gcc -v -static -WI,-Tubl-davinci.lds,-Map,system.map -nostartfiles -o target.elf utils.o main.o
[plg@localhost ~]$ arm-linux-objcopy -O binary target.elf boot.bin

然后 把这个 boot.bin 文件传到板上裸机运行,可是没效果 的, 我的代码是根据 6410 demo 的改了下


int _main(void)
{

    Uart_Init();
    Port_Init();
    Uart_SendString("\r\nHello, Mini6410\r\n");
    
    int i;
    
    for(i = 0; i < 10 ; i++) {
        Led_Display(0x9); // 1001
        LedDelay();
        Led_Display(0x6); // 0110
        LedDelay();
        Uart_SendString("\r\nHello, Mini6410\r\n");
    }
    
    Uart_SendString("\r\nGame Over!\r\n");

    return 0;

}
级别: 新手上路
UID: 51367
精华: 0
发帖: 6
金钱: 30 两
威望: 6 点
综合积分: 12 分
注册时间: 2011-07-02
最后登录: 2013-04-30
2楼  发表于: 2013-04-30 01:11
应该至少需要一个引导的 .S 文件吧.
现在找到解决没有呢?
我一直在找能够在Linux下面开发Tiny6410裸板程序的办法,搞不定啊