Linux 核心 驅動開發總結

2021-06-18 16:29:25 字數 1076 閱讀 1124

總體來看,需要乙個階段性總結了,因為現在sd卡的除錯也進入了卡殼期。大概會出一系列的總結文章,主要涉及的主題在下面列出:

1、開發工具:gcc/gdb/vim/ctags

2、makefile和kconfig:linux核心的配置與編譯,更好的理解模組化開發

3、除錯技術:

無敵的printf等;注意整體的流程以及與核心的互動;

4、常用的shell命令:

grep查詢特定字串;find查詢指定的檔案

5、特定驅動總結【從體系結構相關arch和體系結構無關driver兩邊分析以及它們之間的互動】

(1)觸屏驅動開發總結

(2)lcd/framebuffer等顯示系統驅動開發總結

(3)sd卡驅動總結以及除錯遇到的問題

6、相關技術

(1)中斷系統在驅動開發中的應用,特別是在基於xen這一層之後,中斷的發生過程要仔細分析一次

(2)程序排程子系統在驅動開發中的應用,在sd卡中要觀察wat_for_completion

不同與nor flash,nand flash對外介面中的資料與位址線是分時復用的,這也就造成了nand flash本身對外沒有專門的位址線可以直接連線到cpu的引腳上,nand flash 與cpu的互動要通過乙個中介來完成,那就是nand flash 控制器,在s3c2440晶元中就整合有這樣乙個控制器。

由於nand flash不能與cpu直連,而cpu在加電後會去0x0處取指執行,所以系統在reset之後是沒有辦法從nand flash直接啟動的,但在s3c2440中採用了一種迂迴的方式來完成從nand中啟動系統,在cpu中整合有乙個4kb的sram(英文名字叫steppingstone,墊腳石),當系統被設定成從nand falsh啟動(使用om[1:0]引腳的電平來控制)時,nand flash控制器會在啟動後把nand flash中的前面4kb的內容copy到sram墊腳石中,因為sram與cpu是直連的,又因為設定的是從nand flash啟動,這時的sram墊腳石會被對映到cpu地地空間的0位址處,於是cpu便從sram的0位址外取指令並執行,這4kb的**一般是將nand中剩下的**拷貝到sdram中,然後跳轉過去執行,此後這4kb的sram還可以用作其它用途。

Linux裝置驅動 核心開發

linux裝置驅動需要使用核心api來實現,一般被包含在linux核心原始碼樹中。驅動可以編譯到核心,隨著核心一起在系統啟動的時候被載入。也可以編譯成核心模組,在系統執行起來之後動態地載入到核心中,使得除錯的時候無需重新編譯核心,也無需重啟系統,很大程度上方便了驅動 的除錯。但並不是只有裝置驅動才能...

linux核心字元裝置驅動開發

1,對驅動的理解 對於一般驅動程式來說,只需要配置控制器的暫存器就可以 但是在linux作業系統中,軟體要讓硬體辦事,就要滿足硬體的規矩,也就是按驅動框架來開發硬體驅動程式 驅動程式就要受到linux的約束,這個約束就被稱為linux驅動框架。linux的驅動框架有很多 字元裝置驅動框架 塊裝置驅動...

linux 核心 驅動

首先 1.建立裝置 分配cdev結構體 if globalmem major 手動分配 ret register chrdev region devno,1,globalmem else globalmem 提供給上層使用 2 建立核心裝置 struct globalmem dev globalme...