歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

裸機驅動與Linux設備驅動的區別

裸機驅動一般針對沒有操作系統支持的層面,不用考慮操作系統對它的調用。
Linux驅動是在裸機驅動基礎上,按照一定的規范來實現, 雖然實現的都是同一個東西,不過你發現在 Linux驅動 攙雜 了許多維護信息。
總之,Linux設備驅動就是比裸機驅動多了一些框架。
裸機底層驅動設計方法:
所謂裸機在這裡主要是指系統軟件平台沒有用到操作系統。在基於ARM處理器平台的軟件設計中,如果整個系統只需要完成一個相對簡單而且獨立的任務,那麼可以不使用操作系統,只需要考慮在平台上如何正確地執行這個單任務程序。不過,在這種方式下同樣需要一個Boot Loader,這個時候的Boot Loader一般是自己寫的一個簡單的啟動代碼加載程序。大家所熟悉的各種Boot Loader下的設備驅動,其實就是很好的裸機驅動程序。比如說U-Boot下的網卡驅動、串口驅動、LCD驅動等。
在裸機方式下,ARM的軟件集成開發環境就顯得極為重要,因為在這種方式下可以把所有代碼都放在這個環境裡面編寫、編譯和調試。在這種方式下測試驅動程序,首先要完成CPU的初始化,然後把需要測試的程序裝載到系統的RAM區/或者SDRAM中。當然,如果需要處理一些復雜的中斷處理的話,最好也把CPU的復位向量表放到RAM區中。把所有程序都調試好之後,再把最後的程序燒寫到Flash裡面去執行。
BOOTLOADER 對NANDFLASH的操作是為讀取(裝載)存儲在NAND上的內核,當內核已由BOOTLOADER 讀取到內存中去後,系統控制權交有內核控制,此時,一般是BOOTLOADER中的一些參數內核需要用到,其它基本上沒有用了,原來用於存放BOOTLOADER的內存(有的開發板NANDFLASH中有前面的4K存儲空間與內存地址重疊,小點的BOOTLOADER可一直接在這4K 的空間中執行)基本上可以由內核回收利用,所以內核不會用到BOOTLOADER上的NAND的驅動,也就就是內核需要自己的NANDFLASH驅動,不然文件系統無法加載。
相關閱讀:
Linux設備驅動開發詳解(第2版)源代碼 下載 http://www.linuxidc.com/Linux/2013-07/86977.htm
Linux設備驅動開發詳解(第2版)高清PDF http://www.linuxidc.com/Linux/2013-07/86976.htm
Linux設備驅動中的異步通知 http://www.linuxidc.com/Linux/2013-06/85293.htm
嵌入式Linux設備驅動編程環境搭建 http://www.linuxidc.com/Linux/2013-05/84532.htm
(轉載自http://www.linuxidc.com/Linux/2013-08/88799.htm)
Copyright © Linux教程網 All Rights Reserved