嵌入式軟體設計基礎——基於ARM Cortex-M3

嵌入式軟體設計基礎——基於ARM Cortex-M3

《嵌入式軟體設計基礎——基於ARM Cortex-M3》是2014年機械工業出版社出版的圖書,作者是Daniel W. Lewis。

基本介紹

  • 中文名:嵌入式軟體設計基礎——基於ARM Cortex-M3
  • 作者: Daniel W. Lewis
  • 出版社: 機械工業出版社
  • ISBN:9787111441762
內容簡介,圖書目錄,

內容簡介

《計算機科學叢書·嵌入式軟體設計基礎:基於ARM Cortex-M3(原書第2版)》以實踐中最常運用的方式講解彙編語言——實現小型、快速或特殊目的的例程,這些例程由主程式(高級語言編寫,如C)調用。通過運用嵌入式軟體環境,本書介紹多執行緒程式設計、搶占式系統與非搶占式系統、共享資源和調度。
  《計算機科學叢書·嵌入式軟體設計基礎:基於ARM Cortex-M3(原書第2版)》適用於高等院校工科各專業嵌入式計算機系統程式設計、C語言程式設計及彙編語言程式設計類本科課程,也可供相關技術人員學習參考。

圖書目錄

出版者的話
譯者序
獻辭
前言
第1章  導論
1.1  什麼是嵌入式系統
1.2  嵌入式軟體設計的目標有什麼獨特性
1.3  什麼是實時系統
1.4  什麼是多執行緒
1.5  嵌入式處理器到底有多強大
1.6  如何使用程式語言
1.7  構建嵌入式套用有什麼不同之處
1.8  典型的嵌入式程式有多大
習題
第2章  數的表示
2.1  固定精度二進制數
2.2  按位計數制
2.2.1  二進制到十進制的轉換
2.2.2  十進制到二進制的轉換
2.2.3  十六進制:二進制的簡寫
2.2.4  固定精度、反轉與溢出
2.3  整數的二進制表示
2.3.1  帶符號整數
2.3.2  同一數量級的正數和負數表示
2.3.3  解釋2的補碼的值
2.3.4  改變具有整數和小數部分的數的符號
2.3.5  二進制加減法
2.3.6  表示範圍與溢出
2.4  實數的二進制表示
2.4.1  浮點表示的實數
2.4.2  定點表示的實數
2.5  文本的ASCII碼錶示
2.6  二進制編碼的十進制
習題
第3章 實現算術運算
3.1  2的補碼與硬體複雜度
3.2  乘法與除法
3.2.1  有符號與無符號乘法
3.2.2  通過對2的移位來實現乘或者除
3.2.3  乘以任意常量
3.2.4  除以任意常量
3.3  定點實數的算術運算
3.3.1  使用標準16.16格式的定點數
3.3.2  使用標準32.32格式的定點數
3.3.3  32.32定點實數乘法
3.3.4  實例:4.4定點實數乘法
習題
第4章 C的整數類型及其使用
4.1  整數數據類型
4.2  布爾數據類型
4.3  混合數據類型
4.4  記憶體中的位操作
4.4.1  測試位
4.4.2  設定、清除與反轉位
4.4.3  提取位
4.4.4  插入位
4.5  I/O連線埠的位操作
4.5.1  只寫I/O設備
4.5.2  基於讀和寫的I/O設備
4.5.3  基於串列訪問的I/O設備
4.5.4  基於寫入數據位的I/O設備
4.6  訪問記憶體映射的I/O設備
4.6.1  使用指針訪問數據
4.6.2  數組、指針和取地址操作符
4.7  結構體
4.7.1  封裝的結構體
4.7.2  位域
4.8  變數訪問
4.8.1  獲取對象的地址
4.8.2  使用聯合體
習題
第5章 彙編程式設計Ⅰ:計算機組成
5.1  記憶體
5.2  中央處理單元
5.2.1  其他暫存器
5.2.2  取指-執行周期
5.3  輸入/輸出
5.4  ARM Cortex-M3 v7M體系結構概述
5.4.1  內部組成
5.4.2  指令流水線
5.4.3  存儲模型
5.4.4  位帶
5.5  ARM彙編語言
5.5.1  指令格式與運算元
5.5.2  將彙編翻譯為二進制
習題
第6章 彙編程式設計Ⅱ:數據操作
6.1  將常量裝入暫存器
6.2  將記憶體數據裝入暫存器
6.3  數據從暫存器存入記憶體
6.4  將簡單的C賦值語句轉換為ARM彙編代碼
6.5  記憶體地址計算
6.6  記憶體定址實例
6.6.1  將C指針表達式翻譯為彙編代碼
6.6.2  將C下標表達式翻譯為彙編代碼
6.6.3  將結構體引用翻譯為彙編代碼
6.7  棧指令
6.8  數據處理指令
6.8.1  在APSR中更新標識
6.8.2  算術運算指令
6.8.3  位操作指令
6.8.4  移位指令
6.8.5  位域操作指令
6.8.6  混合位、位元組和半字指令
習題
第7章 彙編程式設計Ⅲ:控制結構
7.1  指令序列
7.2  實現判定
7.2.1  條件分支指令
7.2.2  if-then和if-then-else語句
7.2.3  複合條件碼
7.2.4  if-then指令
7.3  實現循環
7.4  函式的實現
7.4.1  函式調用和返回
7.4.2  暫存器使用
7.4.3  參數傳遞
7.4.4  返回值
7.4.5  臨時變數
7.4.6  保存暫存器值
習題
第8章 彙編程式設計Ⅳ:I/O編程
8.1  Cortex-M3 I/O硬體
8.1.1  中斷和異常
8.1.2  執行緒和異常處理模式
8.1.3  進入異常處理程式
8.1.4  從異常處理程式返回
8.1.5  減少延遲
8.1.6  優先權與嵌套異常
8.2  同步、傳輸率與延遲
8.3  緩衝區與佇列
8.4  評價I/O的執行能力
8.4.1  輪詢等待循環
8.4.2  中斷驅動的I/O
8.4.3  直接記憶體訪問
8.4.4  不同方法的比較
習題
第9章 並發軟體
9.1  前台/後台系統
9.1.1  執行緒狀態與串列化
9.1.2  延遲管理
9.1.3  中斷溢出
9.1.4  將工作轉移到後台
9.2  多執行緒編程
9.2.1  獨立執行緒的並發執行
9.2.2  上下文切換
9.2.3  非搶占(合作)多執行緒
9.2.4  搶占式多執行緒
9.3  共享資源與臨界區
9.3.1  禁止中斷
9.3.2  禁止任務切換
9.3.3  自旋鎖
9.3.4  互斥對象
9.3.5  信號量
習題
第10章 調度
10.1  執行緒狀態
10.2  等待中的執行緒
10.3  上下文切換
10.4  輪轉調度
10.5  基於優先權的調度
10.5.1  資源飢餓
10.5.2  優先權反轉
10.5.3  優先權上限協定
10.5.4  優先權繼承協定
10.6  分配優先權
10.6.1  最後期限驅動的調度
10.6.2  速率單調的調度
10.7  死鎖
10.8  看門狗定時器
習題
第11章 存儲管理
11.1  C語言中的對象
11.2  作用域
11.2.1  改進局部作用域
11.2.2  改進全局作用域
11.3  生命周期
11.4  自動分配
11.5  靜態分配
11.6  三個程式:區分靜態分配和自動分配
11.6.1  對象創建
11.6.2  對象初始化
11.6.3  對象銷毀
11.7  動態分配
11.7.1  記憶體碎片
11.7.2  記憶體分配池
11.8  具有變數大小的動態分配
11.9  遞歸函式和記憶體分配
習題
第12章 共享記憶體
12.1  確定共享對象
12.1.1  共享全局數據
12.1.2  共享私有數據
12.1.3  共享函式
12.2  可重入函式
12.3  唯讀數據
12.4  編程實踐需要避免的事項
12.4.1  將內部狀態保持在本地靜態對象的函式
12.4.2  返回本地靜態對象地址的函式
12.5  訪問共享記憶體
12.5.1  處理器體系結構的影響
12.5.2  唯讀和只寫訪問
12.5.3  類型限定符volatile
習題
第13章 系統初始化
13.1  記憶體層次
13.2  CPU和向量表
13.3  C運行時環境
13.3.1  將初始值從非易失性存儲器複製到數據區
13.3.2  將未初始化的靜態變數歸零
13.3.3  設定堆
13.4  系統定時器
13.5  其他外圍設備
部分習題答案
索引

相關詞條

熱門詞條

聯絡我們