芯片廠商提供的驅動為編譯好的softd.o檔案(他們不想給原始碼),如何把它編譯到 boot image 里邊去?
uj5u.com熱心網友回復:
makefile里直接寫: obj-y += softd.o這樣就可以了
uj5u.com熱心網友回復:
這里給一個例子:gcc -c test1.c -o test1.o
gcc -c test2.c -o test2.o
gcc test1.o test2.o -o test
可以看到 -c選項保證編譯器只編譯不鏈接,而不加任何選項的gcc命令可以把若干個.o檔案鏈接成目標問題。
另外,對于.o檔案,理論上你是可以通過objdump -t softd.o 看到他們在該檔案中創建的函式(其實已經是符號了),知道這個資訊會有利于你編譯(連接)通不過時可以找到具體原因。
uj5u.com熱心網友回復:
把softd.o檔案名改為softd.o_shipped,然后再makefile里面加obj-y += softd.o就可以了uj5u.com熱心網友回復:
Linux 驅動的編譯主要修改驅動代碼所在目錄下的 Makefile 和 Kconfig 檔案。對著其他驅動照著寫就可以了,比如:
Kconfig
config YOUR_DRIVER
default y
(默認值 y 對應編譯進內核)
Makefile:
obj-$(CONFIG_YOUR_DRIVER) += softd.o
編譯后,查看 Linux 原始碼頂層目錄下的 .config 檔案,確認 CONFIG_YOUR_DRIVER 的值是不是 y 。
如果是,就證明已經成功編譯進內核。
uj5u.com熱心網友回復:
直接在Makefile里添加就OK了:obj-y += softd.o
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/31156.html
標籤:驅動程序開發區
