我们在工程目录下创建Makefile文件,在里面输入下面的内容:
1 CROSS_COMPILE ?= arm-linux-gnueabihf-
2 NAME ?= led
3
4 CC := $(CROSS_COMPILE)gcc
5 LD := $(CROSS_COMPILE)ld
6 OBJCOPY := $(CROSS_COMPILE)objcopy
7 OBJDUMP := $(CROSS_COMPILE)objdump
8
9 OBJS := start.o main.o
10
11 $(NAME).bin:$(OBJS)
12 $(LD) -Timx6ul.lds -o $(NAME).elf $^
13 $(OBJCOPY) -O binary -S $(NAME).elf $@
14
15 %.o:%.s
16 $(CC) -Wall -nostdlib -c -O2 -o $@ $<
17
18 %.o:%.S
19 $(CC) -Wall -nostdlib -c -O2 -o $@ $<
20
21 %.o:%.c
22 $(CC) -Wall -nostdlib -c -O2 -o $@ $<
23
24 clean:
25 rm -rf *.o $(NAME).bin $(NAME).elf
本章的Makefile文件是在第七章中的Makefile上修改来的,使用到了变量,链接脚本imx6ul.lds的内核和上一章节的一样,我们在这里就不详细分析了。
然后我们在终端输入make命令开始编译本工程,编译成功以后生成led.bin文件,如图 1所示:
我们从图1可以看到经过编译生成了“led.bin”文件,然后我们使用“create_imx”工具,生成bare.imx文件,命令如下:
chmod 777 create_imx
./create_imx led.bin
然后拷贝生成的bare.imx到MFG的烧写工具对应的目录下,通过MFG烧写,然后正常启动开发板,可以看到LED在循环闪烁。