出版時(shí)間:2008-5 出版社:電子工業(yè)出版社 作者:藍(lán)楓葉 頁數(shù):535
Tag標(biāo)簽:無
內(nèi)容概要
本書是《自己動(dòng)手寫嵌入式操作系統(tǒng)》的全面升級版,作者對自己親自在PC上開發(fā)的嵌入式操作系統(tǒng)的“Hello China”進(jìn)行全面的升級和改進(jìn),書中詳細(xì)地?cái)⑹鲎约簞?dòng)手寫嵌入式操作系統(tǒng)所需的各方面知識,如加載和初始化、Shell、線程的實(shí)現(xiàn)、內(nèi)存管理機(jī)制、互斥和同步機(jī)制及中斷和定時(shí)機(jī)制的實(shí)現(xiàn),以及設(shè)備驅(qū)動(dòng)程序管理框架和應(yīng)用編程接口等。 本書中的每一個(gè)字都是作者辛勤勞動(dòng)的結(jié)晶,本書所講到的嵌入式操作系統(tǒng)“Hello China”更是作者親自實(shí)踐的成果,因此本書具有極高的實(shí)用性,對于嵌入式軟件開發(fā)工程師、應(yīng)用軟件開發(fā)工程師均有很高的參考價(jià)值,對于大中院校的學(xué)生學(xué)習(xí)和理解操作系統(tǒng)及計(jì)算機(jī)原理也會(huì)有許多啟發(fā),對于系統(tǒng)軟件愛好者更是一本不可多得的好書,因?yàn)樗鼤?huì)使您得到一個(gè)完整而細(xì)致的實(shí)踐過程。
書籍目錄
第1章 概述1.1 嵌入式系統(tǒng)概述1.2 嵌入式操作系統(tǒng)概述1.2.1 嵌入式操作系統(tǒng)的特點(diǎn)1.2.2 嵌入式操作系統(tǒng)與通用操作系統(tǒng)的區(qū)別1.2.3 嵌入式實(shí)時(shí)操作系統(tǒng)1.3 操作系統(tǒng)的基本概念1.3.1 微內(nèi)核與大內(nèi)核1.3.2 進(jìn)程、線程與任務(wù)1.3.3 可搶占與不可搶占1.3.4 同步機(jī)制1.4 Hello China概述1.4.1 Hello China的功能特點(diǎn)1.4.2 Hello China的開發(fā)環(huán)境1.4.3 面向?qū)ο笏枷氲哪M1.4.4 對象機(jī)制1.4.5 Hello China V1.0版本的源文件構(gòu)成1.4.6 Hello China V1.5版本的源文件構(gòu)成1.4.7 Hello China的使用1.5 實(shí)例:一個(gè)簡單的IP路由器的實(shí)現(xiàn)1.5.1 概述1.5.2 路由器的硬件結(jié)構(gòu)1.5.3 路由器的軟件功能1.5.4 各任務(wù)的實(shí)現(xiàn)第2章 Hello China的加載和初始化2.1 常見嵌入式系統(tǒng)的啟動(dòng)2.1.1 典型嵌入式系統(tǒng)內(nèi)存映射布局2.1.2 嵌入式系統(tǒng)的啟動(dòng)概述2.1.3 常見嵌入式操作系統(tǒng)的加載方式2.1.4 嵌入式系統(tǒng)軟件的寫入2.2 Hello China在PC上的啟動(dòng)2.2.1 PC啟動(dòng)過程概述2.2.2 Hello China的引導(dǎo)過程2.2.3 實(shí)地址模式下的初始化2.2.4 保護(hù)模式下的初始化2.2.5 操作系統(tǒng)核心功能的初始化第3章 Hello China的Shell3.1 Shell的啟動(dòng)和初始化3.2 Shell的消息處理過程3.3 內(nèi)部命令的處理過程3.4 外部命令的處理過程第4章 Hello China的線程4.1 線程概述4.1.1 進(jìn)程、線程和任務(wù)4.2 Hello China V1.0版本的線程實(shí)現(xiàn)4.2.1 核心線程管理對象4.2.2 線程的狀態(tài)及其切換4.2.3 核心線程對象4.2.4 線程的上下文4.2.5 線程的優(yōu)先級與調(diào)度4.2.6 線程的創(chuàng)建4.2.7 線程的結(jié)束4.2.8 線程的消息隊(duì)列4.2.9 線程的切換——中斷上下文4.2.10 線程的切換——系統(tǒng)調(diào)用上下文4.2.11 上下文保存和切換的底層函數(shù)4.2.12 線程的睡眠與喚醒4.3 V1.5版本中核心線程的實(shí)現(xiàn)4.3.1 概述4.3.2 核心線程調(diào)度時(shí)機(jī)4.4 V1.5 核心線程管理器(Kernel ThreadManager)的實(shí)現(xiàn)4.4.1 V1.5核心線程隊(duì)列的實(shí)現(xiàn)4.5 V1.5核心線程對象(Kernel ThreadObject)的實(shí)現(xiàn)4.5.1 V1.5版本中硬件上下文的保存4.5.2 線程的調(diào)度——中斷上下文4.5.3 線程的調(diào)度——程序上下文4.5.4 核心線程的創(chuàng)建和初始化4.5.5 中斷處理程序結(jié)束后的線程調(diào)度第5章 Hello China的內(nèi)存管理機(jī)制5.1 內(nèi)存管理機(jī)制概述5.2 IA32 CPU內(nèi)存管理機(jī)制5.2.1 IA32 CPU內(nèi)存管理機(jī)制概述5.2.2 幾個(gè)重要的概念5.2.3 分段機(jī)制的應(yīng)用5.2.4 分頁機(jī)制的應(yīng)用5.3 Power PC CPU的內(nèi)存管理機(jī)制5.4 Hello China內(nèi)存管理模型5.4.1 Hello China的內(nèi)存管理模型5.4.2 Hello China的內(nèi)存布局5.4.3 核心內(nèi)存池的管理5.4.4 頁框管理對象(PageFrame Manager)5.4.5 頁面索引對象(Pagelndex Manager)5.4.6 虛擬內(nèi)存管理對象(Virtual MemoryManager)第6章 線程本地堆的實(shí)現(xiàn)6.1 Heap概述6.2 堆的功能需求定義6.3 堆的實(shí)現(xiàn)概要6.4 堆的詳細(xì)實(shí)現(xiàn)6.4.1 堆的創(chuàng)建6.4.2 堆的銷毀6.4.3 堆內(nèi)存申請6.4.4 堆內(nèi)存釋放6.4.5 malloc函數(shù)和free函數(shù)的實(shí)現(xiàn)第7章 互斥和同步機(jī)制的實(shí)現(xiàn)7.1 互斥和同步概述7.2 關(guān)鍵區(qū)段概述7.3 關(guān)鍵區(qū)段產(chǎn)生的原因7.3.1 多個(gè)線程之間的競爭7.3.2 中斷服務(wù)程序與線程之間的競爭7.3.3 多個(gè)CPU之間的競爭7.4 單CPU下關(guān)鍵區(qū)段的實(shí)現(xiàn)7.5 多CPU下關(guān)鍵區(qū)段的實(shí)現(xiàn)7.5.1 多CPU環(huán)境下的實(shí)現(xiàn)方式7.5.2 Hello China的未來實(shí)現(xiàn)7.6 Power PC下關(guān)鍵區(qū)段的實(shí)現(xiàn)7.6.1 Power PC提供的互斥訪問機(jī)制7.6.2 多CPU環(huán)境下的互斥機(jī)制7.7 關(guān)鍵區(qū)段使用注意事項(xiàng)7.8 Semaphore概述7.9 Semaphore對象的定義7.10 Semaphore對象的實(shí)現(xiàn)7.10.1 Initialize和Uninitialize實(shí)現(xiàn)7.10.2 WaitForThisObject的實(shí)現(xiàn)7.10.3 WaitForThisObjectEx的實(shí)現(xiàn)7.10.4 ReleaseSemaphore的實(shí)現(xiàn)第8章 中斷和定時(shí)處理機(jī)制的實(shí)現(xiàn)8.1 中斷和異常概述8.2 硬件相關(guān)部分處理8.2.1 IA32中斷處理過程8.2.2 IDT初始化8.3 硬件無關(guān)部分處理8.3.1 系統(tǒng)對象和中斷對象8.3.2 中斷調(diào)度過程8.3.3 默認(rèn)中斷處理函數(shù)8.4 對外服務(wù)接口8.5 幾個(gè)注意事項(xiàng)8.6 Power PC的異常處理機(jī)制8.6.1 Power PC異常處理機(jī)制概述8.6.2 Power PC異常的分類8.6.3 異常的處理和返回8.7 定時(shí)器概述8.7.1 SetTimer函數(shù)的調(diào)用8.7.2 CancelTimer函數(shù)的調(diào)用8.7.3 ResetTimer函數(shù)的調(diào)用8.8 設(shè)置定時(shí)器操作8.9 定時(shí)器超時(shí)處理8.10 定時(shí)器取消處理8.11 定時(shí)器復(fù)位8.12 定時(shí)器注意事項(xiàng)第9章 系統(tǒng)總線管理9.1 系統(tǒng)總線概述9.1.1 系統(tǒng)總線9.1.2 總線管理模型9.1.3 設(shè)備標(biāo)識符9.2 系統(tǒng)資源管理9.2.1 資源描述對象9.2.2 IO端口資源管理9.3 驅(qū)動(dòng)程序接口9.3.1 GetResource9.3.2 GetDevice9.3.3 CheckPortRegion9.3.4 ReservePortRegion9.3.5 ReleasePortRegion9.3.6 AppendDevice9.3.7 DeleteDevice9.4 PCI總線驅(qū)動(dòng)程序概述9.4.1 PCI總線概述9.4.2 PCI設(shè)備的配置空間9.4.3 配置空間關(guān)鍵字段的說明9.4.4 PCI配置空間的讀取與設(shè)置9.5 PCI總線驅(qū)動(dòng)程序的實(shí)現(xiàn)9.5.1 探測PCI總線是否存在9.5.2 對普通PCI設(shè)備進(jìn)行枚舉9.5.3 配置PCI橋接設(shè)備第10章 驅(qū)動(dòng)程序管理框架10.1 設(shè)備驅(qū)動(dòng)程序管理框架10.1.1 概述10.1.2 設(shè)備管理器和IO管理器10.1.3 Hello China的設(shè)備管理框架lO.1.4 I/O管理器(IOManager)10.2 文件系統(tǒng)的實(shí)現(xiàn)10.2.1 文件系統(tǒng)與文件的命名10.2.2 文件系統(tǒng)驅(qū)動(dòng)程序10.2.3 打開一個(gè)文件的操作流程10.3 設(shè)備驅(qū)動(dòng)程序框架10.3.1 設(shè)備請求控制塊(DRCB)10.3.2 設(shè)備驅(qū)動(dòng)程序的文件組織結(jié)構(gòu)10.3.3 設(shè)備驅(qū)動(dòng)程序的功能實(shí)現(xiàn)10.3.4 設(shè)備驅(qū)動(dòng)程序?qū)ο?0.3.5 DriverEntry的實(shí)現(xiàn)10.3.6 UnloadEntry的實(shí)現(xiàn)10.4 設(shè)備對象10.4.1 設(shè)備對象的定義10.4.2 設(shè)備對象的命名10.4.3 設(shè)備對象的類型10.4.4 設(shè)備對象的設(shè)備擴(kuò)展10.4.5 設(shè)備的打開操作10.4.6 設(shè)備命名策略10.5 設(shè)備的中斷管理第11章 核心線程CPU占用率統(tǒng)計(jì)功能11.1 CPU占用率概述11.2 核心線程CPU占用率統(tǒng)計(jì)的實(shí)現(xiàn)11.2.1 統(tǒng)計(jì)周期和統(tǒng)計(jì)算法11.2.2 核心線程統(tǒng)計(jì)對象11.2.3 CPU統(tǒng)計(jì)對象11.2.4 CPU占用率統(tǒng)計(jì)線程11.3 進(jìn)程和多CPU情況下的考慮11.3.1 進(jìn)程的用戶態(tài)和核心態(tài)執(zhí)行時(shí)間統(tǒng)計(jì)11.3.2 多CPU環(huán)境下的考慮第12章 系統(tǒng)核心HOOK機(jī)制的實(shí)現(xiàn)12.1 Hook概述12.2 線程Hook的實(shí)現(xiàn)12.2.1 線程Hook的實(shí)現(xiàn)概述12.2.2 線程調(diào)度前后的回調(diào)機(jī)制12.2.3 線程創(chuàng)建和結(jié)束的回調(diào)機(jī)制12.2.4 CallThreadHook例程的實(shí)現(xiàn)12.3 線程Hook的應(yīng)用第13章 串口交互程序及其實(shí)現(xiàn)13.1 串行通信接口概述13.2 串行通信編程方式13.2.1 串口初始化13.2.2 數(shù)據(jù)發(fā)送13.2.3 數(shù)據(jù)接收13.3 串口交互程序的實(shí)現(xiàn)13.3.1 串口交互程序的使用13.3.2 輪詢模式的串口交互程序?qū)崿F(xiàn)13.3.3 中斷模式的串口交互程序?qū)崿F(xiàn)13.4 串行通信編程總結(jié)13.4.1 輪詢方式和中斷方式編程的對比13.4.2 串口交互程序的其他實(shí)現(xiàn)方式第14章 應(yīng)用編程接口與示例14.1 核心線程操作接口14.1.1 CreateKernelThread14.1.2 DestroyKernelThread14.1.3 SendMessage14.1.4 GetMessage14.1.5 SetKemelThreadPriority14.1.6 GetKemelThreadPriority14.1.7 GetKemelThreadID14.2 內(nèi)存操作接口14.2.1 KMemAlloc14.2.2 KMemFree14.2.3 VirtualAlloc14.2.4 VirtualFree14.2.5 malloc14.2.6 free14.2.7 CreateHeap14.2.8 DestroyHeap14.2.9 HeapAlloc14.2.10 HeapFree14.3 定時(shí)器操作接口14.3.1 SetTimet14.3.2 CancelTimer14.4 核心線程同步操作接口14.4.1 Sleep14.4.2 CreateMutex14.4.3 ReleaseMutex14.4.4 DestroyMutex14.4.5 CreateEvent14.4.6 SetEvent14.4.7 ResetEvent14.4.8 DestroyEvent14.4.9 WaitForThisObject14.4.10 WaitForThisObjectEx14.5 系統(tǒng)中斷操作接口14.5.1 ConnectInterrupt14.5.2 DisconnectInterrupt14.6 輸入/輸出(IO)接口14.6.1 CreateFile14.6.2 ReadFile14.6.3 WriteFile14.6.4 IoControl14.6.5 SetFilePointer14.6.6 FlushFile14.6.7 CloseFile14.7 設(shè)備驅(qū)動(dòng)程序接口14.7.1 CreateDevice14.7.2 DestroyDevice14.8 相關(guān)輔助功能接口14.8.1 StrLen14.8.2 StrCpy14.8.3 MemZero14.8.4 MemCpy14.9 PC服務(wù)接口14.9.1 PrintLine14.9.2 PrintChar14.9.3 ChangeLine14.9.4 GotoHome第15章 Hello China的應(yīng)用開發(fā)方法15.1 Hello China的開發(fā)方法概述15.2 在Hello China基礎(chǔ)上開發(fā)一個(gè)簡單應(yīng)用程序附錄A 如何搭建一個(gè)基于Windows的操作系統(tǒng)開發(fā)平臺附錄B 一種代碼執(zhí)行時(shí)間測量方法的實(shí)現(xiàn)附錄C 64bit整型數(shù)據(jù)類型的實(shí)現(xiàn)附錄D IoCTRL控制程序使用介紹及實(shí)例附錄E 如何快速掌握匯編語言附錄F 源代碼使用說明附錄G 優(yōu)先隊(duì)列(Priority Queue)和環(huán)形緩沖區(qū)(RING BUFFER)的實(shí)現(xiàn)
編輯推薦
全面解讀,國內(nèi)原創(chuàng)嵌入式操作系統(tǒng),開發(fā)全過程?! ∏度胧讲僮飨到y(tǒng):設(shè)計(jì)與實(shí)現(xiàn) 本書是《自己動(dòng)手寫嵌入式操作系統(tǒng)》的全面升級版,作者對自己親自在PC上開發(fā)嵌入式操作系統(tǒng)的“Hello China”進(jìn)行全面的升級和改進(jìn),本書具有極高的實(shí)用性,對于嵌入式軟件開發(fā)工程師、應(yīng)用軟件開發(fā)工程師均有很高的參考價(jià)值,對于大中院校的學(xué)生學(xué)習(xí)和理解操作系統(tǒng)及計(jì)算機(jī)原理也會(huì)有許多啟發(fā),對于系統(tǒng)軟件愛好者更是一本不可多得的好書,因?yàn)樗鼤?huì)使您得到一個(gè)完整而細(xì)致的實(shí)踐過程?! ∫粋€(gè)簡單的想法 操作系統(tǒng)真的如此難開發(fā)嗎? 我國的通信產(chǎn)品的核心部件和核心技術(shù)真的只能依靠國外廠家提供嗎? 一個(gè)曲折的過程 在緊張的工作之余進(jìn)行開發(fā),曾幾度想放棄,一年多的開發(fā)過程,堅(jiān)持,堅(jiān)持,再堅(jiān)持,終于在2006年年初,才把當(dāng)初規(guī)劃的所有功能開發(fā)完畢。 鑄就本書 即以作者親自在PC上開發(fā)嵌入式操作系統(tǒng)“Hello China”的全過程為主線,詳細(xì)地?cái)⑹鲎约簞?dòng)手寫嵌入式操作系統(tǒng)所需的各方面知識。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
嵌入式操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) PDF格式下載