bsp工程管理的目的就是為了模組化整理**,同乙個屬性的檔案存放在同乙個目錄裡面。
新建所需的資料夾,將同一屬性的檔案放到相應的資料夾中。
修改clk、led、delay驅動,建立對應的驅動檔案,然後放置到對應的目錄中。
根據編寫的新驅動檔案,修改main.c檔案內容。
設定vscode標頭檔案路徑;先建立.vscode目錄,然後開啟c/c++配置器(ctrl+shift+p 輸入"c/c++:ed"),會在.vscode目錄下生成乙個叫做c_cpp_properties.json的檔案。
若需要新增新檔案,可在這一介面新增檔案路徑"$/ ** / ** "
若需要新增新檔案,可在這一介面分別新增標頭檔案路徑以及c檔案路徑
目標檔案通過修改 target ?= 「檔名」 實習
cross_compile ?= arm-linux-gnueabihf-
target ?= ledc
cc :=
$(cross_compile)
gccld :=
$(cross_compile)
ldobjcopy :=
$(cross_compile)
objcopy
objdump :=
$(cross_compile)
objdump
incudirs := imx6u \
bsp/clk \
bsp/led \
bsp/delay
srcdirs := project \
bsp/clk \
bsp/led \
bsp/delay
include :=
$(patsubst %, -i %, $(incudirs)
)sfiles :=
$(foreach dir, $(srcdirs)
, $(wildcard $(dir)
/*.s))
cfiles :=
$(foreach dir, $(srcdirs)
, $(wildcard $(dir)
/*.c))
sfilendir :=
$(notdir $(sfiles)
)cfilendir :=
$(notdir $(cfiles)
)sobjs :=
$(patsubst %, obj/%, $(sfilendir:.s=.o)
)cobjs :=
$(patsubst %, obj/%, $(cfilendir:.c=.o)
)objs :=
$(sobjs)
$(cobjs)
vpath :=
$(srcdirs)
.phony: clean
$(target)
.bin :
$(objs)
$(ld)
-timx6u.lds -o $(target)
.elf $^
$(objcopy)
-o binary -s $(target)
.elf $@
$(objdump)
-d -m arm $(target)
.elf >
$(target)
.dis
$(sobjs)
: obj/%.o : %.s
$(cc)
-wall -nostdlib -c -o2 $(include)
-o $@ $<
$(cobjs)
: obj/%.o : %.c
$(cc)
-wall -nostdlib -c -o2 $(include)
-o $@ $<
clean:
rm -rf $(target)
.elf $(target)
.dis $(target)
.bin $(objs)
嵌入式Linux學習歷程 Makefile
makefile用來完成以下功能 1 如果工程沒有編譯過,那麼工程中的所有.c檔案都要被編譯並且鏈結成可執行檔案。2 如果工程中只有個別c檔案被修改了,那麼只編譯這些被修改的c檔案。3 如果工程的標頭檔案被修改了,那麼需要編譯所有引用這個標頭檔案的c檔案,並且鏈結成可執行檔案。例 乙個工程 通過鍵盤...
嵌入式Linux系統BSP簡介
華清遠見嵌入式學院 講師。嵌入式系統由硬體環境 嵌入式作業系統和應用程式組成,硬體環境是作業系統和應用程式執行的硬體平台,它隨應用的不同而有不同的要求。硬體平台的多樣性是嵌入式系統的主要特點,如何使嵌入式作業系統在不同的硬體平台上有效地執行,是嵌入式系統開發中需要解決的關鍵問題。解決的方法是在硬體平...
嵌入式Linux系統BSP簡介
嵌入式系統由硬體環境 嵌入式作業系統和應用程式組成,硬體環境是作業系統和應用程式執行的硬體平台,它隨應用的不同而有不同的要求。硬體平台的多樣性是嵌入式系統的主要特點,如何使嵌入式作業系統在不同的硬體平台上有效地執行,是嵌入式系統開發中需要解決的關鍵問題。解決的方法是在硬體平台和作業系統之間提供硬體相...