``## Makefile
1、通用的Makefile,支持SD卡启动和在uboot下直接运行在RAM
区别:
1)程序运行时的地址不同
DDR:0x2000 0000
SD:0x0基地址,最多16K(将SD卡的地址放到iram中运行)
2)SD 只能最多先运行16K并且需要加一个头信息进行校验
RAM :不需要加头信息
2、一般Makefile 写法是
目标文件:依赖文件
命令
makefile文件编译顺序:某.c---- * .o----build.elf-----bulid.bin
elf文件去了头就是bin文件
TARGER :=led.bin #最终目标二进制文件
BUILD :=led #elf文件
ENV ?= SD #(问号代表未定义时的值)
SDTOOLS := mk210 #用来加头信息的文件(SD卡中需要头信息)
COBJS +=start.o
COBJS +=main,o #这样写后期需要目标文件就可以再加一行COBJS
CROSS_COMPILE := arm-linux-
cc :=$(CROSS_COMPILE)gcc #交叉编译器都在gcc前面加前缀
#然后定义工具
LD := $(CROSS_COMPILE)ld #链接器
OBJCOPY := $(CROSS_COMPILE)objcopy #文件格式转换工具
#编译方式定义
CFLAGS +=-Wall #把所有警告打开
CFLAGS +=-I./目录 #增加找头文件的路径
#LDFLAGS += -Tmap.lds T后面跟链接脚本名,如果后面也指定了地址,那么将链接脚本中的地址和后面指定的地址加起来作为地址,所以一般链接脚本里的地址都指定0
ifeq (