嵌入式軟體工程師筆試面試指南-Linux驅動

語言: CN / TW / HK

哈嘍,大家好。今天更新一篇驅動筆試面試總結。由於百度網盤分享的資料總是失效。所以,我把PDF版本,放在了百度網盤群組中,出現問題,可以和我及時反饋。

大家可以加我好友,好友通過後,傳送【資料群】給我,會自動拉進群裡。本文內容已同步更新在github,點選閱讀原文可以直達github。

Linux驅動

Linux驅動目錄

指令

常用的Linux指令

怎麼檢視當前程序?怎麼執行退出?怎麼檢視當前路徑?

ls 命令執行什麼功能? 可以帶哪些引數,有什麼區別?

建立目錄用什麼命令?

建立檔案用什麼命令?

複製檔案用什麼命令?

檢視檔案內容有哪些命令可以使用?

怎麼向螢幕輸出帶空格的字串,比如”hello world”?

移動檔案用哪個命令?改名用哪個命令?

刪除檔案用哪個命令?如果需要連目錄及目錄下檔案一塊刪除呢?刪除空資料夾用什麼命令?

查詢檔案內容用哪個命令?

查詢檔案用哪個命令?

cat命令

常用的GCC指令

預處理

編譯為彙編程式碼

彙編

連結

一步到位編譯

多檔案編譯

警告處理

常用的GDB除錯指令

常用的驅動開發指令

載入/解除安裝驅動

Linux驅動如何檢視驅動模組中列印資訊?

如何檢視核心中已有的字元裝置的資訊?

如何檢視正在使用的有哪些中斷號?

uboot

什麼是bootloader?

uboot啟動過程中做了那些事?

為什麼要給核心傳遞引數呢?

uboot和核心如何完成引數傳遞?

為什麼uboot要關掉cache?

檔案系統

什麼是根檔案系統?

根檔案系統為什麼這麼重要?

可執行映像檔案通常由幾部分構成,它們有什麼特點?

中斷

硬中斷 / 軟中斷是什麼?有什麼區別?

中斷為什麼要區分上半部和下半部?

中斷下半部一般如何實現?

linux中斷的響應執行流程?中斷的申請及何時執行(何時執行中斷處理函式)?

Linux驅動模型

字元裝置驅動模型

LCD驅動模型

匯流排裝置驅動模型

輸入子系統模型

platform匯流排的匹配規則是什麼?在具體應用上要不要先註冊驅動再註冊裝置?有先後順序沒?

Linux核心

核心映象格式有幾種?分別有什麼區別?

核心中申請記憶體有哪幾個函式?有什麼區別?

什麼是核心空間,使用者空間?

為什麼需要區分核心空間與使用者空間?

什麼是核心態和使用者態?

使用者空間與核心通訊方式有哪些?

核心連結串列為什麼具有通用性?

應用程式中open()在linux中執行過程中是如何從使用者空間到核心空間?

怎樣申請大塊核心記憶體?

裝置驅動

請簡述主裝置號和次裝置號的用途。

字元型驅動裝置怎麼建立裝置檔案?

裝置驅動程式中如何註冊一個字元裝置?分別解釋一下它的幾個引數的含義。

/dev/下面的裝置檔案是怎麼創建出來的?

Linux裝置中字元裝置和塊裝置有什麼主要區別?分別舉例。

驅動中操作物理絕對地址為什麼要先ioremap?

insmod,rmmod一個驅動模組,會執行模組中的哪個函式?在設計上要注意哪些問題?

NAND驅動的probe流程

Linux驅動開發中,常用的除錯方法有哪些?

Linux驅動開發常用函式

結語

資料中,難免會有一些錯誤,有任何問題,都可以在github向我提交issue。文中的勘誤,我都會更新在github中。點選閱讀原文可以直達github。

原文作者:仲一 文章來源:嵌入式軟體工程師筆試面試指南-Linux驅動 原出處:公眾號-嵌入式與Linux那些事 侵刪

分享到: