linux的驱动开发——基于linux的单片机开发简介
1.基于linux的單片機開發和裸機開發的區別
\qquad單片機的裸機開發和基于linux的單片機開發,是有這本質的不同。
\qquad單片機的裸機開發更加底層,它是直接對寄存器進行操作,進而實現單片機的各種功能,即使有些MCU提供了庫函數,但是本質還是對寄存器的種種操作。
\qquad基于linux的單片機開發,這里的意思是單片機的芯片上要運行linux操作系統。linux操作系統包括三部分,一是操作系統內核,二是驅動程序,三是應用程序。這里面,驅動程序獲取外設,傳感器的數據,控制外設;驅動程序獲取的數據,可以提交給應用數據,再進行各種利用和處理。所以不同于裸機開發的直接操作寄存器,基于linux的單片機開發,需要編寫驅動程序,與單片機的各種外設打交道,從而獲取外設的數據,或者控制外設;從外設獲取的數據,提交給應用程序,可以進一步加工利用。
2.驅動程序和應用程序
\qquadlinux的操作系統內核和驅動程序運行在內核空間,應用程序運行在用戶空間。應用程序訪問內核空間時,有三種方式:系統調用,異常和陷入。基于linux的單片機開發,最重要的就是驅動程序的開發,其次是還有一些應用程序的開發,比如一些測試程序。
3.驅動程序的開發
\qquad驅動程序的開發是基于linux下的各種驅動框架的開發;linux下一切皆文件,驅動程序設備的最終表現也是文件,一般表現為/dev/×××,涉及的操作有對文件的打開,關閉,讀寫等等。
4.驅動程序的開發分類
\qquad字符設備驅動、塊設備驅動、網絡設備驅動
\qquad字符設備驅動:I/O傳輸過程中,以字符為單位進行傳輸。用戶對字符設備發出讀寫請求,硬件設備讀寫操作基本同時開始。
\qquad塊設備驅動:數據以塊為單位進程傳輸,用戶對塊設備讀寫時,硬件設備不會立即開始。磁盤類,閃存類都封裝成塊設備。
\qquad網絡設備驅動:網絡設備是一類特殊的設備,它不像字符設備和塊設備那樣通過特定的設備文件進行訪問,而是通過socket函數進行訪問
總結
以上是生活随笔為你收集整理的linux的驱动开发——基于linux的单片机开发简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客16437 买铅笔
- 下一篇: linux基础知识——IPC之管道