嵌入式軟件工程師面試題目整理(二)
linux中內核空間及用戶空間的區別?用戶空間與內核通信方式有哪些?
字符設備和塊設備的區別,請分別列舉一些實際的設備說出它們是屬于哪一類設備
linux中系統調用過程?如:應用程序中read()在linux中執行過程即從用戶空間到內核空間?
查看驅動模塊中打印信息應該使用什么命令?如何查看內核中已有的字符設備的信息?如何查看正在使用的有哪些中斷號?
copy_to_user()和copy_from_user()主要用于實現什么功能?一般用于file_operations結構的哪些函數里面?
請簡述主設備號和次設備號的用途。如果執行mknodchartestc464,創建chartest設備。請分析chartest使用的是那一類設備驅動程序。
設備驅動程序中如何注冊一個字符設備?分別解釋一下它的幾個參數的含義。
字符型驅動設備怎么創建設備文件?
insmod一個驅動模塊,會執行模塊中的哪個函數?rmmod呢?這兩個函數在設計上要注意哪些?遇到過卸載驅動出現異常沒?是什么問題引起的?
設備驅動模型三個重要成員是?platform總線的匹配規則是?在具體應用上要不要先注冊驅動再注冊設備?有先后順序沒?
內核函數mmap的實現原理,機制?
申請內存的方式
IIC原理,總線框架,設備編寫方法
Linux中的用戶模式和內核模式是什么含意
怎樣申請大塊內核內存?
用戶進程間通信主要哪幾種方式
內核配置編譯及Makefile?
談談對Volatile關鍵字的理解
framebuffer機制
spinlock與信號量的區別
linux中的同步機制
自旋鎖和信號量在互斥使用時需要注意哪些?在中斷服務程序里面的互斥是使用自旋鎖還是信號量?還是兩者都能用?為什么?
驅動里面為什么要有并發、互斥的控制?如何實現?講個例子?
linux中斷實現機制、tasklet和workqueue的區別和底層實現的區別,為什么要區分中斷上半部和中斷下半部
中斷和輪詢哪個效率高?怎樣決定是采用中斷方式還是采用輪詢方式去實現驅動?
寫一個中斷服務需要注意哪些?如果中斷產生之后要做比較多的事情你是怎么做的?
IRQ和FIQ有什么區別,在CPU里面是是怎么做的?
Linux軟中斷和工作隊列的作用是什么