編寫一個陌生的linux驅動的技巧

編寫一個陌生的linux驅動的技巧

當你要寫一個陌生的linux子系統的驅動時,例如v4l2的camera sensor驅動。首先你得去google、百度搜索一些關於這個子系統****框架的介紹,因爲網上文章每每有錯誤,因此你要多看幾篇好的文章,從而有必定了解。而後須要看linux相關的子系統的代碼,特別是子系統的api,從而更深刻的瞭解。而後你找一個使用該子系統的應用層和驅動代碼例子,進一步理解。而後你基於已有的demo硬件和該子系統設備的驅動,例如camera sensor驅動ov5640_mipi.c的代碼,而後基於此代碼和硬件作實驗,看看若是把某些函數實現註釋掉是否對設備顯示的基本功能是否有影響,從而知道哪些功能實現是必須的,哪些是擴展的。而後你實現你的設備驅動時,首先搭個框架,把基本功能先實現,配合能用的應用層程序看效果。(即先用好的demo硬件和驅動驗證應用程序沒有問題,並經過裁剪和嘗試,驗證驅動的哪些實現api、ioctl等是必須的,再實現你的新硬件的驅動的框架)。當基本功能實現後,加強了你對子系統的工做機理的理解後,你再考慮增長擴展功能,和後面的優化。必定要多作各類可能狀況的試驗,參考已有驅動和應用層的代碼,這樣你會更理解該子系統的工做機理。
而且通常用到對比法:即工做正常的和不工做的進行各類狀況對比,從而找到緣由。固然其中還要利用示波器對比硬件的信號波形、電源等,排除硬件問題。html

關於具體的寫linux驅動的方法、技巧和注意事項,歡迎觀看個人《如何編寫linux設備驅動》的視頻:
https://edu.51cto.com/course/17132.htmllinux

另外個人相關培訓視頻請看:
歡迎觀看我發佈的各個課程: https://edu.51cto.com/lecturer/8896847.htmlapi

另外個人免費的linux各類驅動開發課程以下:
https://edu.51cto.com/course/17138.html框架

相關文章
相關標籤/搜索