《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》為物聯(lián)網(wǎng)工程實戰(zhàn)叢書的第3卷。書中從物聯(lián)網(wǎng)工程的實際需求出發(fā),闡述了物聯(lián)網(wǎng)協(xié)議的相關(guān)知識及物聯(lián)網(wǎng)操作系統(tǒng)的設(shè)計和開發(fā)理念,從源頭告訴讀者需要開發(fā)什么樣的物聯(lián)網(wǎng)操作系統(tǒng)。
《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》共10章。第1章闡述了與物聯(lián)網(wǎng)聯(lián)系比較緊密的幾種網(wǎng)絡(luò)通信協(xié)議;第2章闡述了路由器交換機原理及其設(shè)計與開發(fā)的要點;第3章對移動互聯(lián)網(wǎng)Wi-Fi做了詳細解析;第4章給出了操作系統(tǒng)的一般概念;第5章介紹了幾種應(yīng)用于資源受限設(shè)備的物聯(lián)網(wǎng)操作系統(tǒng);第6章介紹了幾種嵌入式實時操作系統(tǒng);第7章剖析了一種輕量級實時物聯(lián)網(wǎng)操作系統(tǒng)Zephyr,給出了較為詳細的應(yīng)用開發(fā)指導(dǎo);第8章闡述了比較流行的Ubunto操作系統(tǒng);第9章詳盡地講解了路由器操作系統(tǒng)的開發(fā)流程,為物聯(lián)網(wǎng)網(wǎng)關(guān)、智能路由器、邊緣計算服務(wù)器的研發(fā)打下基礎(chǔ);第10章給出了嵌入式系統(tǒng)的底層驅(qū)動軟件開發(fā)指導(dǎo)。
《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》適合作為高等院校物聯(lián)網(wǎng)工程、通信工程、網(wǎng)絡(luò)工程、電子信息工程、微電子和集成電路等相關(guān)專業(yè)的教材,也適合物聯(lián)網(wǎng)協(xié)議的研究者和物聯(lián)網(wǎng)操作系統(tǒng)的研發(fā)人員閱讀。另外,《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》還適合作為智慧城市建設(shè)等政府管理部門相關(guān)人員的參考讀物。
沉舟側(cè)畔千帆過,病樹前頭萬木春
繼計算機操作系統(tǒng)、嵌入式操作系統(tǒng)、手機操作系統(tǒng)之后,物聯(lián)網(wǎng)操作系統(tǒng)進入了起步發(fā)展階段。就目前的現(xiàn)狀,物聯(lián)網(wǎng)操作可以描述為:廠商山頭林立、市場虛假繁榮、技術(shù)概念老舊、產(chǎn)品良莠不齊。
物聯(lián)網(wǎng)操作系統(tǒng)產(chǎn)生的背景
應(yīng)用需求催生了物聯(lián)網(wǎng)操作系統(tǒng)的誕生。邊緣計算的興起,不僅解決了海量數(shù)據(jù)上云引起的網(wǎng)絡(luò)阻塞、存儲冗余、響應(yīng)遲緩等問題,也為物聯(lián)網(wǎng)操作系統(tǒng)的發(fā)展提供了機遇。邊緣計算(將在叢書的第6卷中展開講解)是物聯(lián)網(wǎng)操作系統(tǒng)的重要應(yīng)用領(lǐng)域之一。
高檔微處理器奠定了物聯(lián)網(wǎng)操作系統(tǒng)的硬件搭載基礎(chǔ)。微處理器技術(shù)發(fā)展快速,32位MCU技術(shù)已經(jīng)成熟,既可以在嵌入式設(shè)備終端和網(wǎng)關(guān)設(shè)備上使用,又可以在傳感單元和執(zhí)行單元上普遍使用。32位微處理器的硬件資源豐富,為物聯(lián)網(wǎng)操作系統(tǒng)載體奠定了良好的硬件基礎(chǔ)。例如,在MCU市場里,ARM完善的生態(tài)環(huán)境大大推動了物聯(lián)網(wǎng)操作系統(tǒng)在內(nèi)的嵌入式軟件的發(fā)展。其他內(nèi)嵌網(wǎng)絡(luò)接口、A/D 轉(zhuǎn)換、通信模塊的微處理器芯片也不斷出現(xiàn),物聯(lián)網(wǎng)操作系統(tǒng)的搭載基礎(chǔ)越來越好。
此外,設(shè)備端的小型化、低功耗、安全性的趨勢,以及通信協(xié)議之間的靈活轉(zhuǎn)換、應(yīng)用層對邊緣計算能力的要求、復(fù)雜的設(shè)備測控軟件,這些市場需求成了物聯(lián)網(wǎng)操作系統(tǒng)產(chǎn)生的必要條件。
物聯(lián)網(wǎng)操作系統(tǒng)的組成框架
物聯(lián)網(wǎng)操作系統(tǒng)沿用了嵌入式操作系統(tǒng)中的技術(shù),可以將該技術(shù)分為兩種,一種是實時的,另一種是通用型的。物聯(lián)網(wǎng)操作系統(tǒng)由內(nèi)核、通信支持(Wi-Fi/藍牙、2G、3G、4G、5G、NFC、RS232、PLC等)、外圍組件(文件系統(tǒng)、GUI、Java虛擬機、XML文件解析器等),以及集成開發(fā)環(huán)境等組成。
物聯(lián)網(wǎng)操作系統(tǒng)的必備能力
設(shè)備管理能力:內(nèi)核應(yīng)該有一個基于總線或樹結(jié)構(gòu)的設(shè)備管理機制,可以動態(tài)加載存儲在外部介質(zhì)上的設(shè)備驅(qū)動程序或其他核心模塊。只需要開發(fā)新的應(yīng)用程序,就可以滿足設(shè)備管理需求。
可擴展、可裁剪、可伸縮的架構(gòu):因為物聯(lián)網(wǎng)應(yīng)用環(huán)境具備廣譜特性,要求操作系統(tǒng)必須能夠擴展,以適應(yīng)新的應(yīng)用環(huán)境。將物聯(lián)網(wǎng)操作系統(tǒng)的內(nèi)核設(shè)計成框架結(jié)構(gòu),定義接口和規(guī)范就可以在操作系統(tǒng)內(nèi)核上增加新的功能和硬件支持。對于資源(內(nèi)存和CPU)受限的設(shè)備,內(nèi)核軟件的大小必須維持在10KB以內(nèi),具備基本的任務(wù)調(diào)度和通信功能即可。高配置的設(shè)備(具有邊緣計算能力的服務(wù)器、具有路由功能的網(wǎng)關(guān)),其內(nèi)核必須具備完善的線程調(diào)度、內(nèi)存管理、本地存儲、復(fù)雜的網(wǎng)絡(luò)協(xié)議、圖形用戶界面等功能。這時內(nèi)核軟件的大小可以達到幾百KB,甚至MB。內(nèi)核軟件大小的伸縮性通過兩個措施來實現(xiàn),即重新編譯和二進制模塊選擇加載。重新編譯需要根據(jù)不同的應(yīng)用目標,選擇所需要的功能模塊,然后對內(nèi)核進行重新編譯;二進制模塊選擇加載,需要操作系統(tǒng)配置文件,在內(nèi)核初始化完成后,會根據(jù)配置文件,選擇加載所需要的二進制模塊。
文件系統(tǒng)、外部存儲能力:支持常用的文件系統(tǒng)和外部存儲,支持FAT32、NTFS、DCFS等文件系統(tǒng),支持硬盤、USB Stick、Flash和ROM等常用存儲設(shè)備。
應(yīng)用程序動態(tài)加載能力:物聯(lián)網(wǎng)操作系統(tǒng)應(yīng)提供一組API,供不同應(yīng)用程序調(diào)用,而且這一組API應(yīng)該根據(jù)操作系統(tǒng)所加載的外圍模塊實時變化。操作系統(tǒng)能夠動態(tài)地從外部存儲介質(zhì)上按需加載應(yīng)用程序,其內(nèi)核和外圍模塊(GUI、網(wǎng)絡(luò)等)提供基礎(chǔ)支持,而各種各樣的行業(yè)應(yīng)用則通過應(yīng)用程序來實現(xiàn)。
兼容的通信接入能力:支持物聯(lián)網(wǎng)常用的無線和有線通信功能。比如,支持GPRS、3G、HSPA、4G等公共網(wǎng)絡(luò)的無線通信功能,同時要支持 ZigBee、NFC、RFID、Wi-Fi、Bluetooth 等近場通信功能,還要支持 Ethernet、CAN、USB 有線網(wǎng)絡(luò)功能,以及窄帶通信技術(shù)NB-IoT 和LoRa。
完善的網(wǎng)絡(luò)協(xié)議兼容和轉(zhuǎn)換能力:物聯(lián)網(wǎng)操作系統(tǒng)必須支持完善的TCP/IP協(xié)議棧,包括對IPv4和IPv6的同時支持。同時也支持豐富的IP協(xié)議族,比如Telnet、FTP、IPSec、SCTP等協(xié)議,以適用智能終端和高安全、高可靠的應(yīng)用場合;不同的物理和鏈路層接口之上的協(xié)議之間要能夠相互轉(zhuǎn)換,把從一種協(xié)議獲取到的數(shù)據(jù)報文轉(zhuǎn)換成另一種協(xié)議報文發(fā)送出去。
設(shè)備的安全保護能力:支持內(nèi)存保護(VMM等機制)和異常管理等機制,在必要時隔離錯誤代碼。另外一個安全策略就是不開放源代碼,或者不開放關(guān)鍵部分的內(nèi)核源代碼。物聯(lián)網(wǎng)設(shè)備中很大一部分小型設(shè)備使用 MCU 和資源有限的微處理器,不開放它們的源代碼能保護這些小型設(shè)備使其不受網(wǎng)絡(luò)攻擊和非法控制,以確保設(shè)備安全。
邊緣計算能力:物聯(lián)網(wǎng)設(shè)備連續(xù)不斷地產(chǎn)生海量數(shù)據(jù),如何管理和處理這些數(shù)據(jù)是擺在物聯(lián)網(wǎng)企業(yè)面前的一個難題。邊緣計算無疑是解決這個難題的有效技術(shù)手段之一。邊緣計算是提高響應(yīng)速度,改善網(wǎng)絡(luò)阻塞的關(guān)鍵技術(shù)。
物聯(lián)網(wǎng)操作系統(tǒng)的實時性:物聯(lián)網(wǎng)設(shè)備的測量控制,很多關(guān)鍵性動作必須在有限的時間內(nèi)完成,否則將失去意義。首先是中斷響應(yīng)的實時性,一旦外部中斷發(fā)生,操作系統(tǒng)必須在足夠短的時間內(nèi)響應(yīng)中斷并做出處理;其次是線程或任務(wù)調(diào)度的實時性,一旦任務(wù)或線程所需的資源或進一步運行的條件準備就緒,必須馬上得到調(diào)度執(zhí)行。
物聯(lián)網(wǎng)操作系統(tǒng)的可靠性:物聯(lián)網(wǎng)應(yīng)用環(huán)境具備自動化程度高、人為干預(yù)少的特點,這要求物聯(lián)網(wǎng)操作系統(tǒng)必須足夠可靠,以支撐長時間地獨立運行和無故障運行。
功耗控制能力:操作系統(tǒng)內(nèi)核應(yīng)該在CPU空閑的時候降低CPU的運行頻率,或干脆關(guān)閉CPU。對于周邊設(shè)備,也應(yīng)該實時判斷其運行狀態(tài),一旦進入空閑狀態(tài),則切換到省電模式。例如,網(wǎng)絡(luò)上發(fā)送和接收信息的一個個嵌入式計算小型設(shè)備(比如智能傳感器),它們的測控方法和管理模式是快速執(zhí)行、立即睡眠模式。
遠程診斷、維護、升級能力:可大大降低運營成本。遠程升級完成后,原有的設(shè)備配置和數(shù)據(jù)能夠得以繼續(xù)使用。在升級失敗的情況下,操作系統(tǒng)也應(yīng)該能夠恢復(fù)原有的運行狀態(tài)。遠程升級和維護是物聯(lián)網(wǎng)操作系統(tǒng)大規(guī)模部署、低成本運營的主要措施之一。
遠程配置、管理能力:常見的遠程操作項目有遠程修改設(shè)備參數(shù)、遠程查看運行信息、遠程查看操作系統(tǒng)內(nèi)核狀態(tài)、遠程調(diào)試線程或任務(wù)、遠程轉(zhuǎn)儲(dump)內(nèi)核狀態(tài)等功能。
……
關(guān)于《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》
《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》是物聯(lián)網(wǎng)工程實戰(zhàn)叢書的第3卷《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》。《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》第1~2章由孫昊編寫;第3章由杜秀芳編寫,第4~7章由曾凡太編寫;第8~9章由趙帥編寫;第10章由王洋編寫。曾凡太統(tǒng)籌全稿!段锫(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》的出版首先感謝各位青年作者按時完成了寫作計劃!感謝歐振旭編輯的鼎力支持和出版社其他編輯的辛苦工作!《物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)》編寫過程中參考了海量的技術(shù)文獻,限于篇幅不能一一列出,深表歉意,在此對參考文獻的原作者表示衷心的感謝!
孫昊,畢業(yè)于山東大學(xué)控制工程學(xué)院,獲工學(xué)碩士學(xué)位。網(wǎng)絡(luò)設(shè)備資深研發(fā)工程師。曾就職于華為技術(shù)公司,負責(zé)操作系統(tǒng)軟件的架構(gòu)設(shè)計,并擔(dān)任C語言和Lua語言講師。申請多項ISSU技術(shù)專利,F(xiàn)就職于浪潮電子信息產(chǎn)業(yè)股份有限公司,負責(zé)軟件架構(gòu)設(shè)計工作。
王洋,畢業(yè)于遼寧工程技術(shù)大學(xué),獲碩士學(xué)位。現(xiàn)就職于浪潮集團,任軟件工程師。曾經(jīng)發(fā)表多篇智能控制和設(shè)備驅(qū)動方面的論文。
趙帥,畢業(yè)于沈陽航空航天大學(xué)。資深網(wǎng)絡(luò)設(shè)備研發(fā)工程師,從事Android平板電腦系統(tǒng)嵌入式驅(qū)動層和應(yīng)用層的開發(fā)工作。曾經(jīng)在語音網(wǎng)關(guān)研發(fā)中改進了DSP中的語音編解碼及回聲抵消算法。現(xiàn)就職于浪潮電子信息產(chǎn)業(yè)股份有限公司。
杜秀芳,畢業(yè)于山東大學(xué)控制科學(xué)與工程學(xué)院,獲工學(xué)碩士學(xué)位。曾就職于群碩軟件開發(fā)(北京)有限公司,任高級軟件工程師,從事資源配置、軟件測試和QA等工作,F(xiàn)為山東勞動職業(yè)技術(shù)學(xué)院機械工程系教師。
曾凡太,山東大學(xué)信息科學(xué)與工程學(xué)院高級工程師。已經(jīng)出版EDA工程叢書(共5卷,清華大學(xué)出版社出版)、《現(xiàn)代電子設(shè)計教程》(高等教育出版社出版)、《PCI總線與多媒體計算機》(電子工業(yè)出版社出版)等書,發(fā)表論文數(shù)十篇,申請發(fā)明專利4項。
叢書序
序言
第1章 網(wǎng)絡(luò)通信技術(shù) 1
1.1 數(shù)字通信概述 1
1.2 數(shù)字通信關(guān)鍵技術(shù) 2
1.3 數(shù)字通信OSI模型 3
1.4 TCP/IP網(wǎng)絡(luò)通信協(xié)議 7
1.4.1 TCP/IP協(xié)議 7
1.4.2 CoAP協(xié)議 10
1.4.3 MQTT協(xié)議(低帶寬) 11
1.4.4 AMQP協(xié)議(互操作性) 11
1.4.5 XMPP協(xié)議(即時通信) 12
1.4.6 JMS協(xié)議 13
1.5 UDP協(xié)議 14
1.6 HTTP協(xié)議 16
1.6.1 工作原理 16
1.6.2 消息結(jié)構(gòu) 17
1.6.3 請求方法 18
1.6.4 響應(yīng)頭信息 19
1.6.5 狀態(tài)碼 20
1.6.6 內(nèi)容類型 20
1.7 FTP協(xié)議 21
1.8 Bluetooth協(xié)議 23
1.8.1 Bluetooth發(fā)展史及優(yōu)勢 23
1.8.2 Bluetooth技術(shù) 25
1.9 ZigBee協(xié)議 26
1.9.1 ZigBee發(fā)展歷史 27
1.9.2 ZigBee的特點及優(yōu)勢 30
1.9.3 ZigBee基本概念 30
1.9.4 ZigBee協(xié)議棧 32
1.10 6LoWPAN低速無線個域網(wǎng)協(xié)議 33
1.11 LoRa WAN低功耗廣域網(wǎng)協(xié)議 35
1.12 NB-IoT窄帶物聯(lián)網(wǎng)協(xié)議 41
1.12.1 物聯(lián)網(wǎng)應(yīng)用場景和技術(shù)特點 41
1.12.2 無線通信技術(shù)發(fā)展過程 48
1.12.3 NB-IoT窄帶物聯(lián)網(wǎng)節(jié)能原理 52
1.12.4 NB-IoT通信系統(tǒng)拓撲結(jié)構(gòu) 56
1.12.5 NB-IoT窄帶物聯(lián)網(wǎng)信號收發(fā)技術(shù) 59
1.12.6 NB-IoT窄帶物聯(lián)網(wǎng)小區(qū)接入 64
1.12.7 NB-IoT連接管理 67
1.12.8 NB-IoT數(shù)據(jù)傳輸 68
1.13 MQTT網(wǎng)絡(luò)協(xié)議 71
1.13.1 網(wǎng)絡(luò)協(xié)議比較 71
1.13.2 發(fā)布和訂閱模型 72
1.13.3 MQTT協(xié)議命令 73
1.13.4 MQTT協(xié)議參數(shù) 74
1.14 協(xié)議轉(zhuǎn)換 77
1.14.1 RS-232/485/CAN轉(zhuǎn)換器 77
1.14.2 基于現(xiàn)場總線的協(xié)議轉(zhuǎn)換器 78
1.14.3 物聯(lián)網(wǎng)協(xié)議轉(zhuǎn)換器網(wǎng)關(guān) 79
1.14.4 物聯(lián)網(wǎng)網(wǎng)關(guān) 82
1.14.5 物聯(lián)網(wǎng)網(wǎng)關(guān)應(yīng)用 84
1.15 小結(jié) 85
1.16 習(xí)題 86
第2章 信息交換技術(shù) 87
2.1 交換技術(shù)概述 88
2.2 數(shù)字程控交換 91
2.3 ATM交換 92
2.4 以太網(wǎng)交換 92
2.5 光交換 94
2.6 二層交換交換機原理 94
2.7 三層轉(zhuǎn)發(fā)路由器原理 95
2.8 三層交換三層交換機 98
2.9 交換機設(shè)計開發(fā) 103
2.9.1 交換機的層次定位 103
2.9.2 交換機的硬件設(shè)計 104
2.9.3 交換機的軟件設(shè)計 107
2.9.4 測試環(huán)節(jié) 110
2.10 小結(jié) 110
2.11 習(xí)題 111
第3章 無線Wi-Fi技術(shù) 112
3.1 Wi-Fi概述 112
3.1.1 WLAN無線局域網(wǎng)絡(luò)概述 112
3.1.2 Wi-Fi無線網(wǎng)絡(luò)起源 113
3.2 Wi-Fi基礎(chǔ) 116
3.2.1 Wi-Fi物理組件 117
3.2.2 Wi-Fi服務(wù)功能 117
3.2.3 Wi-Fi認證和加密 120
3.2.4 Wi-Fi基礎(chǔ)參數(shù) 121
3.3 Wi-Fi接入 123
3.3.1 Wi-Fi的STA與AP的接入 123
3.3.2 Wi-Fi的多AP認證和關(guān)聯(lián)過程 125
3.3.3 Wi-Fi漫游過程 126
3.4 Wi-Fi管理 127
3.4.1 wpa_supplicant程序 127
3.4.2 wpa_cli調(diào)試工具 129
3.5 Wi-Fi模塊解析 130
3.5.1 Wi-Fi框架分析 130
3.5.2 Wi-Fi啟動流程 133
3.6 Wi-Fi驅(qū)動結(jié)構(gòu) 142
3.6.1 SDIO驅(qū)動 142
3.6.2 無線通信芯片 142
3.6.3 設(shè)備驅(qū)動注冊 144
3.6.4 加載驅(qū)動模塊 154
3.6.5 SDIO設(shè)備中斷 155
3.6.6 Wi-Fi驅(qū)動流程 156
3.6.7 網(wǎng)絡(luò)設(shè)備注冊 159
3.7 小結(jié) 162
3.8 習(xí)題 163
第4章 操作系統(tǒng)概述 164
4.1 通用計算機操作系統(tǒng) 164
4.2 嵌入式實時操作系統(tǒng) 166
4.2.1 嵌入式操作系統(tǒng)的主要特點 167
4.2.2 嵌入式操作系統(tǒng)和通用計算機操作系統(tǒng)的區(qū)別 167
4.2.3 流行嵌入式實時操作系統(tǒng) 168
4.3 手機操作系統(tǒng) 171
4.3.1 Android 操作系統(tǒng) 171
4.3.2 Android App研發(fā)基礎(chǔ) 172
4.3.3 Android App開發(fā)文獻 174
4.3.4 iOS操作系統(tǒng) 176
4.4 物聯(lián)網(wǎng)操作系統(tǒng) 178
4.4.1 概述 178
4.4.2 特點 180
4.4.3 架構(gòu) 182
4.4.4 實例分析 192
4.4.5 發(fā)展趨勢 194
4.5 小結(jié) 195
4.6 習(xí)題 196
第5章 物聯(lián)網(wǎng)操作系統(tǒng) 197
5.1 微軟物聯(lián)網(wǎng)操作系統(tǒng) 197
5.2 谷歌物聯(lián)網(wǎng)操作系統(tǒng) 197
5.2.1 谷歌Brillo 198
5.2.2 谷歌Android Things 199
5.3 ARM物聯(lián)網(wǎng)操作系統(tǒng) 203
5.4 華為物聯(lián)網(wǎng)操作系統(tǒng)Huawei LiteOS 204
5.5 中興物聯(lián)網(wǎng)操作系統(tǒng) 207
5.6 慶科物聯(lián)網(wǎng)操作系統(tǒng)MICO 211
5.7 小結(jié) 220
5.8 習(xí)題 220
第6章 嵌入式Linux操作系統(tǒng) 221
6.1 uClinux簡介 221
6.2 RTLinux簡介 230
6.3 Ostro Linux簡介 234
6.4 HelloX物聯(lián)網(wǎng)操作系統(tǒng) 237
6.4.1 HelloX物聯(lián)網(wǎng)操作系統(tǒng)框架分析 238
6.4.2 HelloX主要功能 239
6.4.3 HelloX的開發(fā)方向 241
6.4.4 HelloX用于智慧家庭 243
6.5 FreeRTOS操作系統(tǒng)簡介 246
6.6 Tiny OS操作系統(tǒng)簡介 249
6.6.1 Tiny OS特點 249
6.6.2 Tiny OS組成 251
6.6.3 Tiny OS運行機理 252
6.6.4 Tiny OS開發(fā)環(huán)境 252
6.6.5 Tiny OS開發(fā)過程 253
6.6.6 Tiny OS開發(fā)平臺 254
6.6.7 Tiny OS的研究項目 254
6.7 RIOT OS操作系統(tǒng)簡介 254
6.8 小結(jié) 258
6.9 習(xí)題 259
第7章 物聯(lián)網(wǎng)Zephyr操作系統(tǒng) 260
7.1 Zephyr操作系統(tǒng)概述 261
7.1.1 Zephyr特色 261
7.1.2 支持的微處理器類型 262
7.1.3 支持的通信標準和網(wǎng)絡(luò)協(xié)議 262
7.1.4 內(nèi)核版本迭代歷程 263
7.2 Zephyr系統(tǒng)內(nèi)核 266
7.2.1 多線程功能 267
7.2.2 中斷服務(wù)功能 268
7.2.3 時鐘和定時器功能 268
7.2.4 同步功能 268
7.2.5 數(shù)據(jù)傳輸功能 269
7.2.6 內(nèi)存動態(tài)分配功能 269
7.2.7 公共和私有內(nèi)核對象 269
7.2.8 微內(nèi)核服務(wù)器功能 270
7.2.9 C 支持的應(yīng)用 270
7.2.10 Zephyr源代碼結(jié)構(gòu) 271
7.3 在Linux上搭建Zephyr開發(fā)環(huán)境 271
7.3.1 下載源代碼 272
7.3.2 安裝需要的包和依賴文件 272
7.3.3 安裝Zephyr SDK 272
7.3.4 編譯、運行應(yīng)用程序 273
7.3.5 應(yīng)用程序仿真測試與運行 274
7.4 在Windows上搭建Zephyr開發(fā)環(huán)境 274
7.5 用MSYS2搭建Zephyr 開發(fā)環(huán)境 277
7.6 應(yīng)用程序開發(fā) 279
7.6.1 概述 279
7.6.2 創(chuàng)建應(yīng)用程序目錄app 280
7.6.3 創(chuàng)建應(yīng)用程序子目錄build 281
7.6.4 重構(gòu)應(yīng)用程序 282
7.6.5 運行應(yīng)用程序 282
7.6.6 開發(fā)板定制 283
7.6.7 用QEMU調(diào)試程序 284
7.6.8 用Eclipse調(diào)試程序 286
7.6.9 CMake工具 287
7.6.10 CMakeLists.txt文件 288
7.6.11 CMakeCache.txt文件 289
7.6.12 編輯配置文件 290
7.6.13 更新設(shè)備樹序列 293
7.6.14 支持第三方庫代碼 294
7.7 小結(jié) 294
7.8 習(xí)題 295
第8章 嵌入式Ubuntu操作系統(tǒng) 296
8.1 準備Ubuntu文件 297
8.2 安裝Ubuntu系統(tǒng) 299
8.3 連網(wǎng)資源 304
8.4 更新系統(tǒng) 307
8.5 目錄結(jié)構(gòu) 309
8.6 啟動流程 310
8.7 編程環(huán)境 311
8.7.1 安裝編輯器 311
8.7.2 下載并安裝JDK 311
8.7.3 Ubuntu開發(fā)環(huán)境的配置 314
8.7.4 Ubuntu添加或刪除源 315
8.7.5 安裝Eclipse 316
8.7.6 安裝MySQL 317
8.7.7 安裝build-essential 318
8.7.8 安裝Tomcat 319
8.7.9 安裝Android Studio(32Bit) 321
8.8 小結(jié) 322
8.9 習(xí)題 322
第9章 路由器OpenWrt操作系統(tǒng) 323
9.1 OpenWrt開發(fā)環(huán)境基礎(chǔ) 324
9.1.1 OpenWrt硬件需求 324
9.1.2 OpenWrt文件結(jié)構(gòu)和網(wǎng)絡(luò)結(jié)構(gòu) 326
9.2 OpenWrt常用命令 326
9.2.1 編輯命令vi 327
9.2.2 查找命令grep 328
9.2.3 查找命令find 328
9.2.4 在線手冊查看命令man 329
9.2.5 其他命令 330
9.3 OpenWrt常用工具 331
9.3.1 Feeds簡介 332
9.3.2 Buildroot簡介 333
9.3.3 代碼閱讀與編輯工具Source Insight 334
9.3.4 文件傳輸工具FileZilla 339
9.3.5 遠程登錄工具SecureCRT 343
9.3.6 TFTP服務(wù)器軟件Tftpd32 345
9.3.7 代碼閱讀和編輯工具KScope 346
9.3.8 遠程登錄工具C-Kermit 350
9.4 在Windows上安裝VMware 351
9.5 在VMware上安裝Ubuntu 357
9.5.1 Ubuntu安裝步驟 357
9.5.2 Ubuntu上安裝、配置、啟動FTP和SSH服務(wù) 360
9.6 在Ubuntu上安裝OpenWrt 362
9.6.1 安裝open-vm-tools 363
9.6.2 安裝所需的依賴環(huán)境 363
9.6.3 OpenWrt下載安裝 364
9.6.4 OpenWrt的編譯 364
9.6.5 OpenWrt的固件燒寫 366
9.7 OpenWrt配置 368
9.7.1 初始配置 368
9.7.2 配置DNS 369
9.7.3 配置PPTP 370
9.7.4 配置chnroutes 373
9.7.5 配置VPN 374
9.7.6 安裝LuCI 376
9.8 OpenWrt路由器應(yīng)用開發(fā) 377
9.8.1 OpenWrt系統(tǒng)的編譯 377
9.8.2 OpenWrt在線固件更新 380
9.8.3 OpenWrt刷機 390
9.8.4 路由器設(shè)置 392
9.8.5 文件服務(wù) 397
9.8.6 DDNS服務(wù) 403
9.9 OpenWrt應(yīng)用程序編程實例 404
9.10 小結(jié) 412
9.11 習(xí)題 413
第10章 設(shè)備底層驅(qū)動編程 414
10.1 設(shè)備驅(qū)動簡介 414
10.1.1 引言 414
10.1.2 設(shè)備驅(qū)動分類 415
10.1.3 驅(qū)動模塊程序結(jié)構(gòu) 416
10.2 Linux文件系統(tǒng) 420
10.3 文件系統(tǒng)與設(shè)備驅(qū)動 421
10.4 驅(qū)動編譯及加載實例 423
10.5 字符設(shè)備驅(qū)動 427
10.5.1 字符設(shè)備驅(qū)動初識 428
10.5.2 字符設(shè)備驅(qū)動構(gòu)成 431
10.6 小結(jié) 434
10.7 習(xí)題 434
參考文獻 435