裸機開發
- 底層,跟寄存器打交道,有些MCU提供了庫
linux驅動開發
- linux下驅動開發直接操作寄存器,不現實
- 根據Linux下的各種驅動框架,進行開發;一定要滿足框架,也就是linux下各種驅動框架的掌握;
- 在linux下,驅動最終表現(對應的外設)是 /dev/xxx下的文件;打開、關閉、讀寫都可以
- 現在的內核基本都支持設備樹,這個.dts文件,此文件描述了板子的設備信息;(內核通過分析這個.dts設備樹文件,就能夠知道當前板子上的設備信息)
linux下驅動開發分類
linux驅動分爲三大類:
- 字符設備驅動; 最多的;
- 塊設備驅動; 與存儲設備的相關的(SD卡,emmc,ssd,硬盤等)
- 網絡設備驅動;網卡
一個設備不是說一定只屬於一個類型。比如USB WIFI、SDIO WIFI,屬於網絡設備驅動
又因爲它有USB和SDIO,因此也屬於字符設備驅動;