Android深度探索(卷1)HAL與驅動開發第十章讀書筆記

來源:互聯網
上載者:User

標籤:

對於複雜的Linux驅動以及HAL等程式庫,需要使用各種方法對其進行測試。如設定斷點,逐步跟蹤代碼,輸出調試資訊等。本章主要講述了如何利用開發板、Android模擬器以及一些函數、工具調試嵌入式Linux核心模組、可執行程式和共用庫。

1.列印核心調試資訊:printk

該函數的用法和printf函數類似,只不過printk函數運行在核心空間,printf函數運行在使用者空間。函數原型: asmlinkage printk(const char *fmt, ...) 第一個參數表示格式字串。後面是可變參數。

2.防止printk函數降低Linux驅動效能。

雖然使用printk函數可以很方便地將訊息寫入記錄檔或控制台。但大量使用printk函數頻繁地動作記錄檔案或者控制台裝置檔案會嚴重影響Linux驅動的效能。因此Linux在開發的階段可以使用printk函數輸出訊息,而在正式發布Linux驅動的時候去掉。可以通過C語言中的編譯指令來控制printk函數的輸出。

3.通過虛擬檔案系統(/proc)進行資料互動

在Linux檔案系統中,/proc經常被用來作為核心空間與使用者空間進行資料互動的工具。/proc是虛擬檔案系統,是記憶體映射。所有對/proc的操作都是對記憶體的讀寫。所以讀寫/proc檔案的速度要比裝置檔案系統/dev要快。有四個函數:

proc_mkdir

create_proc_entry

create_proc_read_entry

remove_proc_entry

4.調試工具

(1).用gdb調試使用者空間程式。

(2).用gdbserver遠端偵錯使用者空間程式

(3).用kgdb遠端偵錯核心程式

Android深度探索(卷1)HAL與驅動開發第十章讀書筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.