1. 程式人生 > >s3c6410開發板核心配置和編譯&將已寫好的驅動程式編譯進核心

s3c6410開發板核心配置和編譯&將已寫好的驅動程式編譯進核心

一、s3c6410開發板核心配置和編譯

1、解壓核心包,將smdk6410_config核心配置檔案拷貝成.config(預設配置檔案)到核心原始碼樹下。一般情況下,關於平臺的配置檔案存放在核心原始碼樹的arch/arm/configs/目錄下,這裡用到的smdk6410_config是已經配置好了的配置檔案。

2、通過圖形介面調整配置

$>make menuconfig (要求有ncurses庫)
或:
$>make xconfig
$>make gconfig

要調整的配置選項有:
a. 取消enable loadable module support的支援
b. 進入Device Driver -> Graphics support --- 進入frame buffer支援部分,將LCD屏設定為480*272

3、修改核心原始碼樹下的Makefile,搜尋CROSS_COMPILE

CROSS_COMPILE := arm-linux-    將編譯工具鏈設定為arm-linux-工具鏈

4、make -----大約十幾分鍾即可完成整個編譯過程、生成的zImage在核心原始碼樹下arch/arm/boot/下

二、將已經寫好的驅動程式編譯進核心

1、將寫好的有效驅動程式原始檔拷貝到核心原始碼樹下/drivers/arm-drv/ 這裡arm-drv是專門為自己寫的驅動程式而建立的,以區別於其他驅動程式。

2、在arm-drv目錄下建立關於該驅動的Kconfig檔案

Kconfig檔案的編寫語法相對簡單,可以參考核心原始碼中其他驅動中的Kconfig檔案而編寫,比如driver/watchdog/Kconfig看門狗驅動的Kconfig檔案

3、修改上層程式碼的Kconfig檔案、在合適位置加入source "drivers/arm-drv/Kconfig"這一行

一般上層Kconfig檔案是arch/arm/Kconfig

4、通過make menuconfig測試如果正確,則圖形配置介面將出現與該驅動程式相關的選項,選中該選項儲存退出後在核心原始碼樹目錄下將會生成新的.config檔案。開啟並檢視此檔案可以發現其中含有關於該驅動的三行內容:

這行在(6)中修改driver/Makefile時要用到

CONFIG_6410DRV=y

以下兩個在編輯arm-drv下的Makefle要用到
CONFIG_CHAR01=y
CONFIG_CHAR02=y

5、在arm-drv目錄下建立Makefile並進行編輯

obj-$(CONFIG_CHAR01) += char_test01.o       
obj-$(CONFIG_CHAR02) += char_test02.o

這裡有兩個.o檔案分別對應arm-dev下的.c檔案

(參考看門狗驅動程式driver/watchdog/中Makefile的規則)

6、修改上層即driver/Malefile,

在合適的位置加入obj-$(CONFIG_6410DRV) += arm-drv/這一行

7、回到核心原始碼樹目錄下make 進行編譯,這樣就將驅動程式編譯進了核心