i.MX6ULL终结者按键例程编译及运行

首先我们使用命令“sudo vi Makefile”打开Makefile。如图 1所示:
在这里插入图片描述

图 1

然后添加下面的内容:

  1 CROSS_COMPILE   ?= arm-linux-gnueabihf-
  2 TARGET                  ?= beep
  3 
  4 CC                              := $(CROSS_COMPILE)gcc
  5 LD                              := $(CROSS_COMPILE)ld
  6 OBJCOPY                 := $(CROSS_COMPILE)objcopy
  7 OBJDUMP                 := $(CROSS_COMPILE)objdump
  8 
  9 INCDIRS                 := core \
 10                                    drivers/clk \
 11                                    drivers/led \
 12                                    drivers/delay \
 13                                    drivers/beep
 14 
 15 SRCDIRS                 := ./   \
 16                                    drivers/clk \
 17                                    drivers/led \
 18                                    drivers/delay \
 19                                    drivers/beep
 20 
 21 
 22 INCLUDE                 := $(patsubst %, -I %, $(INCDIRS))
 23 
 24 SFILES                  := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S))
 25 CFILES                  := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))
 26 
 27 SFILENDIR               := $(notdir  $(SFILES))
 28 CFILENDIR               := $(notdir  $(CFILES))
 29 
 30 SOBJS                   := $(patsubst %, output/%, $(SFILENDIR:.S=.o))
 31 COBJS                   := $(patsubst %, output/%, $(CFILENDIR:.c=.o))
 32 OBJS                    := $(SOBJS) $(COBJS)
 33 
 34 VPATH                   := $(SRCDIRS)
 35 
 36 .PHONY: clean
 37         
 38 $(TARGET).bin : $(OBJS)
 39         $(LD) -Timx6ul.lds -o $(TARGET).elf $^
 40         $(OBJCOPY) -O binary -S $(TARGET).elf $@
 41 
 42 $(SOBJS) : output/%.o : %.S
 43         $(CC) -Wall -nostdlib -c -O2  $(INCLUDE) -o $@ $<
 44 
 45 $(COBJS) : output/%.o : %.c
 46         $(CC) -Wall -nostdlib -c -O2  $(INCLUDE) -o $@ $<
 47         
 48 clean:
 49         rm -rf $(TARGET).elf $(TARGET).dis $(TARGET).bin $(COBJS) $(SOBJS)
 50 
 51 

第2行的TARGET我们修改为“beep”。
第9行在变量 INCDIRS 中添加蜂鸣器驱动头文件路径,也就是文件beep.h的路径。
第15行在变量 SRCDIRS 中添加蜂鸣器驱动文件路径,也就是文件beep.c的路径。
部分截图图 2所示:
在这里插入图片描述

图 2

最后我们保存并退出Makeile的修改。

然后我们在终端输入命令“make”开始编译工程。如图 3所示:
在这里插入图片描述

图 3

编译完成后,我们在终端输入“ls”命令,可以看到生成的beep.bin文件,如图 4所示:
在这里插入图片描述

图 4

然后在终端输入命令“chmod 777 create_imx”修改create_imx文件具有可执行权限,如图 5所示:
在这里插入图片描述

图 5

最后在终端运行命令“./create_imx beep.bin”生成最终的镜像文件“bare.imx”,如图 6所示:
在这里插入图片描述

图 6

然后我们将生成的bare.imx文件通过SSH软件拷贝到mfg烧写工具内对应目录下,这一步可以参考前面的烧写章节。将拨码开关切换成烧写模式,上电烧写等待烧写完成,然后将拨码开关切换回启动模式,等待代码正常运行,我们即可得到蜂鸣器和LED灯交替响应的实验结果。在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46635880/article/details/108766605