1. CROSS_COMPILE ?= arm-linux-gnueabihf- : 定义交叉编译器的前缀,如果用户没有定义,则使用arm-linux-gnueabihf-
  2. NAME ?= led : 定义生成的可执行文件名称为led,如果用户没有定义,则使用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 : 定义.s文件生成.o文件的规则
  16. $(CC) -Wall -nostdlib -c -O2 -o $@ $< : 使用编译器将.s文件编译成.o文件
  17. 空行
  18. %.o:%.S : 定义.S文件生成.o文件的规则
  19. $(CC) -Wall -nostdlib -c -O2 -o $@ $< : 使用编译器将.S文件编译成.o文件
  20. 空行
  21. %.o:%.c : 定义.c文件生成.o文件的规则
  22. $(CC) -Wall -nostdlib -c -O2 -o $@ $< : 使用编译器将.c文件编译成.o文件
  23. 空行
  24. clean: : 定义清理目标文件和可执行文件的规则
  25. rm -rf *.o $(NAME).bin $(NAME).elf : 删除所有目标文件和可执行文
1 CROSS_COMPILE = arm-linux-gnueabihf- 2 NAME = led34 CC = $CROSS_COMPILEgcc5 LD = $CROSS_COMPILEld6 OBJCOPY = $CROSS_COMPILEobjcopy7 OBJDUMP = $CROSS_COMPILEobjdump北京迅为电子有限公司 iMX6ULL 终结者-开发板裸机使用手册日期:

原文地址: https://www.cveoy.top/t/topic/hrFZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录