當前位置:編程學習大全網 - 編程語言 - linuxarm驅動開發linuxarm驅動

linuxarm驅動開發linuxarm驅動

linux內核目錄driver/usb/serial/option.c驅動請教?

arch下面是體系架構,以及平臺相關文件:

比如,把arch/arm/config裏面的s3c2410_defconfig,拷貝到內核根目錄,命名為.config

再修改根目錄Makefile,選擇arm交叉編譯工具,執行makemenuconfig就可以配置

妳定義的內核,選擇自己的驅動。

USB、TTY、LCD、網卡等驅動在不同的目錄,建議先了解和熟悉linux目錄樹結構,

以及各自對應的功能。

比如/net目錄是網絡驅動,但是/driver/net/下面是網絡相關的具體設備驅動。

假設妳有兩個網卡,壹個是DM9000,壹個是CS8900,在/driver/net/下面,對應兩個目錄,但是這兩個設備驅動,都屬於網卡驅動,在/net下面。

建議結合書本和代碼,來壹步壹步學習。比如LDD等經典書籍。

安卓內核能不能移植至ARM9開發板?

先學PC上的linux編程,內核編程,驅動編程。然後嵌入式移植到ARM9。

linux驅動開發和單片機驅動的區別?

.lonux驅動開發和單片機驅動開發的區別塞以下幾點?ARM-Linux應用開發和單片機lonux:

這裏先要做壹個說明,對於ARM的應用開發主要有兩種方式:壹種是直接在ARM芯片上進行應用開發,不采用操作系統,也稱為裸機編程,這種開發方式主要應用於壹些低端的ARM芯片上,其開發過程非常類似單片機,這裏不多敘述。

還有壹種是在ARM芯片上運行操作系統,對於硬件的操作需要編寫相應的驅動程序,應用開發則是基於操作系統的,這種方式的嵌入式應用開發與單片機開發差異較大。ARM-Linux應用開發和單片機的開發主要有以下幾點不同:

(1)應用開發環境的硬件設備不同單片機:開發板,仿真器(調試器),USB線;ARM-Linux:開發板,網線,串口線,SD卡;對於ARM-Linux開發,通常是沒有硬件的調試器的,尤其是在應用開發的過程中,很少使用硬件的調試器,程序的調試主要是通過串口進行調試的;但是需要說明的是,對於ARM芯片也是有硬件仿真器的,但通常用於裸機開發。

(2)程序下載方式不同單片機:仿真器(調試器)下載,或者是串口下載;

ARM-Linux:串口下載、tftp網絡下載、或者直接讀寫SD、MMC卡等存儲設備,實現程序下載;這個與開發環境的硬件設備是有直接關系的,由於沒有硬件仿真器,故ARM-Linux開發時通常不采用仿真器下載;這樣看似不方便,其實給ARM-Linux的應用開發提供了更多的下載方式。

(3)芯片的硬件資源不同單片機:通常是壹個完整的計算機系統,包含片內RAM,片內FLASH,以及UART、I2C、AD、DA等各種外設;

ARM:通常只有CPU,需要外部電路提供RAM以供ARM正常運行,外部電路提供FLASH、SD卡等存儲系統映像,並通過外部電路實現各種外設功能。由於ARM芯片的處理能力很強,通過外部電路可以實現各種復雜的功能,其功能遠遠強於單片機。

(4)固件的存儲位置不同單片機:通常具備片內flash存儲器,固件程序通常存儲在該區域,若固件較大則需要通過外部電路設計外部flash用於存儲固件。

ARM-Linux:由於其沒有片內的flash,並且需要運行操作系統,整個系統映像通常較大,故ARM-Linux開發的操作系統映像和應用通常存儲在外部的MMC、SD卡上,或者采用SATA設備等。

(5)啟動方式不同單片機:其結構簡單,內部集成flash,通常是芯片廠商在程序上電時加入固定的跳轉指令,直接跳轉到程序入口(通常在flash上);開發的應用程序通過編譯器編譯,采用專用下載工具直接下載到相應的地址空間;所以系統上電後直接運行到相應的程序入口,實現系統的啟動。

ARM-Linux:由於采用ARM芯片,執行效率高,功能強大,外設相對豐富,是功能強大的計算機系統,並且需要運行操作系統,所以其啟動方式和單片機有較大的差別,但是和家用計算機的啟動方式基本相同。其啟動壹般包括BIOS,bootloader,內核啟動,應用啟動等階段;

(a)啟動BIOS:BIOS是設備廠家(芯片或者是電路板廠家)設置的相應啟動信息,在設備上電後,其將讀取相應硬件設備信息,進行硬件設備的初始化工作,然後跳轉到bootloader所在位置(該位置是壹個固定的位置,由BIOS設置)。(根據個人理解,BIOS的啟動和單片機啟動類似,需要采用相應的硬件調試器進行固件的寫入,存儲在壹定的flash空間,設備上電啟動後讀取flash空間的指令,從而啟動BIOS程序。)

(b)啟動bootloader:該部分已經屬於嵌入式Linux軟件開發的部分,可以通過代碼修改定制相應的bootloader程序,bootloader的下載通常是采用直接讀寫SD卡等方式。即編寫定制相應的bootloader,編譯生成bootloader映象文件後,利用工具(專用或通用)下載到SD卡的MBR區域(通常是存儲區的第壹個扇區)。此時需要在BIOS中設置,或者通過電路板的硬件電路設置,選擇bootloader的加載位置;若BIOS中設置從SD卡啟動,則BIOS初始化結束後,將跳轉到SD卡的位置去執行bootloader,從而實現bootloader的啟動。Bootloader主要作用是初始化必要的硬件設備,創建內核需要的壹些信息並將這些信息通過相關機制傳遞給內核,從而將系統的軟硬件環境帶到壹個合適的狀態,最終調用操作系統內核,真正起到引導和加載內核的作用。

(c)啟動內核:bootloader啟動完成初始化等相關工作之後,將調用內核啟動程序。這就進入了實際的操作系統相關內容的啟動了,包括相應的硬件配置,任務管理,資源管理等內核程序的啟動。

(d)啟動應用:在操作系統內核啟動之後,就可以開始啟動需要的應用,去完成真正的業務操作了。

  • 上一篇:淺述未來計算機的發展趨勢論文 計算機發展趨勢論文
  • 下一篇:中秋節互動遊戲真心話大冒險
  • copyright 2024編程學習大全網