嵌入式驅動關於Makefile的編寫例子

2021-07-08 20:54:07 字數 762 閱讀 6411

linux 驅動總結

linux驅動介面裡的_init _exit 其實就是巨集。

linux驅動程式不能用gcc直接編譯生成模組。要用makefile

ifneq ($(kernelrelease),)

obj-m := test.o

else

#kerneldir ?= /lib/modules/$(shell uname -r)/build

kerneldir := /home/twei/code/linux-2.6.35.3

pwd := $(shell pwd)

modules:

$(make) -c $(kerneldir) m=$(pwd) modules

endif

clean:

rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.order *.symvers   

其中值得注意的是

$(make) -c $(kerneldir) m=$(pwd) modules和rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.order *.symvers這兩句前面需要加入tab鍵,因為它們是命令,具體詳細解釋請參考makefile的詳細教程,

而kerneldir屬於linux核心的編譯路徑,obj-m :=test.o屬於需要編譯的驅動模組,一般情況只需要簡單的修改test.o的名字就能正常的編譯。      

嵌入式學習Makefile

make是乙個工具,用來構建和管理軟體享目。之前是個編譯乙個hello.c的程式需要一條gcc命令。但是乙個軟體工程有大量的原始檔需要gcc編譯,手工逐條敲命令編譯顯然是低效且浪費時間的。make能夠使整個軟體工程的編譯,鏈結只需要乙個命令就可以完成。makefile檔案中記錄了一系列規則 targ...

嵌入式筆記之Makefile

1 src shell ls c 2 objs patsubst c,o,src 3 test objs 4 gcc o 5 o c 6 gcc c o 7 cleam 8 rm f test o 注 在makefile編寫規則中,表示規則的目標檔名,表示所有不重複的依賴檔名,表示第乙個依賴檔名。假...

嵌入式linux IIC驅動

linux驅動和裝置隔離,驅動分層,iic驅動框架分為兩部分 1.1 iic匯流排驅動 platform是虛擬匯流排,針對沒有匯流排的裝置實現,匯流排 裝置 驅動框架,iic不用虛擬,可直接用匯流排bus。iic匯流排驅動有兩個重要資料結構 i2c adapter,i2c algorithm。i2c...