嵌入式與實時操作系統 Embedded and Real-Time Operating Systems

K.C. Wang 徐堅

買這商品的人也買了...

相關主題

商品描述

本書涵蓋了操作系統的基本概念和原則,
展示瞭如何將它們應用於設計和實現完整的嵌入式與實時操作系統。
包括ARM架構、ARM指令和編程、用於開發程序的工具鏈、用於軟件實現和測試的虛擬機、
程序執行映像、函數調用約定、運行時堆棧使用以及用彙編代碼鏈接C程序的所有基礎和背景信息。

作者簡介

王孔啟(K. C. Wang)

1960年獲中國台灣大學電機工程學士學位,1965年獲美國西北大學電機工程博士學位。
他目前是華盛頓州立大學電機工程與計算機科學學院教授,研究方向是操作系統、分佈式系統和並行計算。

目錄大綱

出版者的話
譯者序
前言
關於作者
章 引言 1
1.1 關於本書 1
1.2 本書的動機 1
1.3 本書的目標讀者 1
1.4 本書的獨特之處 2
1.5 本書的內容 3
1.6 本書可作為嵌入式系統的教科書 5
1.7 本書可作為操作系統的教科書 5
1.8 本書可用於自學 5
參考文獻 6
第2章 ARM體系結構和程序設計 7
2.1 ARM處理器模式 7
2.2 ARM CPU寄存器 8
2.2.1 通用寄存器 8
2.2.2 狀態寄存器 8
2.2.3 ARM處理器模式的變更 9
2.3 指令流水線 10
2.4 ARM指令 10
2.4.1 條件標誌和條件 10
2.4.2 分支指令 11
2.4.3 算術運算 11
2.4.4 比較運算 11
2.4.5 邏輯運算 12
2.4.6 數據移動操作 12
2.4.7 即時值和桶移位器 12
2.4.8 乘法指令 13
2.4.9 加載和存儲指令 13
2.4.10 基址寄存器 13
2.4.11 塊數據傳輸 13
2.4.12 堆棧操作 13
2.4.13 堆棧和子例程 14
2.4.14 軟中斷 14
2.4.15 PSR轉移指令 14
2.4.16 協處理器指令 14
2.5 ARM工具鏈 15
2.6 ARM系統模擬器 15
2.7 ARM程序設計 16
2.7.1 ARM彙編編程示例1 16
2.7.2 ARM彙編編程示例2 18
2.7.3 彙編和C語言的結合編程 19
2.8 設備驅動程序 25
2.8.1 系統內存映射 26
2.8.2 GPIO編程 26
2.8.3 串行I/O的UART驅動程序 27
2.8.4 彩色LCD驅動程序 31
2.9 本章小結 44
思考題 44
參考文獻 45
第3章 中斷和異常處理 46
3.1 ARM異常 46
3.1.1 ARM處理器模式 46
3.1.2 ARM異常類型 47
3.1.3 異常向量表 48
3.1.4 異常處理程序 48
3.1.5 從異常處理程序返回 49
3.2 中斷 50
3.2.1 中斷類型 50
3.2.2 中斷控制器 50
3.2.3 主中斷控制器和輔中斷控制器 51
3.3 中斷處理 52
3.3.1 向量表內容 52
3.3.2 硬件中斷序列 52
3.3.3 軟件中的中斷控制 53
3.3.4 中斷處理程序 54
3.3.5 非嵌套中斷處理程序 54
3.4 計時器驅動程序 55
3.4.1 ARM Versatile 926EJS計時器 55
3.4.2 計時器驅動程序實現 55
3.5 鍵盤驅動程序 60
3.5.1 ARM PL050鼠標-鍵盤接口 60
3.5.2 鍵盤驅動程序原理 60
3.5.3 中斷驅動的驅動程序設計 60
3.5.4 鍵盤驅動程序實現 61
3.6 UART驅動程序 66
3.6.1 ARM PL011 UART接口 66
3.6.2 UART寄存器 66
3.6.3 中斷驅動的UART驅動程序 67
3.7 安全數字卡 72
3.7.1 SD卡協議 72
3.7.2 SDC驅動程序 72
3.7.3 改進的SDC驅動程序 79
3.7.4 多扇區數據傳輸 80
3.8 向量中斷 83
3.8.1 ARM PL190向量中斷控制器 83
3.8.2 為向量中斷配置VIC 83
3.8.3 向量中斷處理程序 84
3.8.4 向量中斷的演示 84
3.9 嵌套中斷 86
3.9.1 為何需要嵌套中斷 86
3.9.2 ARM中的嵌套中斷 86
3.9.3 在SYS模式下處理嵌套中斷 87
3.9.4 嵌套中斷的演示 87
3.10 嵌套中斷和進程切換 90
3.11 本章小結 90
思考題 91
參考文獻 92
第4章 嵌入式系統的模型 93
4.1 嵌入式系統的程序結構 93
4.2 超級循環模型 93
4.3 事件驅動模型 95
4.3.1 超級循環程序的缺點 95
4.3.2 事件 95
4.3.3 週期性事件驅動程序 95
4.3.4 異步事件驅動程序 99
4.4 事件的優先級 100
4.5 進程模型 101
4.5.1 單處理器進程模型 101
4.5.2 多處理器進程模型 101
4.5.3 實地址空間進程模型 101
4.5.4 虛擬地址空間進程模型 101
4.5.5 靜態進程模型 101
4.5.6 動態進程模型 101
4.5.7 非搶占式進程模型 102
4.5.8 搶占式進程模型 102
4.6 單處理器內核模型 102
4.7 單處理器操作系統模型 102
4.8 多處理器系統模型 102
4.9 實時系統模型 102
4.10 嵌入式系統軟件設計方法論 102
4.10.1 高級語言支持事件驅動編程 103
4.10.2 狀態機模型 103
4.10.3 StateChart模型 107
4.11 本章小結 107
思考題 107
參考文獻 108
第5章 嵌入式系統中的進程管理 109
5.1 多任務 109
5.2 進程的概念 109
5.3 多任務和上下文切換 109
5.3.1 一個簡單的多任務程序 109
5.3.2 上下文切換 111
5.3.3 多任務處理的演示 116
5.4 動態進程 117
5.4.1 動態進程的創建 117
5.4.2 動態進程的演示 119
5.5 進程調度 120
5.5.1 進程調度術語 120
5.5.2 進程調度的目標、策略和算法 120
5.5.3 嵌入式系統中的進程調度 121
5.6 進程同步 121
5.6.1 睡眠和喚醒 121
5.6.2 使用睡眠/喚醒的設備驅動程序 122
5.6.3 使用睡眠/喚醒的事件驅動嵌入式系統 125
5.6.4 使用睡眠/喚醒的資源管理 127
5.7 信號量 128
5.8 信號量的應用 129
5.8.1 信號量鎖 129
5.8.2 互斥鎖 130
5.8.3 使用信號量的資源管理 130
5.8.4 等待中斷和消息 130
5.8.5 進程協作 130
5.8.6 信號量的優勢 132
5.8.7 使用信號量的注意事項 132
5.8.8 在嵌入式系統中使用信號量 132
5.9 其他同步機制 134
5.9.1 OpenVMS中的事件