物聯(lián)網(wǎng)與嵌入式系統(tǒng)開發(fā)

出版時間:2012-9  出版社:電子工業(yè)出版社  作者:劉連浩  頁數(shù):362  字?jǐn)?shù):520000  

內(nèi)容概要

劉連浩編著的《物聯(lián)網(wǎng)與嵌入式系統(tǒng)開發(fā)》是依托中南大學(xué)國家級特色專業(yè)(物聯(lián)網(wǎng)工程)的建設(shè),結(jié)合國內(nèi)物聯(lián)網(wǎng)工程專業(yè)的教學(xué)情況編寫的。
本書主要介紹物聯(lián)網(wǎng)應(yīng)用中的嵌入式系統(tǒng)的開發(fā),以S3C2440為硬件,以嵌入式Linux為軟件,詳細(xì)介紹了物聯(lián)網(wǎng)與嵌入式系統(tǒng)的關(guān)系、ARM
Cortex的體系結(jié)構(gòu)、ARM的指令和程序設(shè)計、S3C2440的硬件結(jié)構(gòu)與編程、嵌入式
Linux的開發(fā)和移植等內(nèi)容,最后給出了在物聯(lián)網(wǎng)應(yīng)用中常用的嵌入式系統(tǒng)開發(fā)實例。
《物聯(lián)網(wǎng)與嵌入式系統(tǒng)開發(fā)》可作為普通高等學(xué)校物聯(lián)網(wǎng)工程及其相關(guān)專業(yè)的教材,也可供從事物聯(lián)網(wǎng)及其相關(guān)專業(yè)的人士閱讀。

書籍目錄

第1章 嵌入式系統(tǒng)概述
1.1 嵌入式系統(tǒng)簡介
1.2 嵌入式系統(tǒng)的組成
1.3 嵌入式處理器簡介
1.4 嵌入式系統(tǒng)應(yīng)用
1.5 嵌入式系統(tǒng)發(fā)展趨勢
1.6 物聯(lián)網(wǎng)與嵌入式系統(tǒng)
1.7 嵌入式開發(fā)工具
1.7.1 軟件開發(fā)工具
1.7.2 硬件開發(fā)工具
思考與習(xí)題
第2章 ARM體系結(jié)構(gòu)
2.1 ARM處理器基礎(chǔ)
2.1.1 ARM簡介
2.1.2 馮諾依曼結(jié)構(gòu)、哈佛結(jié)構(gòu)與改進(jìn)的哈佛結(jié)構(gòu)
2.1.3 CISC與RISC
2.1.4 流水線
2.1.5 ARM處理器的命名方式
2.2 ARM處理器系列
2.2.1 ARM處理器架構(gòu)
2.2.2 常用ARM處理器系列簡介
2.3 ARM體系結(jié)構(gòu)
2.3.1 ARM的基本數(shù)據(jù)類型
2.3.2 ARM處理器的運行模式
2.3.3 ARM處理器的運行狀態(tài)
2.3.4 存儲器的大/小端
2.3.5 ARM的寄存器組織
2.3.6 異常處理
2.4 ARM存儲器結(jié)構(gòu)
2.4.1 ARM存儲器接口
2.4.2 ARM Cache結(jié)構(gòu)
2.4.3 ARM存儲器管理單元MMU
2.4.4 地址變換后備緩沖器
2.4.5 ARM的MMU結(jié)構(gòu)
2.5 ARM的其他部件
2.5.1 存儲器映像I/O
2.5.2 直接存儲器存取
2.5.3 中斷IRQ和快速中斷FIQ
2.5.4 ARM協(xié)處理器接口
2.5.5 ARM AMBA接口
思考與習(xí)題
第3章 ARM指令集與程序設(shè)計
3.1 ARM指令系統(tǒng)特點
3.1.1 數(shù)據(jù)類型
3.1.2 ARM指令特點
3.2 ARM指令系統(tǒng)
3.2.1 ARM指令的尋址方式
3.2.2 ARM指令的條件執(zhí)行
3.2.3 Load/Store類指令
3.2.4 ARM數(shù)據(jù)處理類指令
3.2.5 ARM轉(zhuǎn)移類指令
3.3 Thumb指令
3.3.1 Thumb指令概述
3.3.2 Thumb存儲器訪問指令
3.3.3 Thumb數(shù)據(jù)處理指令
3.3.4 分支指令
3.3.5 中斷和斷點指令
3.4 ARM偽操作與偽指令
3.4.1 符號定義與變量賦值偽操作
3.4.2 數(shù)據(jù)定義偽操作
3.4.3 匯編控制偽操作
3.4.4 信息報告?zhèn)尾僮?br />3.4.5 指令集選擇偽操作
3.4.6 雜項偽操作
3.4.7 ADR、ADRL、LDR偽指令
3.4.8 NOP偽指令
3.5 ARM匯編程序設(shè)計
3.5.1 匯編語言的基本格式
3.5.2 匯編語言的子程序調(diào)用
3.6 ARM C語言基礎(chǔ)及混合編程
3.6.1 ATPCS概述
3.6.2 C語言與匯編語言混合編程
3.7 超級終端的使用
3.8 ADS集成開發(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簡介
4.1.1 S3C2440A片上主要功能
4.1.2 S3C2440A特點
4.2 S3C2440A的存儲器接口
4.2.1 S3C2440A存儲器控制器
4.2.2 NAND Flash控制器
4.2.3 SDRAM原理
4.3 時鐘和電源管理
4.4 DMA
4.4.1 DMA請求源
4.4.2 DMA工作過程
4.4.3 基本DMA時序
4.4.4 DMA傳輸大小
4.4.5 DMA專用寄存器
4.5 I/O端口
4.6 定時器
4.7 ARM中斷
4.8 LCD
4.8.1 LCD原理
4.8.2 ARM LCD驅(qū)動控制
4.8.3 LCD控制器特殊寄存器
4.9 A/D轉(zhuǎn)換器和觸摸屏
4.9.1 A/D轉(zhuǎn)換器簡介
4.9.2 觸摸屏的工作原理及種類
4.9.3 A/D轉(zhuǎn)換器和觸摸屏接口
4.10 異步串口通信
4.10.1 串行通信概述
4.10.2 S3C2440A異步串行口簡介
4.11 SPI、IIC、IIS、SD卡總線接口
4.11.1 SPI總線接口
4.11.2 IIC總線接口
4.11.3 IIS總線接口
4.11.4 SD卡
4.12 USB Host/Device控制器
思考與習(xí)題
第5章 嵌入式操作系統(tǒng)
5.1 操作系統(tǒng)簡介
5.1.1 操作系統(tǒng)
5.1.2 嵌入式操作系統(tǒng)
5.2 C/OS-II簡介
5.3 VxWorks簡介
5.4 WinCE簡介
5.5 Linux簡介
5.5.1 Linux簡介
5.5.2 Linux特點
5.5.3 嵌入式Linux
5.5.4 Linux內(nèi)核版本與發(fā)行版
5.5.5 Linux進(jìn)程管理
5.5.6 存儲管理
5.5.7 文件系統(tǒng)
5.5.8 設(shè)備管理
5.5.9 Linux內(nèi)核模塊
5.5.10 Linux配置文件
5.5.11 Linux啟動流程簡介
5.6 其他嵌入式操作系統(tǒng)
5.6.1 其他國外常用嵌入式操作系統(tǒng)
5.6.2 其他國內(nèi)常用的嵌入式操作系統(tǒng)
思考與習(xí)題
第6章 嵌入式Linux應(yīng)用開發(fā)
6.1 Linux安裝
6.1.1 安裝vmware
6.1.2 創(chuàng)建虛擬機
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 用戶管理命令
6.4 minicom的使用
6.4.1 minicom的安裝
6.4.2 minicom的設(shè)置
6.4.3 minicom的使用
6.5 vi程序的使用
6.5.1 啟動vi
6.5.2 常用vi命令
6.6 gcc程序的使用
6.6.1 gcc簡介
6.6.2 gcc編譯程序的流程
6.6.3 gcc選項
6.7 gdb程序的使用
6.7.1 gdb簡介
6.7.2 gdb的調(diào)試程序流程
6.7.3 gdb命令
6.8 makefile簡介
6.8.1 makefile簡介
6.8.2 makefile的規(guī)則
6.8.3 makefile文件的命名
6.8.4 makefile的組成
6.8.5 簡單的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)程間通信之信號
6.9.6 進(jìn)程間通信之信號量
6.9.7 進(jìn)程間通信之消息隊列
6.9.8 進(jìn)程間通信之共享內(nèi)存
6.9.9 原子操作
6.9.10 線程
6.9.11 網(wǎng)絡(luò)編程基礎(chǔ)
6.9.12 Linux中斷
思考與習(xí)題
第7章 嵌入式Linux操作系統(tǒng)的移植
7.1 Bootloader
7.1.1 Bootloader簡介
7.1.2 常見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簡介
8.1.1 TinyOS概述
8.1.2 TinyOS的特點
8.1.3 TinyOS開發(fā)平臺
8.1.4 TinyOS開發(fā)案例
8.1.5 TinyOS的基本概念
8.2 安裝TinyOS
8.3 nesC簡介
8.3.1 nesC概述
8.3.2 nesC基本概念
8.3.3 一個簡單的nesC編程示例
8.3.4 TOSSIM仿真
8.4 TinyOS內(nèi)部機制簡介
8.4.1 TinyOS程序運行機制分析
8.4.2 TinyOS的調(diào)度機制
8.4.3 TinyOS的通信模型
8.4.4 TinyOS的能量管理
思考與習(xí)題
參考文獻(xiàn)

章節(jié)摘錄

版權(quán)頁:   插圖:   3.6.1 ATPCS概述 ATPCS(ARM—Thumb Produce Call Standard)是ARM程序和Thumb程序中子程序調(diào)用的基本規(guī)則,目的是為了使單獨編譯的C語言程序和匯編程序之間能夠相互調(diào)用。這些基本規(guī)則包括子程序調(diào)用過程中寄存器的使用規(guī)則、數(shù)據(jù)棧的使用規(guī)則和參數(shù)的傳遞規(guī)則。 1.寄存器的使用規(guī)則(見表34) ①子程序間通過寄存器R0~R3來傳遞參數(shù)。被調(diào)用的子程序在返回前無須恢復(fù)寄存器R0~R3的內(nèi)容。 ②在子程序中,使用寄存器R4~R11來保存局部變量。這時,寄存器R4~R11可以記為v1~v8。如果在子程序中使用了寄存器v1~v8中的某些寄存器,則子程序進(jìn)入時必須保存這些寄存器的值,在返回前必須恢復(fù)這些寄存器的值。在Thumb程序中,通常只能使用寄存器R4~R7來保存局部變量。另外R9、R10和R11還有一個特殊作用,分別記為靜態(tài)基址寄存器SB、數(shù)據(jù)棧限制指針SL和楨指針FP。 ③寄存器R12用做過程調(diào)用中間臨時寄存器IP。寄存器R13用做堆棧指針SP。在子程序中寄存器R13不能用做其他用途。寄存器SP在進(jìn)入子程序時的值和退出子程序的值必須相等。寄存器R14稱為鏈接寄存器LR,它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14則可以用做其他用途。寄存器R15為程序計數(shù)器PC,不能用做其他用途。 ④只有寄存器R0~R7、SP、LR和PC可以在Thumb狀態(tài)下使用,其中R7常常作為Thumb狀態(tài)的工作寄存器,記為WR。 2.數(shù)據(jù)棧使用規(guī)則 棧指針通??梢灾赶虿煌奈恢谩.?dāng)棧指針指向棧頂元素(即最后一個入棧的數(shù)據(jù)元素)時,稱為FULL棧。當(dāng)棧指針指向與棧頂元素相鄰的一個元素時,稱為Empty棧。數(shù)據(jù)棧的增長方向也可以不同。當(dāng)數(shù)據(jù)棧向內(nèi)存減小的地址方向增長時,稱為Descending棧,當(dāng)數(shù)據(jù)棧向著內(nèi)存地址增加的方向增長時,稱為Ascending棧。綜合這兩種特點可以由以下4種數(shù)據(jù)棧:FD、ED、FA、EA。ATPCS規(guī)定數(shù)據(jù)棧為FD類型,并對數(shù)據(jù)棧的操作是8字節(jié)對齊的,下面是一個數(shù)據(jù)棧的示例及相關(guān)的名詞。 數(shù)據(jù)棧棧指針(Stack Pointer):指向最后一個寫入棧的數(shù)據(jù)的內(nèi)存地址。 數(shù)據(jù)棧的基地址(Stack Base):是指數(shù)據(jù)棧的最高地址。由于ATPCS中的數(shù)據(jù)棧是FD類型的,實際上數(shù)據(jù)棧中最早入棧數(shù)據(jù)占據(jù)的內(nèi)存單元是基地址的下一個內(nèi)存單元。 數(shù)據(jù)棧界限(Stack Limit):是指數(shù)據(jù)棧中可以使用的最低的內(nèi)存單元地址。 已占用的數(shù)據(jù)棧(Used Stack):是指數(shù)據(jù)棧的基地址和數(shù)據(jù)棧棧指針之間的區(qū)域。 其中包括數(shù)據(jù)棧棧指針對應(yīng)的內(nèi)存單元。 數(shù)據(jù)棧中的數(shù)據(jù)幀(Stack Frames):是指在數(shù)據(jù)棧中,為子程序分配的用來保存寄存器和局部變量的區(qū)域。 異常中斷的處理程序可以使用被中斷程序的數(shù)據(jù)棧,這時用戶要保證中斷的程序數(shù)據(jù)棧足夠大。使用ADS編譯器產(chǎn)生的目標(biāo)代碼中包含了DRFAT2格式的數(shù)據(jù)幀。在調(diào)試過程中,調(diào)試器可以使用這些數(shù)據(jù)幀來查看數(shù)據(jù)棧中的相關(guān)信息。而對于匯編語言來說,用戶必須使用FRAME偽操作來描述數(shù)據(jù)棧中的數(shù)據(jù)幀。ARM匯編器根據(jù)這些偽操作在目標(biāo)文件中產(chǎn)生相應(yīng)的DRFAT2格式的數(shù)據(jù)幀。

編輯推薦

《國家級特色專業(yè)(物聯(lián)網(wǎng)工程)規(guī)劃教材:物聯(lián)網(wǎng)與嵌入式系統(tǒng)開發(fā)》可作為普通高等學(xué)校物聯(lián)網(wǎng)工程及其相關(guān)專業(yè)的教材,也可供從事物聯(lián)網(wǎng)及其相關(guān)專業(yè)的人士閱讀。

圖書封面

評論、評分、閱讀與下載


    物聯(lián)網(wǎng)與嵌入式系統(tǒng)開發(fā) PDF格式下載


用戶評論 (總計2條)

 
 

  •   很不合理,還沒有看就讓寫評論
  •   講解ARM的,可以拿來參考!
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7