I.MX 6 UL裸機開発(五)——BSPエンジニアリング管理
1、工程目次の下に4つのフォルダを作成する:(1)bsp:格納駆動ファイル(2)imx 6 ul:NXP公式のSDKライブラリファイル(3)obj:格納コンパイル生成のようなチップに関するファイルを格納する.oファイル(4)project:start.を格納Sとmain.cファイル、すなわちアプリケーションファイル
2、BSP工事のMakefile:
3、リンクファイル:
2、BSP工事のMakefile:
CROSS_COMPILE ?= arm-linux-gnueabihf- #
TARGET ?= bsp #
CC := $(CROSS_COMPILE)gcc #
LD := $(CROSS_COMPILE)ld #
OBJCOPY := $(CROSS_COMPILE)objcopy #
OBJDUMP := $(CROSS_COMPILE)objdump #
INCDIRS := imx6ul \ #
bsp/clk \
bsp/led \
bsp/delay
SRCDIRS := project \ #
bsp/clk \
bsp/led \
bsp/delay
INCLUDE := $(patsubst %, -I %, $(INCDIRS)) # INCDIRS -I, -I
SFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S)) # .S ( )
CFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c)) # .c ( )
SFILENDIR := $(notdir $(SFILES)) # .S ( )
CFILENDIR := $(notdir $(CFILES)) # .c ( )
SOBJS := $(patsubst %, obj/%, $(SFILENDIR:.S=.o)) # SFILENDIR .S .o , obj/
COBJS := $(patsubst %, obj/%, $(CFILENDIR:.c=.o)) # CFILENDIR .c .o , obj/
OBJS := $(SOBJS) $(COBJS) #OBJS SOBJS COBJS
VPATH := $(SRCDIRS) #VPATH SRCDIRS
.PHONY: clean # clean
$(TARGET).bin : $(OBJS) # .o .bin
$(LD) -Timx6ul.lds -o $(TARGET).elf $^ # .o .elf
$(OBJCOPY) -O binary -S $(TARGET).elf $@ # .elf .bin
$(OBJDUMP) -D -m arm $(TARGET).elf > $(TARGET).dis # .elf .dis
$(SOBJS) : obj/%.o : %.S # .S .o
$(CC) -Wall -nostdlib -c -O2 $(INCLUDE) -o $@ $<
$(COBJS) : obj/%.o : %.c # .c .o
$(CC) -Wall -nostdlib -c -O2 $(INCLUDE) -o $@ $<
clean: #
rm -rf $(TARGET).elf $(TARGET).dis $(TARGET).bin $(COBJS) $(SOBJS)
3、リンクファイル:
SECTIONS{
. = 0X87800000;
.text :
{
obj/start.o
*(.text)
}
.rodata ALIGN(4) : {*(.rodata*)}
.data ALIGN(4) : { *(.data) }
__bss_start = .;
.bss ALIGN(4) : { *(.bss) *(COMMON) }
__bss_end = .;
}