Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101731
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 648
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-02 20:30
文章分类
文章存档

2013年(16)

我的朋友

分类: 嵌入式

2013-07-22 13:42:00



实训准备:

搭建好交叉编译环境。(本实验以点亮一个LED灯为例)

实训步骤:

1、在/opt/EmbedSky/目录下新建一目录(luoban)用来存放裸板程序。

2、使用命令 cd  /opt/EmbedSky/luoban 进入该目录下。

3、使用命令 vi  crt0.s 新建.S文件

输入:

.text

.global _start

_start:

       ldr r0,=0x56000010 @禁止看

      mov r1,#0x0

       str r1,[r0]

       ldr sp,=1024*4 @置堆最大4KB

       bl main           @跳到主函

halt_loop:        @死循

       b halt_loop

输入完成后按ESC键退出编辑,再按SHIFT加:看到文本下方出现:时,输入wq!保存并退出

4、使用命令 vi led_on_c.c 新建.C文件

输入:
#define GPBCON      (*(volatile unsigned long *)0x56000010)
#define GPBDAT      (*(volatile unsigned long *)0x56000014)

int main()

{

 GPBCON = 0x00000400;  

 GPBDAT = 0x00000000;   

 return 0;

}

输入完成和上步一样。

5、使用命令 vi Makefile 新建Makefile文件。

输入:

led_on_c.bin: crt0.S  led_on_c.c     @ led_on_c.bin要生成的文件crt0.S  led_on_c.c要使用的文件

arm-linux-gcc -g -nostdlib -c -o crt0.o crt0.S           @具体查阅手册

arm-linux-gcc -g -nostdlib -c -o led_on_c.o led_on_c.c

arm-linux-ld -Ttext 0x0000000 -g  crt0.o led_on_c.o -o led_on_c_elf

arm-linux-objcopy -O binary -S led_on_c_elf led_on_c.bin

arm-linux-objdump -D -m arm  led_on_c_elf > led_on_c.dis

clean:

rm -f led_on_c.dis led_on_c.bin led_on_c_elf *.o

输入完成和上步一样。

6、使用命令 make 生成BIN文件。





阅读(1741) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~