初学嵌入式五--Skyeye下的Hello World!

     上一篇我们安装arm-elf-gcc,这篇我们来根据hello4skyeye实现自己的Hello World!

 

一、编写start.S
    编写start.S如下:
    .text @ 代码段 .align 4 .global begin .type begin, function begin: mov r0, #0xd2 @ 禁止所有中断 msr cpsr, r0 ldr sp, =irq_stack @ 设置堆栈 bl hello @ 跳到hello函数 b begin .data @ 数据段 .align 4 @ 设置对齐 irq_stack: @ 堆栈空间 .space 4096

 

二、编写hello.c
    编写hello.c如下:
    void hello(void) { char * strHello="*****************/n/n Hello, World!/n/n*****************/n"; long * pAddr=(long*)0xfffd001c; while(*strHello) { *pAddr=*strHello++; } while(1); }

 

三、编写Makefile
    编写Makefile如下
    注意,所有开头的空白都是一个TAB键,而不是空格。
    CC=arm-elf-gcc LD=arm-elf-ld CFLAGS= -c -Wall all: hello hello: start.o hello.o $(LD) start.o hello.o -o hello start.o:start.S $(CC) $(CFLAGS) start.s hello.o:hello.c $(CC) $(CFLAGS) hello.c clean: rm -rf *.o hello

 

四、编写skyeye.conf
    编写skyeye.conf如下:

    cpu: arm7tdmi mach: at91 mem_bank: map=M, type=RW, addr=0x00000000, size=0x00400000 mem_bank: map=I, type=RW, addr=0xf0000000, size=0x10000000

五、编译并运行
    编译
    $ make
    运行

    $ skyeye -e hello ***************** Hello, World! *****************

你可能感兴趣的:(嵌入式)