圖書信息
出版社: 高等教育出版社; 第1版 (2008年4月1日)
外文書名: Fundamentals of Embedded Software: Where C and Assembly Meet
平裝: 234頁
正文語種: 簡體中文
開本: 16
ISBN: 7040161052
條形碼: 9787040161052
尺寸: 23.5 x 18.8 x 0.9 cm
重量: 381 g
作者簡介
作者:(美)劉易斯 譯者:陳宗斌
內容簡介
《嵌入式軟體基礎:C語言與彙編的融合(翻譯版)》是對高等院校本科二年級計算機組成原理與彙編語言程式設計的傳統教材的全新替代版。《嵌入式軟體基礎:C語言與彙編的融合(翻譯版)》以實踐中最常運用的方式講解彙編語言——實現小型、快速或特殊目的的例程,這些例程由主程式(高級語言編寫,如C)調用。通過運用嵌入式軟體環境,《嵌入式軟體基礎:C語言與彙編的融合(翻譯版)》介紹多執行緒程式設計、可搶占式系統與非可搶占式系統、共享資源和調度,從而為作業系統、實時系統、計算機網路及基於多處理器的設計等後續課程提供了堅實的基礎。
《嵌入式軟體基礎:C語言與彙編的融合(翻譯版)》適用於高等院校工科各專業本科嵌入式計算機系統程式設計、C語言程式設計及彙編語言程式設計類課程,也可供相關技術人員學習參考。
目錄
序言
第1章 導論
1.1 什麼是嵌入式系統
1.2 嵌入式軟體設計目標有何獨特之處
1.3 “實時”意味著什麼
1.4 “多任務”意味著什麼
1.5 嵌入式處理器的功能有多強
1.6 使用哪些程式語言
1.7 什麼是“實時核心”
1.8 如何構建獨特的嵌入式應用程式
1.9 典型的嵌入式程式有多大
1.10 本書中使用的軟體
習題
第2章 數據表示
2.1 固定精度的二進制數字
2.1.1 按位記數制
2.1.2 二進制一十進制轉換
2.1.3 十進制一二進制轉換
2.1.4 計數
2.1.5 固定精度和翻轉
2.1.6 十六進制表示
2.2 整數的二進制表示
2.2.1 帶符號整數
2.2.2 同一個值的正的表示和負的表示
2.2.3 解釋2的補碼數的值
2.2.4 關於範圍和溢出的進一步說明
2.2.5 2的補碼和硬體複雜性
2.3 實數的二進制表示
2.3.1 定點表示
2.3.2 使用通用的16.16格式的定點表示
2.3.3 使用通用的32.32格式的定點表示
2.3.4 浮點表示
2.4 文本的ASCII表示
2.5 二進制編碼的十進制表示
習題
第3章 充分利用C語言
3.1 整型數據類型
3.2 混合數據類型
3.3 有用的typedef和define
3.4 操縱記憶體中的位
3.4.1 測試位
3.4.2 設定、清除和反轉位
3.4.3 提取位
3.4.4 插入位
3.5 操縱:I/O連線埠中的位
3.5.1 只寫I/O連線埠
3.5.2 通過讀/寫區分的連線埠
3.5.3 通過順序訪問區分的連線埠
3.5.4 通過寫入數據中的位區分的連線埠
3.6 訪問記憶體映射的I/O設備
3.6.1 通過指針訪問數據
3.6.2 數組、指針和“取地址”運算符
3.7 結構
3.7.1 打包的結構
3.7.2 位域
3.8 變型訪問
3.8.1 強制轉換對象的地址
3.8.2 使用共用體
習題
第4章 程式設計師眼中的計算機結構
4.1 記憶體
4.2 中央處理器
4.2.1 運算器
4.2.2 其他暫存器
4.2.3 控制器
4.3 輸入/輸出
4.4 Intel架構介紹
4.4.1 指令格式
4.4.2 指令運算元
4.4.3 運算元限制
4.4.4 暫存器
4.4.5 棧
4.5 Intel實模式架構
4.5.1 分段定址
4.5.2 定址模式
4.6 Intel保護模式架構:
4.6.1 段暫存器和全局描述符表
4.6.2 平坦記憶體模型
4.6.3 定址模式
4.7 運算元與地址長度覆蓋前綴
4.8 Intel數據操縱指令
4.8.1 數據移動、棧和I/O指令
4.8.2 算術指令
4.8.3 按位指令
4.8.4 移位指令
習題
第5章 C語言與彙編語言的融合
5.1 用彙編語言編程
5.2 暫存器使用約定
5.3 定址選項的典型套用
5.3.1 訪問地址為常量的數據
5.3.2 訪問地址為變數的數據
5.4 指令序列
5.4.1 複合條件
5.4.2 If-Then-Else語句
5.4.3 建立循環
5.4.4 帶字元串指令的更快的循環
5.5 過程調用和返回
5.6 參數傳遞
5.7 獲取參數
5.8 一切都是按值傳遞
5.9 臨時變數
習題
第6章 輸入/輸出編程
6.1 IntelI/O指令
6.2 同步、傳送速率和等待時間
6.3 輪詢的等待循環
6.4 中斷驅動的I/O
6.4.1 硬體回響
6.4.2 中斷服務例程
6.4.3 可程式中斷控制器
6.4.4 緩衝區與佇列
6.4.5 用彙編語言編寫中斯服務例程
6.4.6 用C語言編寫中斷服務例程
6,4.7 不可禁止的中斷
6.4.8 軟體中斷
6.4.9 異常
6.5 直接存儲器存取
6.5.1 雙緩衝
6.6 幾種方法的比較
習題
第7章 並發軟體
7.1 前台/後台系統
7.1.1 執行緒狀態和串列化
7.1.2 管理等待時間
7.1.3 防止中斷越界
7.1.4 將工作轉移到後台
7.2 多執行緒編程
7.2.1 獨立執行緒的並發執行
7.2.2 環境切換
7.2.3 非搶先式(協作式)多任務處理
7.2.4 搶先式多任務
7.3 共享資源和臨界區
7.3.1 禁用中斷
7.3.2 禁用任務切換
7.3.3 自鏇鎖
7.3.4 互斥對象
7.3.5 信號量
習題
第8章 調度
8.1 執行緒狀態
8.2 掛起執行緒
8.3 環境切換
8.4 循環調度
8.5 基於優先權的調度
8.5.1 優先權倒置
8.5.2 優先權繼承協定
8.5.3 優先權最高限度協定
8.6 分配優先權
8.6.1 截止期限驅動的調度
8.6.2 速率單調調度
8.7 死鎖
8.8 監視計時器
習題
第9章 記憶體管理
9.1 C語言中的對象
9.2 作用域
9.2.1 進一步認識局部作用域
9.2.2 進一步認識全局作用域
9.3 生存期
9.4 自動分配
9.4.1 存儲類“暫存器”
9.5 靜態分配
9.6 用於區分靜態與自動的3個程式
9.6.1 對象創建
9.6.2 對象初始化
9.6.3 對象析構
9.7 動態分配
9.7.1 記憶體碎片
9.7.2 記憶體分配池
9.8 可變大小的自動分配
9.8.1 可變大小的數組
9.9 遞歸函式與記憶體分配
習題
第10章 共享記憶體
10.1 識別共享對象
10.1.1 共享全局數據
10.1.2 共享私有數據
10.1.3 共享函式
10.2 可重入函式
10.3 唯讀數據
10.3.1 類型限定符const
10.4 應避免的編碼習慣
10.4.1 在局部靜態對象中保持內部狀態的函式
10.4.2 返回局部靜態對象地址的函式
10.5 訪問共享記憶體
10.5.1 處理器字長的影響
10.5.2 唯讀和只寫訪問
10.5.3 類型限定符volatile
習題
第11章 系統初始化
11.1 記憶體布局
11.2 CPU
11.2.1 建立平坦記憶體模型
11.2.2 切換到保護模式
11.3 C運行時環境
11.3.1 從ROM複製到RAM戶
11.3.2 將未初始化數據置
11.3.3 建立堆
11.4 系統計時器
11.4.1 計時器0:計時器滴答信號
11.4.2 計時器1:記憶體刷新
11.4.3 計時器2:揚聲器頻率
11.5 中斷系統
11.5.1 初始化IDT
11.5.2 初始化8259PIC
11.5.3 安裝新的中斷服務例程
附錄A 配書光碟上的內容
附錄B DJGPPC/C++編譯器
附錄C nasm彙編器
附錄D 編程項目
附錄E Libepe庫
附錄F 引導載入程式
附錄G 辭彙表