首先打开Makefile文件,在里面输入下面的代码:
1 CROSS_COMPILE ?= arm-linux-gnueabihf-
2 TARGET ?= backlight
3
4 CC := $(CROSS_COMPILE)gcc
5 LD := $(CROSS_COMPILE)ld
6 OBJCOPY := $(CROSS_COMPILE)objcopy
7 OBJDUMP := $(CROSS_COMPILE)objdump
8
9 LIBPATH:= -lgcc -L /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/lib/gcc/arm -linux-gnueabihf/4.9.4
10
11
12 INCDIRS := core \
13 stdio/include \
14 drivers/clk \
15 drivers/led \
16 drivers/delay \
17 drivers/beep \
18 drivers/gpio \
19 drivers/key \
20 drivers/exit \
21 drivers/int \
22 drivers/epittimer \
23 drivers/keyfilter \
24 drivers/uart \
25 drivers/lcd \
26 drivers/rtc \
27 drivers/i2c \
28 drivers/ap3216c \
29 drivers/touchscreen \
30 drivers/backlight
31
32 SRCDIRS := ./ \
33 stdio/lib \
34 drivers/clk \
35 drivers/led \
36 drivers/delay \
37 drivers/beep \
38 drivers/gpio \
39 drivers/key \
40 drivers/exit \
41 drivers/int \
42 drivers/epittimer \
43 drivers/keyfilter \
44 drivers/uart \
45 drivers/lcd \
46 drivers/rtc \
47 drivers/i2c \
48 drivers/ap3216c \
49 drivers/touchscreen \
50 drivers/backlight
51
52
53 INCLUDE := $(patsubst %, -I %, $(INCDIRS))
54
55 SFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S))
56 CFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))
57
58 SFILENDIR := $(notdir $(SFILES))
59 CFILENDIR := $(notdir $(CFILES))
60
61 SOBJS := $(patsubst %, output/%, $(SFILENDIR:.S=.o))
62 COBJS := $(patsubst %, output/%, $(CFILENDIR:.c=.o))
63 OBJS := $(SOBJS) $(COBJS)
64
65 VPATH := $(SRCDIRS)
66
67 .PHONY: clean
68
69 $(TARGET).bin : $(OBJS)
70 $(LD) -Timx6ul.lds -o $(TARGET).elf $^ $(LIBPATH)
71 $(OBJCOPY) -O binary -S $(TARGET).elf $@
72
73 $(SOBJS) : output/%.o : %.S
74 $(CC) -Wall -nostdlib -fno-builtin -c -O2 $(INCLUDE) -o $@ $<
75
76 $(COBJS) : output/%.o : %.c
77 $(CC) -Wall -Wa,-mimplicit-it=thumb -nostdlib -fno-builtin -c -O2 $(INCLUDE) -o $@ $<
78
79 clean:
80 rm -rf $(TARGET).elf $(TARGET).dis $(TARGET).bin $(COBJS) $(SOBJS)
Makefile文件我们主要修改了下面几个地方:
第2行的TARGET修改为backlight。
第30行添加了“drivers/backlight”到变量INCDIRS。
第50行添加了“drivers/backlight”到变量SRCDIRS。
链接脚本文件保持不变。
然后在终端输入“make”命令开始编译工程,如图 1所示:
编译完成生成“backlight.bin”文件,如图 2所示:
然后在终端输入命令“chmod 777 create_imx”修改create_imx文件具有可执行权限,如图 3所示:
最后在终端运行命令“./create_imx backlight.bin”生成最终的镜像文件“bare.imx”,如图 4所示:
然后我们将生成的bare.imx文件通过SSH软件拷贝到mfg烧写工具内对应目录下,这一步可以参考前面的烧写章节。将拨码开关切换成烧写模式,上电烧写等待烧写完成,然后将拨码开关切换回启动模式,等待程序正常运行,我们可以看到LCD屏幕如图 5显示:
我们可以看到当前的PWM是10%,屏幕显示比较暗,我们按下开发板的KEY0按键,调节PWM到90%,如图 6所示:
我们可以看到屏幕变亮了。