《VxWorks設備驅動開發詳解 》(曹桂平版)對VxWorks的設備驅動開發講解得很詳細,也包括了很多作者的個人開發經驗在其中,因此是VxWorks設備驅動開發的上佳參考資料。
一般在網絡上下載該文檔都需要積分,或者不夠高清,最近發現了一個比較好的電子版,因此將其鏈接記錄如下以備後用:
https://www.vxworks.net/app/771-vxworks-device-driver
1.通常在設備打開函數中進行中斷註冊,以提高對中斷的共享性;
2.驅動代碼的執行環境包括:
- 任務上下文
- 中斷上下文
3.設備類型包括:
- 字符設備:執行字節流訪問,如終端、串口
- 塊設備:基於文件系統,如磁盤、Flash
- 網絡設備:用於網絡通信,不具備文件節點
4.驅動工作方式:
- 輪詢模式
- 中斷模式
5.驅動與硬件進行數據交互的方式:
- DMA方式(在嵌入式下使用較少)
- 直接拷貝方式
6.注意事項:對外設寄存器進行操作時,必須使用volatile修飾符;
7.三張表:
- 系統設備表
- 系統驅動表
- 文件描述符表
8.虛擬設備:
- 管道設備
- 虛擬內存設備
- RamDisk設備
- 網絡設備
9.VxWorks中管道的底層實現是基於VxWorks消息隊列的;
10.網絡設備不等於網絡文件系統;
11.VxWorks中最常用的文件系統:MS-DOS兼容性文件系統;
12.虛擬根文件系統VRFS:應用層需要POSIX根文件系統支持時,內核才需要包括VRFS支持。VRFS僅提供根目錄,爲其他文件系統提供掛載點;
13.事務型(Transaction)文件系統,HRFS,亦即高可靠性文件系統;
14.MS-DOS兼容型文件系統,dosFs,使用最廣泛。支持層次性文件和目錄管理方式,支持VFAT長文件名,支持FAT12、FAT16、FAT32文件格式;
15.內核與塊設備之間的緩存機制:
- Vx5.5:CBIO ,cached block I/O;
- Vx6.4:XBD,extend block device;
16.原始文件系統,rawFs,將整個塊設備作爲單個文件進行操作,不存在文件和目錄層次性管理功能;
17.ROMFS,只讀文件系統,可將任何格式的文件存儲在ROMFS下,然後將其編入內核,作爲內核映像的一部分。ROMFS只存在於RAM中。於ramdisk類似,但是ramdisk只能在VxWorks啓動完成後創建,ROMFS是在編譯內核映像過程中創建的。