出版時(shí)間:2012-9 出版社:電子工業(yè)出版社 作者:劉連浩 頁(yè)數(shù):362 字?jǐn)?shù):520000
內(nèi)容概要
劉連浩編著的《物聯(lián)網(wǎng)與嵌入式系統(tǒng)開(kāi)發(fā)》是依托中南大學(xué)國(guó)家級(jí)特色專(zhuān)業(yè)(物聯(lián)網(wǎng)工程)的建設(shè),結(jié)合國(guó)內(nèi)物聯(lián)網(wǎng)工程專(zhuān)業(yè)的教學(xué)情況編寫(xiě)的。
本書(shū)主要介紹物聯(lián)網(wǎng)應(yīng)用中的嵌入式系統(tǒng)的開(kāi)發(fā),以S3C2440為硬件,以嵌入式Linux為軟件,詳細(xì)介紹了物聯(lián)網(wǎng)與嵌入式系統(tǒng)的關(guān)系、ARM
Cortex的體系結(jié)構(gòu)、ARM的指令和程序設(shè)計(jì)、S3C2440的硬件結(jié)構(gòu)與編程、嵌入式
Linux的開(kāi)發(fā)和移植等內(nèi)容,最后給出了在物聯(lián)網(wǎng)應(yīng)用中常用的嵌入式系統(tǒng)開(kāi)發(fā)實(shí)例。
《物聯(lián)網(wǎng)與嵌入式系統(tǒng)開(kāi)發(fā)》可作為普通高等學(xué)校物聯(lián)網(wǎng)工程及其相關(guān)專(zhuān)業(yè)的教材,也可供從事物聯(lián)網(wǎng)及其相關(guān)專(zhuān)業(yè)的人士閱讀。
書(shū)籍目錄
第1章 嵌入式系統(tǒng)概述
1.1 嵌入式系統(tǒng)簡(jiǎn)介
1.2 嵌入式系統(tǒng)的組成
1.3 嵌入式處理器簡(jiǎn)介
1.4 嵌入式系統(tǒng)應(yīng)用
1.5 嵌入式系統(tǒng)發(fā)展趨勢(shì)
1.6 物聯(lián)網(wǎng)與嵌入式系統(tǒng)
1.7 嵌入式開(kāi)發(fā)工具
1.7.1 軟件開(kāi)發(fā)工具
1.7.2 硬件開(kāi)發(fā)工具
思考與習(xí)題
第2章 ARM體系結(jié)構(gòu)
2.1 ARM處理器基礎(chǔ)
2.1.1 ARM簡(jiǎn)介
2.1.2 馮諾依曼結(jié)構(gòu)、哈佛結(jié)構(gòu)與改進(jìn)的哈佛結(jié)構(gòu)
2.1.3 CISC與RISC
2.1.4 流水線(xiàn)
2.1.5 ARM處理器的命名方式
2.2 ARM處理器系列
2.2.1 ARM處理器架構(gòu)
2.2.2 常用ARM處理器系列簡(jiǎn)介
2.3 ARM體系結(jié)構(gòu)
2.3.1 ARM的基本數(shù)據(jù)類(lèi)型
2.3.2 ARM處理器的運(yùn)行模式
2.3.3 ARM處理器的運(yùn)行狀態(tài)
2.3.4 存儲(chǔ)器的大/小端
2.3.5 ARM的寄存器組織
2.3.6 異常處理
2.4 ARM存儲(chǔ)器結(jié)構(gòu)
2.4.1 ARM存儲(chǔ)器接口
2.4.2 ARM Cache結(jié)構(gòu)
2.4.3 ARM存儲(chǔ)器管理單元MMU
2.4.4 地址變換后備緩沖器
2.4.5 ARM的MMU結(jié)構(gòu)
2.5 ARM的其他部件
2.5.1 存儲(chǔ)器映像I/O
2.5.2 直接存儲(chǔ)器存取
2.5.3 中斷IRQ和快速中斷FIQ
2.5.4 ARM協(xié)處理器接口
2.5.5 ARM AMBA接口
思考與習(xí)題
第3章 ARM指令集與程序設(shè)計(jì)
3.1 ARM指令系統(tǒng)特點(diǎn)
3.1.1 數(shù)據(jù)類(lèi)型
3.1.2 ARM指令特點(diǎn)
3.2 ARM指令系統(tǒng)
3.2.1 ARM指令的尋址方式
3.2.2 ARM指令的條件執(zhí)行
3.2.3 Load/Store類(lèi)指令
3.2.4 ARM數(shù)據(jù)處理類(lèi)指令
3.2.5 ARM轉(zhuǎn)移類(lèi)指令
3.3 Thumb指令
3.3.1 Thumb指令概述
3.3.2 Thumb存儲(chǔ)器訪(fǎng)問(wèn)指令
3.3.3 Thumb數(shù)據(jù)處理指令
3.3.4 分支指令
3.3.5 中斷和斷點(diǎn)指令
3.4 ARM偽操作與偽指令
3.4.1 符號(hào)定義與變量賦值偽操作
3.4.2 數(shù)據(jù)定義偽操作
3.4.3 匯編控制偽操作
3.4.4 信息報(bào)告?zhèn)尾僮?br />3.4.5 指令集選擇偽操作
3.4.6 雜項(xiàng)偽操作
3.4.7 ADR、ADRL、LDR偽指令
3.4.8 NOP偽指令
3.5 ARM匯編程序設(shè)計(jì)
3.5.1 匯編語(yǔ)言的基本格式
3.5.2 匯編語(yǔ)言的子程序調(diào)用
3.6 ARM C語(yǔ)言基礎(chǔ)及混合編程
3.6.1 ATPCS概述
3.6.2 C語(yǔ)言與匯編語(yǔ)言混合編程
3.7 超級(jí)終端的使用
3.8 ADS集成開(kāi)發(fā)環(huán)境的使用
3.8.1 安裝與卸載ADS
3.8.2 使用ADS創(chuàng)建工程
3.8.3 使用AXD進(jìn)行仿真
思考與習(xí)題
第4章 基于S3C2440的硬件結(jié)構(gòu)與接口編程
4.1 S3C2440簡(jiǎn)介
4.1.1 S3C2440A片上主要功能
4.1.2 S3C2440A特點(diǎn)
4.2 S3C2440A的存儲(chǔ)器接口
4.2.1 S3C2440A存儲(chǔ)器控制器
4.2.2 NAND Flash控制器
4.2.3 SDRAM原理
4.3 時(shí)鐘和電源管理
4.4 DMA
4.4.1 DMA請(qǐng)求源
4.4.2 DMA工作過(guò)程
4.4.3 基本DMA時(shí)序
4.4.4 DMA傳輸大小
4.4.5 DMA專(zhuān)用寄存器
4.5 I/O端口
4.6 定時(shí)器
4.7 ARM中斷
4.8 LCD
4.8.1 LCD原理
4.8.2 ARM LCD驅(qū)動(dòng)控制
4.8.3 LCD控制器特殊寄存器
4.9 A/D轉(zhuǎn)換器和觸摸屏
4.9.1 A/D轉(zhuǎn)換器簡(jiǎn)介
4.9.2 觸摸屏的工作原理及種類(lèi)
4.9.3 A/D轉(zhuǎn)換器和觸摸屏接口
4.10 異步串口通信
4.10.1 串行通信概述
4.10.2 S3C2440A異步串行口簡(jiǎn)介
4.11 SPI、IIC、IIS、SD卡總線(xiàn)接口
4.11.1 SPI總線(xiàn)接口
4.11.2 IIC總線(xiàn)接口
4.11.3 IIS總線(xiàn)接口
4.11.4 SD卡
4.12 USB Host/Device控制器
思考與習(xí)題
第5章 嵌入式操作系統(tǒng)
5.1 操作系統(tǒng)簡(jiǎn)介
5.1.1 操作系統(tǒng)
5.1.2 嵌入式操作系統(tǒng)
5.2 C/OS-II簡(jiǎn)介
5.3 VxWorks簡(jiǎn)介
5.4 WinCE簡(jiǎn)介
5.5 Linux簡(jiǎn)介
5.5.1 Linux簡(jiǎn)介
5.5.2 Linux特點(diǎn)
5.5.3 嵌入式Linux
5.5.4 Linux內(nèi)核版本與發(fā)行版
5.5.5 Linux進(jìn)程管理
5.5.6 存儲(chǔ)管理
5.5.7 文件系統(tǒng)
5.5.8 設(shè)備管理
5.5.9 Linux內(nèi)核模塊
5.5.10 Linux配置文件
5.5.11 Linux啟動(dòng)流程簡(jiǎn)介
5.6 其他嵌入式操作系統(tǒng)
5.6.1 其他國(guó)外常用嵌入式操作系統(tǒng)
5.6.2 其他國(guó)內(nèi)常用的嵌入式操作系統(tǒng)
思考與習(xí)題
第6章 嵌入式Linux應(yīng)用開(kāi)發(fā)
6.1 Linux安裝
6.1.1 安裝vmware
6.1.2 創(chuàng)建虛擬機(jī)
6.1.3 安裝fedora14
6.1.4 安裝VMware Tools
6.2 交叉編譯環(huán)境的建立
6.2.1 交叉編譯
6.2.2 交叉編譯器的安裝
6.3 Linux常用命令
6.3.1 系統(tǒng)管理命令
6.3.2 文件管理命令
6.3.3 文件查看命令
6.3.4 進(jìn)程管理命令
6.3.5 網(wǎng)絡(luò)管理命令
6.3.6 用戶(hù)管理命令
6.4 minicom的使用
6.4.1 minicom的安裝
6.4.2 minicom的設(shè)置
6.4.3 minicom的使用
6.5 vi程序的使用
6.5.1 啟動(dòng)vi
6.5.2 常用vi命令
6.6 gcc程序的使用
6.6.1 gcc簡(jiǎn)介
6.6.2 gcc編譯程序的流程
6.6.3 gcc選項(xiàng)
6.7 gdb程序的使用
6.7.1 gdb簡(jiǎn)介
6.7.2 gdb的調(diào)試程序流程
6.7.3 gdb命令
6.8 makefile簡(jiǎn)介
6.8.1 makefile簡(jiǎn)介
6.8.2 makefile的規(guī)則
6.8.3 makefile文件的命名
6.8.4 makefile的組成
6.8.5 簡(jiǎn)單的makefile示例
6.8.6 使用變量
6.8.7 使用隱式規(guī)則
6.8.8 偽目標(biāo)
6.9 Linux應(yīng)用程序編程
6.9.1 文件編程
6.9.2 進(jìn)程創(chuàng)建
6.9.3 進(jìn)程間通信之管道
6.9.4 進(jìn)程間通信之有名管道
6.9.5 進(jìn)程間通信之信號(hào)
6.9.6 進(jìn)程間通信之信號(hào)量
6.9.7 進(jìn)程間通信之消息隊(duì)列
6.9.8 進(jìn)程間通信之共享內(nèi)存
6.9.9 原子操作
6.9.10 線(xiàn)程
6.9.11 網(wǎng)絡(luò)編程基礎(chǔ)
6.9.12 Linux中斷
思考與習(xí)題
第7章 嵌入式Linux操作系統(tǒng)的移植
7.1 Bootloader
7.1.1 Bootloader簡(jiǎn)介
7.1.2 常見(jiàn)Bootloader
7.2 Linux的移植
7.2.1 安裝前的準(zhǔn)備工作
7.2.2 Linux的移植步驟
7.3 根文件系統(tǒng)的制作
思考與習(xí)題
第8章 物聯(lián)網(wǎng)中的常用嵌入式系統(tǒng)
8.1 TinyOS簡(jiǎn)介
8.1.1 TinyOS概述
8.1.2 TinyOS的特點(diǎn)
8.1.3 TinyOS開(kāi)發(fā)平臺(tái)
8.1.4 TinyOS開(kāi)發(fā)案例
8.1.5 TinyOS的基本概念
8.2 安裝TinyOS
8.3 nesC簡(jiǎn)介
8.3.1 nesC概述
8.3.2 nesC基本概念
8.3.3 一個(gè)簡(jiǎn)單的nesC編程示例
8.3.4 TOSSIM仿真
8.4 TinyOS內(nèi)部機(jī)制簡(jiǎn)介
8.4.1 TinyOS程序運(yùn)行機(jī)制分析
8.4.2 TinyOS的調(diào)度機(jī)制
8.4.3 TinyOS的通信模型
8.4.4 TinyOS的能量管理
思考與習(xí)題
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 3.6.1 ATPCS概述 ATPCS(ARM—Thumb Produce Call Standard)是ARM程序和Thumb程序中子程序調(diào)用的基本規(guī)則,目的是為了使單獨(dú)編譯的C語(yǔ)言程序和匯編程序之間能夠相互調(diào)用。這些基本規(guī)則包括子程序調(diào)用過(guò)程中寄存器的使用規(guī)則、數(shù)據(jù)棧的使用規(guī)則和參數(shù)的傳遞規(guī)則。 1.寄存器的使用規(guī)則(見(jiàn)表34) ①子程序間通過(guò)寄存器R0~R3來(lái)傳遞參數(shù)。被調(diào)用的子程序在返回前無(wú)須恢復(fù)寄存器R0~R3的內(nèi)容。 ②在子程序中,使用寄存器R4~R11來(lái)保存局部變量。這時(shí),寄存器R4~R11可以記為v1~v8。如果在子程序中使用了寄存器v1~v8中的某些寄存器,則子程序進(jìn)入時(shí)必須保存這些寄存器的值,在返回前必須恢復(fù)這些寄存器的值。在Thumb程序中,通常只能使用寄存器R4~R7來(lái)保存局部變量。另外R9、R10和R11還有一個(gè)特殊作用,分別記為靜態(tài)基址寄存器SB、數(shù)據(jù)棧限制指針SL和楨指針FP。 ③寄存器R12用做過(guò)程調(diào)用中間臨時(shí)寄存器IP。寄存器R13用做堆棧指針SP。在子程序中寄存器R13不能用做其他用途。寄存器SP在進(jìn)入子程序時(shí)的值和退出子程序的值必須相等。寄存器R14稱(chēng)為鏈接寄存器LR,它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14則可以用做其他用途。寄存器R15為程序計(jì)數(shù)器PC,不能用做其他用途。 ④只有寄存器R0~R7、SP、LR和PC可以在Thumb狀態(tài)下使用,其中R7常常作為T(mén)humb狀態(tài)的工作寄存器,記為WR。 2.數(shù)據(jù)棧使用規(guī)則 棧指針通常可以指向不同的位置。當(dāng)棧指針指向棧頂元素(即最后一個(gè)入棧的數(shù)據(jù)元素)時(shí),稱(chēng)為FULL棧。當(dāng)棧指針指向與棧頂元素相鄰的一個(gè)元素時(shí),稱(chēng)為Empty棧。數(shù)據(jù)棧的增長(zhǎng)方向也可以不同。當(dāng)數(shù)據(jù)棧向內(nèi)存減小的地址方向增長(zhǎng)時(shí),稱(chēng)為Descending棧,當(dāng)數(shù)據(jù)棧向著內(nèi)存地址增加的方向增長(zhǎng)時(shí),稱(chēng)為Ascending棧。綜合這兩種特點(diǎn)可以由以下4種數(shù)據(jù)棧:FD、ED、FA、EA。ATPCS規(guī)定數(shù)據(jù)棧為FD類(lèi)型,并對(duì)數(shù)據(jù)棧的操作是8字節(jié)對(duì)齊的,下面是一個(gè)數(shù)據(jù)棧的示例及相關(guān)的名詞。 數(shù)據(jù)棧棧指針(Stack Pointer):指向最后一個(gè)寫(xiě)入棧的數(shù)據(jù)的內(nèi)存地址。 數(shù)據(jù)棧的基地址(Stack Base):是指數(shù)據(jù)棧的最高地址。由于ATPCS中的數(shù)據(jù)棧是FD類(lèi)型的,實(shí)際上數(shù)據(jù)棧中最早入棧數(shù)據(jù)占據(jù)的內(nèi)存單元是基地址的下一個(gè)內(nèi)存單元。 數(shù)據(jù)棧界限(Stack Limit):是指數(shù)據(jù)棧中可以使用的最低的內(nèi)存單元地址。 已占用的數(shù)據(jù)棧(Used Stack):是指數(shù)據(jù)棧的基地址和數(shù)據(jù)棧棧指針之間的區(qū)域。 其中包括數(shù)據(jù)棧棧指針對(duì)應(yīng)的內(nèi)存單元。 數(shù)據(jù)棧中的數(shù)據(jù)幀(Stack Frames):是指在數(shù)據(jù)棧中,為子程序分配的用來(lái)保存寄存器和局部變量的區(qū)域。 異常中斷的處理程序可以使用被中斷程序的數(shù)據(jù)棧,這時(shí)用戶(hù)要保證中斷的程序數(shù)據(jù)棧足夠大。使用ADS編譯器產(chǎn)生的目標(biāo)代碼中包含了DRFAT2格式的數(shù)據(jù)幀。在調(diào)試過(guò)程中,調(diào)試器可以使用這些數(shù)據(jù)幀來(lái)查看數(shù)據(jù)棧中的相關(guān)信息。而對(duì)于匯編語(yǔ)言來(lái)說(shuō),用戶(hù)必須使用FRAME偽操作來(lái)描述數(shù)據(jù)棧中的數(shù)據(jù)幀。ARM匯編器根據(jù)這些偽操作在目標(biāo)文件中產(chǎn)生相應(yīng)的DRFAT2格式的數(shù)據(jù)幀。
編輯推薦
《國(guó)家級(jí)特色專(zhuān)業(yè)(物聯(lián)網(wǎng)工程)規(guī)劃教材:物聯(lián)網(wǎng)與嵌入式系統(tǒng)開(kāi)發(fā)》可作為普通高等學(xué)校物聯(lián)網(wǎng)工程及其相關(guān)專(zhuān)業(yè)的教材,也可供從事物聯(lián)網(wǎng)及其相關(guān)專(zhuān)業(yè)的人士閱讀。
圖書(shū)封面
評(píng)論、評(píng)分、閱讀與下載
物聯(lián)網(wǎng)與嵌入式系統(tǒng)開(kāi)發(fā) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版