讀書筆記第十章

來源:互聯網
上載者:User

標籤:

第十章

列印核心的調試資訊printk:

 

printk與printf區別:

printk 函數該函數的用法與printf函數類似,具不過printk函數運行核心空間,printk函數運行在使用者空間。也就是說,像Linux驅動這樣的Linux核心程式只能使用prink函數輸出調試資訊。

 

其次應該防止printk函數可以很方便地將訊息寫入記錄檔或控制台,但是大量使用printk函數頻繁動作記錄檔案或控制台裝置檔案會嚴重影響Linux驅動的效能,因此這就要求Linux驅動只在開發階段使用printk函數輸出訊息,在正式發布Linux驅動時將可能影響效能的printk函數去掉。

然後通過虛擬檔案系統進行資料互動。

 

嵌入式調試方法:

1.模擬器。比如Qtopia Core可以用奇趣提供的Frame Buffer類比工具qvfb,ARM硬體類比可以用SkyEye開源項目。

2.遠端偵錯。調試器還在PC上,調試器與被調試的程式通過網路通訊。

3.通過LOG和Core Dump等檔案事後分析。

stdprm 標準印表機 LPT1連接埠

stdaux 標準串列裝置 COM1連接埠

stdin並不一定來自鍵盤,stdout和stderr也並不一定顯示在螢幕上,可以將它們重新導向到其他裝置或磁碟檔案上。

使用fprintf()時,第一參數推薦使用stderr而不要使用stdout,因為stderr的運行級要高一些,程式在異常退出時stderr可以輸出,而stdout就不行

對於複雜的Linux驅動及HAL等程式庫,需要使用各種方法對其進行調試,例如,設定斷點、逐步跟蹤代碼、輸出調試資訊等。Printk函數運行在核心空間,printf函數運行在使用者空間。

 

初始化Linux驅動

Static int _init printk_demo_init(void)

卸載Linux驅動

Static void _exit printk_demo_exit(void)

 

讀書筆記第十章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.