作 者:張邦術 著
定 價:32
出 版 社:北京航空航天大學出版
出版日期:2009年03月01日
頁 數:0
裝 幀:平裝
ISBN:9787811244205
本書是關於介紹“嵌入式軟件設計之思想與方法”的教學用書,全書從教學的角度出發,全面討論了嵌入式軟件設計的思想與方法,在編排上循序漸進,從基礎準備,到驅動模型,再深入到整個繫統及繫統的構建,在講解上通過建立模型來幫助讀者繫統掌握嵌入式軟件設計的普遍原理與編程接口。 本書可作為在校學生學習嵌入式軟件設計原理的教學參考用書。
●第一篇 基礎方法篇 第1章 程序基礎 1.1 設計高性能程序的必要性 1.1.1 設計高性能程序的必要性 1.1.2 嵌入式軟件的設計範疇 1.1.3 嵌入式軟件的分層結構 1.2 嵌入式軟件的程序設計要求 1.2.1 代碼結果的要求 1.2.2 代碼形式的要求 1.3 嵌入式軟件開發的基本思路和原則 1.3.1 繫統分析,定義接口 1.3.2 函數實現,優化算法 1.3.3 清理代碼,補充注釋 1.3.4 測試修訂,完善文檔 1.4 程序實例剖析 1.4.1 正確理解棧 1.4.2 內存洩漏 1.4.3 消除編譯依賴 1.4.4 消除潛在隱患 1.4.5 規範實現範例 1.4.6 性能優化 1.5 程序設計其他注意點 1.5.1 謹慎使用“宏” 1.5.2 正確理解預定義宏 1.5.3 避免歧義 第2章 多任務操作繫統 2.1 板級支持包 2.2 嵌入式操作繫統與實時性 2.2.1 嵌入式操作繫統 2.2.2 實時操作繫統 2.3 多任務概述 2.3.1 進程、線程與任務 2.3.2 何時需要多任務 2.3.3 任務狀態的轉換 2.3.4 進程調度與調試算法 2.3.5 任務相關的API 2.4 進程間共享代碼與可重入性 2.4.1 共享代碼 2.4.2 共享代碼可重人性問題 2.4.3 使用私有數據 2.4.4 使用臨界區數據 2.5 線程間通信 2.5.1 共享數據結構 2.5.2 互斥 2.5.3 信號量 2.5.4 臨界區與信號量的實現實例 第3章 硬件基礎 3.1 ARM 3.1.1 ARM編程模式 3.1.2 ARM指令概述 3.1.3 ARM異常及處理 3.2 MIPS 3.2.1 MIPS編程模式 3.2.2 MIPS指令概述 3.2.3 MIPS中斷與異常 3.3 接口基礎 3.3.1 總線概述 3.3.2 I2C總線 3.3.3 PCI總線 3.3.4 設備模型 3.3.5 一個IDE控制器設備實例第二篇 驅動模型篇 第4章 驅動的通用模型 4.1 設備驅動的作用 4.2 驅動類型 4.2.1 Linux扣的驅動類型 4.2.2 winCE中的驅動類型 4.2.3 VxWorks中的驅動類型 4.3 設備驅動的通用模型 4.3.1 模塊部分的驅動 4.3.2 設備的驅動例程 第5章 VXWorks的驅動模型 5.1 VXWorks的I/O繫統 5.1.1 I/O繫統概述 5.1.2 文件名與設備 5.1.3 基本I/O 5.1.4 緩衝I/O 5.1.5 格式化I/O 5.2 VXWorks的驅動及其內部結構 5.2.1 驅動的安裝、驅動表 5.2.2 設備的創建、設備鏈表 5.2.3 文件的打開、文件描述符表 5.2.4 文件的讀、寫、控制和關閉操作 第6章 Linux的驅動模型 6.1 Linux的驅動加載方式 6.1.1 內核驅動模塊與模塊化驅動 6.1.2 模塊化驅動的加載與卸載 6.2 Linux的驅動架構 6.2.1 一個最簡單的內核驅動 6.2.2 一個最簡單的模塊驅動 6.2.3 Linux驅動中注冊驅動 6.2.4 Linux繫統中的設備文件 6.3 Linux字符型設備驅動 6.3.1 驅動的加載與清理 6.3.2 中斷的申請與釋放 第7章 WinCE的驅動模型 7.1 WinCE驅動類型 7.2 設備管理器及其驅動模型第三篇 BSP/OAL篇 第8章 BSP的基本概念 8.1 BSP與驅動 8.2 BSP開發的目標任務 第9章 BSP的設計要素 9.1 中斷處理 9.1.1 物理中斷號與邏輯中斷號 9.1.2 CPU中斷與中斷控制器擴展 9.1.3 中斷源的查找 9.1.4 中斷處理線程 9.2 CPU異常 9.2.1異常向量表 9.2.2向量表的安裝 9.2.3異常處理代碼實例 9.3 硬件I/O的訪問 9.3.1 避免使用絕對物理地址 9.3.2 內存一致性問題 9.3.3 I/O訪問的刷新 第10章 Linux的啟動過程 10.1 Linux的啟動流程 10.2 Linux的啟動過程簡介 10.2.1 _stext函數 10.2.2 start—kerrnel函數 10.2.3 setup—arch函數 10.2.4 trap_init函數 10.2.5 init_IRQ函數 10.2.6 sched—init函數 10.2.7 dojnitcalls函數 10.2.8 init函數 10.2.9 init程序 第11章 WinCE的設計 11.1 wincE OS平臺開發簡介 11.1.1 winCE平臺的開發流程 11.1.2 winCE內核結構 11.1.3 winCE設計中的一些名詞術語 11.2 WinCE BSP開發 11.2.1 啟動裝載器 11.2.2 OAL開發 11.2.3 WinCE配置文件 11.3 winCE設備驅動的開發流程 11.3.1 設備驅動源代碼 11.3.2 修改配置文件 11.3.3 向OS平臺注入驅動第四篇 擴展篇 第12章 理解程序的內部結構 12.1 x86彙編及其程序結構 12.1.1 x86程序段定義 12.1.2 關聯段寄存器、確定段的種類 12.1.3 段組偽指令 12.2 嵌入式繫統中的程序結構 12.2.1 嵌入式繫統中執行程序的映像 12.2.2 鏈接器與命令腳本 12.3 ELF文件格式 12.3.1 ELF文件格式概述 12.3.2 ELF文件格式分析器 第13章 嵌入式繫統的設計思想 13.1 直截了當的思想 13.2 層次化的思想 13.3 循序漸進的思想 13.4 實踐是優選的老師 13.5 團隊協作意識 13.6 大膽嘗試與積極創新結束語參考文獻
本書從教學的角度出發,全面討論了嵌入式軟件設計的思想與方法。在編排上循序漸進,從基礎準備,到驅動模型,再深入到整個繫統及繫統的構建。在講解上通過建立模型來幫助讀者繫統掌握嵌入式軟件設計的普遍原理與編程接口。內容包括:高效、穩定和規範的程序基礎,多任務環境,I/O繫統的內部結構,驅動模型,BSP設計要素,嵌入式軟件設計的經驗技巧;在硬件基礎方面討論了總線與設備的模型,基於MIPS和ARM SoC在多個繫統平臺VxWorks,Lnux及WinCE下的繫統資源的操控。 本書可作為在校學生學習嵌入式軟件設計原理的教學參考用書,也可作為嵌入式軟件開發工程人員深入掌握繫統軟件設計的指南,以及嵌入式軟件培訓的參考教材。
第一篇 基礎方法篇本篇就筆者的理解來討論一些嵌入式軟件設計所推薦的基礎技能。如果讀者急於了解嵌入式繫統軟件設計的方法,可以直接跳到第二篇“驅動模型篇”。借用一些老套的話——“萬丈高樓從地起”“磨刀不誤砍柴功”,打好扎實的基礎是非常重要的。在我看來,對嵌入式軟件繫統的基本要求是高效和穩定,它要求軟件開發人員設計出的程序邏輯嚴密,層次清楚,效率優化,品質高精;與此同時,軟件需要與硬件繫統打交道,需要處理復雜的應用問題,涉及到的專業面廣泛且深入,由此軟件開發人員還需要掌握很多復雜的專業知識。所以,基礎與方法對於嵌入式軟件的設計至關重要。本書雖然不求將各種專業知識與技能講解得全面透徹,但希望筆者多年積累的一些點滴經驗,能夠給讀者帶來開指路的功效。1.心理準備 如上所述,嵌入式軟件的設計是一項極其艱辛復雜的程序設計工作,它需要有豐富、等
第一篇 基礎方法篇本篇就筆者的理解來討論一些嵌入式軟件設計所推薦的基礎技能。如果讀者急於了解嵌入式繫統軟件設計的方法,可以直接跳到第二篇“驅動模型篇”。借用一些老套的話——“萬丈高樓從地起”“磨刀不誤砍柴功”,打好扎實的基礎是非常重要的。在我看來,對嵌入式軟件繫統的基本要求是高效和穩定,它要求軟件開發人員設計出的程序邏輯嚴密,層次清楚,效率優化,品質高精;與此同時,軟件需要與硬件繫統打交道,需要處理復雜的應用問題,涉及到的專業面廣泛且深入,由此軟件開發人員還需要掌握很多復雜的專業知識。所以,基礎與方法對於嵌入式軟件的設計至關重要。本書雖然不求將各種專業知識與技能講解得全面透徹,但希望筆者多年積累的一些點滴經驗,能夠給讀者帶來開指路的功效。1.心理準備 如上所述,嵌入式軟件的設計是一項極其艱辛復雜的程序設計工作,它需要有豐富、扎實的專業知識,還需要有艱苦卓絕、鍥而不舍、敢於等