· 多年嵌入式人才培養及項目研發經驗總結
· 數百家企業嵌入式研發崗位人才需求匯總
· 數十所嵌入式專業大學院校教學現狀調研
· 側重實踐及案例分析并輔以代碼加以講解
在嵌入式行業飛速發展的今天,嵌入式操作系統的應用越來越廣泛,vxworks具有良好的實時性,被大量應用于航空、通信、國防、工業控制、網絡設備、醫療設備、消費電子等嵌入式實時應用領域。
本書共24章,按照初學者學習的一般步驟,詳細介紹了vxworks的開發環境、內核分析和應用程序開發、驅動程序開發與原理和板級支持包流程與移植,每章均配以實例進行講解。
本書語言通俗、實例豐富、代碼分析詳盡,有較強的實用性和參考價值,適合大專院校嵌入式相關專業學生學習參考,也可供嵌入式開發人員和系統設計人員參考使用。
第1部分 vxworks的開發環境
第1章 使用tornado
1.1 概述
1.2 tornado的安裝目錄
1.3 創建一個工程
1.3.1 可加載工程和可引導工程
1.3.2 實例:創建可加載工程
1.3.3 實例:創建可引導工程
1.4 更加有效率地工作
1.4.1 開發環境基本設置
1.4.2 實例:設置一個更熟悉的編輯器
1.4.3 使用tcl語言定義工具
第2章 編譯工程——builder
2.1 編譯工程及boot rom
2.1.1 編譯工程
2.1.2 編譯boot rom
2.1.3 實例:制作軟盤引導盤
2.1.4 深入1:批處理文件mkboot
2.1.5 深入2:制作u盤引導盤
2.1.6 深入3:制作硬盤引導盤
2.1.7 深入4:制作一個引導rom
2.2 深入編譯環境
2.2.1 創建的過程
2.2.2 拋棄ide
2.2.3 使用diab
2.3 了解makefile
2.3.1 makefile的作用
2.3.2 makefile格式
2.3.3 解決makefile所導致的錯誤
第3章 加載——ftp server
3.1 ftp server的設置
3.1.1 用戶和權限
3.1.2 其他設置
3.1.3 實例:下載一個工程
3.2 從信息看狀態
3.2.1 正常下載過程
3.2.2 下載失敗的原因
3.3 從其他設備加載操作系統
第4章 管理工程——work space
4.1 管理文件
4.1.1 文件的位置
4.1.2 文件依賴關系
4.2 管理組件
4.2.1 vxworks的各種組件
4.2.2 查找組件并修改屬性
4.2.3 裁剪組件
4.3 編譯選項
4.3.1 編譯規則
4.3.2 宏定義
4.3.3 其他選項
第5章 連接目標機——target server
5.1 配置target server
5.1.1 基本配置內容
5.1.2 重要配置屬性
5.2 實例:通過網絡連接目標機
5.3 實例:配置串口連接主機
5.4 連接錯誤的解決辦法
5.4.1 目標文件不正確
5.4.2 網絡錯誤
5.4.3 目標機無響應
5.4.4 target server緩沖池不足
5.4.5 網絡速度慢
第6章 交叉調試——debugger
6.1 基本調試過程
6.1.1 運行debugger
6.1.2 發起任務
6.1.3 連接任務
6.2 斷點
6.2.1 設置斷點
6.2.2 管理斷點
6.3 獨特的查看功能
6.3.1 源代碼與匯編混合查看
6.3.2 調試命令行
6.3.3 其他功能
6.4 系統級調試設置
第7章 瀏覽目標機資源——browser
7.1 browser所提供的信息
7.1.1 browser的設置
7.1.2 目標機信息
7.2 實例:透過現象看調試
7.2.1 查看內存泄露
7.2.2 分配任務優先級
7.2.3 確定任務堆棧
7.2.4 查看中斷掛接情況
7.2.5 查看任務狀況
第8章 與目標機的交互——shell及其他
8.1 shell
8.1.1 shell的常用特性
8.1.2 shell的快捷操作
8.1.3 shell的常用命令
8.1.4 shell的環境變量
8.1.5 執行腳本
8.2 windview
8.2.1 設置windview
8.2.2 分析任務時序圖
8.3 triggering
8.3.1 triggering設置
8.3.2 triggering的使用
第9章 軟件硬件同時開發——vxsim
9.1 集成的vxsim
9.1.1 vxsim適用范圍
9.1.2 vxsim的配置
9.1.3 vxsim的中斷系統
9.2 功能更強的full vxsim
9.2.1 full vxsim所需的網絡配置
9.2.2 創建支持網絡連接的full vxsim映像
9.2.3 啟動full vxsim
9.2.4 運行多個full vxsim
9.3 實例:在vxsim上運行程序
第2部分 內核分析和應用程序開發
第10章 管理任務——任務的狀態
10.1 任務概況
10.1.1 任務狀態
10.1.2 任務調度
10.1.3 任務優先級
10.2 實例:生成、管理任務
10.2.1 任務控制api
10.2.2 銷毀任務
10.2.3 控制任務狀態的切換
10.3 深入:任務切換的深層原因
10.3.1 時鐘中斷和時間片調度
10.3.2 優先級搶占調度機制
10.3.3 任務控制塊
第11章 任務間的交互——同步與通信
11.1 任務之間的交流
11.1.1 共享內存
11.1.2 互斥
11.1.3 信號量
11.1.4 消息隊列和管道
11.1.5 使用網絡的任務間通信
11.1.6 信號
11.2 實例:任務間交流
11.2.1 通過信號量實現互斥
11.2.2 信號量實現同步
11.2.3 管道與消息隊列
11.3 其他通信手段
第12章 控制時間——系統計時
12.1 系統時間
12.1.1 系統時間的來源
12.1.2 與現實時間相聯系
12.2 系統計時控制
12.3 看門狗計時器
12.3.1 實例1:看門狗計時
12.3.2 實例2:看門狗定時
12.3.3 實例3:看門狗延時
12.4 其他的計時方法
12.4.1 使用cpu時間戳計時
12.4.2 實例:計算cpu頻率
第13章 存儲信息——訪問文件系統
13.1 vxworks中的文件系統
13.1.1 操作文件的辦法
13.1.2 實例:文件操作
13.1.3 打開文件的過程
13.1.4 讀取文件的過程
13.1.5 文件系統的作用
13.1.6 文件系統的特殊功能
13.1.7 文件系統的安裝流程
13.2 文件系統分析
13.2.1 dosfs
13.2.2 rawfs
13.2.3 cdromfs
13.2.4 tapefs
13.3 深入:如何提高訪問效率
13.4 實例:支持多硬盤分區
第14章 與外界的交互——控制硬件
14.1 驅動程序管理
14.1.1 文件、設備、驅動程序
14.1.2 驅動管理3張表
14.1.3 驅動及設備的管理
14.2 訪問硬件的手段
14.2.1 創建設備
14.2.2 操作設備
14.3 操作硬件
14.3.1 實例:測試用程序
14.3.2 多設備異步通信——select
14.4 vxworks中的隱含設備
第15章 聯通的世界——訪問網絡
15.1 vxworks中的網絡組件
15.1.1 層次結構
15.1.2 基本組件
15.1.3 配置網絡
15.1.4 操作路由表
15.1.5 zbuf
15.1.6 使用標準i/o訪問函數
15.2 實例:網絡編程
15.2.1 建立tcp連接
15.2.2 建立udp連接
15.2.3 使用zbuf訪問tcp
15.2.4 創建及使用ftp
第16章 vxworks程序設計
16.1 資源
16.1.1 資源的有效利用
16.1.2 資源的保護
16.2 優先級安排
16.3 保證時間特性
第3部分 驅動開發與原理
第17章 硬件資源——操作硬件
17.1 硬件訪問
17.1.1 內存訪問
17.1.2 通用的內存映射程序
17.1.3 i/o端口訪問
17.2 中斷
17.2.1 輪詢方式
17.2.2 中斷
17.2.3 中斷號與中斷向量
17.2.4 中斷復用
17.2.5 中斷處理中的問題
17.3 訪問特定硬件的api
17.3.1 訪問pci
17.3.2 中斷相關的api
第18章 大道至簡——字符設備
18.1 字符設備驅動程序
18.1.1 字符設備驅動程序的數據結構
18.1.2 字符設備驅動程序的接口
18.1.3 中斷處理
18.1.4 安裝驅動程序和創建設備
18.1.5 支持select功能
18.2 實戰字符設備開發
18.2.1 板卡介紹
18.2.2 程序實現
第19章 永久的記憶——塊設備
19.1 塊設備驅動程序的結構
19.2 塊設備驅動程序的接口
19.3 安裝塊設備驅動程序
第20章 聯通的基礎——網絡設備
20.1 網絡設備的數據結構
20.2 網絡設備接口層
20.2.1 endload
20.2.2 endunload
20.2.3 endsend
20.2.4 endmcastaddradd、endmcastaddrget和endmcastaddrdel
20.2.5 endpollsend、endpollreceive
20.2.6 endstart
20.2.7 endstop
20.2.8 endaddressform
20.2.9 endaddrget
20.2.10 endpacketdataget
20.2.11 endioctl
20.3 中斷模式下接收數據
20.4 網絡設備驅動程序的安裝
第21章 usb設備——usb 1.1支持
21.1 usb工作過程
21.2 usb外設端協議棧
21.2.1 usb外設端協議棧結構
21.2.2 usb外設端協議棧實現
21.2.3 usb外設端協議驅動程序
21.2.4 usb外設端控制器驅動程序
21.2.5 再看“回調函數”
21.3 usb主機端協議!
21.3.1 usb主機端協議棧結構
21.3.2 usb主機端協議棧實現
21.3.3 usb主機端驅動程序
第22章 usb設備——usb 2.0支持
22.1 設備端協議!
22.2 主機端協議!
22.2.1 usbd與驅動程序
22.2.2 與已有程序的兼容
第4部分 板級支持包流程與移植
第23章 多樣化的主板——板級支持包bsp
23.1 引導過程
23.2 bsp的流程
23.2.1 bsp的作用和結構
23.2.2 bsp初始化硬件
23.3 bsp移植
23.3.1 實現bsp所需要的工作
23.3.2 bsp中的系統接口
第24章 珠聯璧合——bsp與開發環境的結合
24.1 配置工具與bsp的關系
24.1.1 cdf文件分析
24.1.2 tornado下通過cdf文件對vxworks進行配置的過程
24.2 自制bsp配置
24.2.1 實例:增加自定義文件夾結構
24.2.2 創建組件的一般步驟
附錄 新的vxworks
fl.1 新開發環境
fl.1.1 新的界面
fl.1.2 新的開發工具
fl.1.3 開發環境的擴展
fl.1.4 與tornado的對比
fl.2 新特性
fl.2.1 實時進程rtp
fl.2.2 錯誤檢測與報告