歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux驅動的兩種加載方式過程分析

Linux驅動的兩種加載方式過程分析

日期:2017/3/1 9:42:40   编辑:Linux編程

一、概念簡述

在Linux下可以通過兩種方式加載驅動程序:靜態加載和動態加載。

靜態加載就是把驅動程序直接編譯進內核,系統啟動後可以直接調用。靜態加載的缺點是調試起來比較麻煩,每次修改一個地方都要重新編譯和下載內核,效率較低。若采用靜態加載的驅動較多,會導致內核容量很大,浪費存儲空間。

動態加載利用了Linux的module特性,可以在系統啟動後用insmod命令添加模塊(.ko),在不需要的時候用rmmod命令卸載模塊,采用這種動態加載的方式便於驅動程序的調試,同時可以針對產品的功能需求,進行內核的裁剪,將不需要的驅動去除,大大減小了內核的存儲容量。

在台式機上,一般采用動態加載的方式;在嵌入式產品裡,可以先采用動態加載的方式進行調試,調試成功後再編譯進內核。

Linux下PCI設備驅動程序之注冊詳解 http://www.linuxidc.com/Linux/2014-02/97074.htm

裸機驅動與Linux設備驅動的區別 http://www.linuxidc.com/Linux/2013-08/88799.htm

Linux設備驅動開發詳解(第2版)源代碼 下載 http://www.linuxidc.com/Linux/2013-07/86977.htm

Linux設備驅動開發詳解(第2版)高清PDF http://www.linuxidc.com/Linux/2013-07/86976.htm

二、實例分析

下面以Linux下音頻驅動的加載為例,分析兩種方式的加載過程。

1、靜態加載

1)解壓內核,修改硬件架構和編譯器;

將內核壓縮文件linux-2.6.8.1-zzm.tar.bz2解壓到/home/sxy/目錄下,命令是,解壓後得到內核源碼目錄文件linux-2.6.8.1-zzm,進入該目錄,編輯Makefile文件,將ARCH改為arm,CROSS_CPMPILE改為arm-linux-,如下圖所示:

保存後退出。

2)配置內核;

在內核源碼樹目錄下,輸入make menuconfig命令,進入內核配置界面,進入“Load an Alternate Configuration File”選項,載入配置文件kernel_2410.cfg,保存退出,過程如下圖所示:

再次輸入make menuconfig命令,編輯sound選項,將其編譯進內核(*),結果如下圖所示,最後保存配置,退出。

3)編譯內核;

在源碼樹目錄下輸入make zImage命令,編譯完成後可以在/arch/arm/boot/目錄下生成zImage鏡像文件。

4)下載內核

將內核鏡像文件zImage下載到開發板上,當串口終端顯示如下信息時,表示驅動加載成功。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/103569p2.htm

Copyright © Linux教程網 All Rights Reserved