出版時間:2011-1 出版社:王志軍、趙建業(yè)、段曉輝、 楊延軍 北京大學(xué)出版社 (2011-01出版) 作者:楊延軍 編 頁數(shù):362
內(nèi)容概要
《嵌入式系統(tǒng)開發(fā)原理與實驗》是北京大學(xué)電子信息科學(xué)基礎(chǔ)實驗中心《電子信息科學(xué)基礎(chǔ)實驗課程叢書》之一,在北京大學(xué)電子信息科學(xué)基礎(chǔ)實驗課程體系中屬于研究創(chuàng)新層次。全書共分為八章,每章都包括背景知識介紹和實驗兩個部分,內(nèi)容涉及從底層的匯編語言設(shè)計到高層的圖形界面程序設(shè)計,基本涵蓋了嵌入式LinllX軟件開發(fā)的主要方面?! 肚度胧较到y(tǒng)開發(fā)原理與實驗》以GNU/Linux操作系統(tǒng)作為實驗平臺,嵌入式開發(fā)板采用最流行的ARM處理器,對于沒有開發(fā)板的讀者還可以使用附錄中介紹的QEMU完成《嵌入式系統(tǒng)開發(fā)原理與實驗》的大部分實驗內(nèi)容?!肚度胧较到y(tǒng)開發(fā)原理與實驗》可以作為高等院校電子信息類本科生嵌入式相關(guān)課程的教材,也可以作為教師和工程技術(shù)人員的參考書。
書籍目錄
第一章 嵌入式系統(tǒng)概述1.1 嵌入式系統(tǒng)的定義1.2 嵌入式處理器簡介1.2.1 MIPS1.2.2 PowerPC1.2.3 ARM1.2.4 DSP系列1.2.5 SoPC1.3 嵌入式操作系統(tǒng)簡介1.3.1 WindowsCE1.3.2 VxWorks1.3.3 uC/OS1.3.4 Linux1.4 本書所使用的軟硬件環(huán)境1.4.1 實驗環(huán)境1.4.2 下載文件內(nèi)容1.5 實驗:安裝Linux操作系統(tǒng)第二章 Linux作為開發(fā)平臺2.1 Linux操作系統(tǒng)入門2.1.1 文件操作命令2.1.2 man命令2.1.3 vi命令2.1.4 bash相關(guān)命令與技巧2.1.5 進程和作業(yè)管理2.1.6 系統(tǒng)管理類命令2.1.7 其他命令2.2 GCC及GNU工具簡介2.2.1 gce用法簡介2.2.2 binutils簡介2.2.3 GNU工具應(yīng)用示例2.3 Makefile簡介2.3.1 Makefile基本語法2.3.2 Makefile中變量的用法2.3.3 Makefile中的函數(shù)2.4 交叉編譯原理2.4.1 交叉工具鏈的生成2.4.2 自動生成工具鏈2.5 boot loader簡介2.5.1 RedBoot簡介2.5.2 U-Boot簡介2.6 實驗:開發(fā)環(huán)境建立第三章 ARM體系結(jié)構(gòu)與指令系統(tǒng)3.1 ARM處理器概述3.2 ARM指令集結(jié)構(gòu)3.2.1 指令集設(shè)計3.2.2 RISC體系結(jié)構(gòu)3.2.3 ARM指令集結(jié)構(gòu)3.3 ARM流水線組織3.3.1 流水線技術(shù)3.3.2 ARM架構(gòu)的流水線設(shè)計3.4 ARM存儲器結(jié)構(gòu)3.4.1 存儲器層次3.4.2 Cache3.4.3 存儲器管理3.5 ARM寄存器組織3.5.1 ARM處理器模式3.5.2 ARM狀態(tài)下的寄存器3.5.3 Thumb狀態(tài)下的寄存器3.5.4 協(xié)處理器寄存器3.6 ARM I/O結(jié)構(gòu)3.6.1 AMBA總線3.6.2 存儲器和存儲器映像I/O3.6.3 中斷和直接存儲器存取3.7 ARM體系結(jié)構(gòu)版本及命名方法3.7.1 ARM體系結(jié)構(gòu)版本3.7.2 ARM體系的變種3.7.3 ARM/Thumb體系結(jié)構(gòu)版本的命名格式3.8 ARM處理器核3.8.1 ARM7系列3.8.2 ARM9系列3.8.3 ARM10系列3.8.4 Intel XScale3.9 ARM指令系統(tǒng)3.9.1 ARM指令概述3.9.2 ARM數(shù)據(jù)處理指令3.9.3 ARM Load/Store存儲器訪問指令3.9.4 ARM轉(zhuǎn)移指令3.9.5 ARM協(xié)處理器指令3.9.6 ARM信號處理指令3.9.7 ARM異常及中斷指令3.9.8 Thumb指令簡介3.10 ARM匯編語言程序設(shè)計3.10.1 ARM匯編中的語句格式3.10.2 ARM匯編中的指示符3.10.3 ARM匯編中的偽指令3.10.4 ARM匯編語言程序格式3.11 實驗:ARM匯編語言程序設(shè)計第四章 處理器與開發(fā)板4.1 AT91SAM9261芯片概述4.2 處理器內(nèi)存布局4.3 AT91SAM9261內(nèi)部啟動邏輯4.4 AT91SAM9261的集成外設(shè)4.4.1 時鐘發(fā)生器4.4.2 高級中斷控制器4.4.3 通用IO管腳4.4.4 通用串行口4.4.5 SPI總線4.4.6 I2C總線4.5 嵌入式開發(fā)板4.5.1 可編程模塊4.5.2 觸摸屏控制器4.5.3 TFT LCD接口4.6 實驗:控制片上外設(shè)第五章 嵌入式Linux基本原理5.1 操作系統(tǒng)概述5.1.1 操作系統(tǒng)的分類5.1.2 嵌入式操作系統(tǒng)的特點5.1.3 操作系統(tǒng)的基本概念5.1.4 嵌入式操作系統(tǒng)的其他關(guān)注點5.2 操作系統(tǒng)基本功能模塊5.2.1 內(nèi)存管理5.2.2 進程管理5.2.3 設(shè)備管理5.3 編譯Linux內(nèi)核5.3.1 Linux內(nèi)核代碼結(jié)構(gòu)5.3.2 內(nèi)核編譯步驟5.3.3 Linux內(nèi)核啟動流程5.4 Linux文件組織結(jié)構(gòu)簡介5.4.1 Linux文件目錄5.4.2 Linux文件系統(tǒng)的建立5.5 實驗:構(gòu)造嵌人式Linux環(huán)境第六章 Linux環(huán)境程序設(shè)計6.1 shell腳本編程6.1.1 腳本編程簡介6.1.2 shell腳本介紹6.2 Linux環(huán)境程序基礎(chǔ)6.2.1 文件處理6.2.2 進程相關(guān)6.2.3 信號6.3 LinHX下的串口編程6.4 Linux下的網(wǎng)絡(luò)編程6.4.1 網(wǎng)絡(luò)通信基本原理6.4.2 SOCket編程與相關(guān)數(shù)據(jù)結(jié)構(gòu)6.4.3 TCP網(wǎng)絡(luò)通信程序的流程6.4.4 同時操作多個文件描述符6.4.5 UDP編程6.5 程序調(diào)試原理6.5.1 程序的加載和運行6.5.2 設(shè)置程序的斷點和單步調(diào)試6.5.3 其他常用的命令6.5.4 遠程調(diào)試6.6 軟件版本控制6.6.1 Git簡介6.6.2 Git分支6.7 實驗:Linux平臺C編程第七章 Linux模塊化驅(qū)動程序原理7.1 Linux驅(qū)動編寫基礎(chǔ)7.1.1 最簡單的Linux驅(qū)動示例7.1.2 printk函數(shù)簡介7.2 內(nèi)核的編譯系統(tǒng)7.2.1 內(nèi)核的Makefile7.2.2 Kconfig文件7.3 字符設(shè)備驅(qū)動的編寫7.3.1 字符設(shè)備的注冊與注銷7.3.2 重要的數(shù)據(jù)結(jié)構(gòu)7.3.3 內(nèi)核數(shù)據(jù)和用戶數(shù)據(jù)的交換7.3.4 ioctl接口7.3.5 內(nèi)存資源的訪問7.3.6 互斥與信號量7.3.7 阻塞I/O的處理7.3.8 硬件中斷的處理7.3.9 計時與延時7.3.10 其他一些常用技術(shù)7.3.11 關(guān)鍵的內(nèi)核頭文件7.4 Linux設(shè)備驅(qū)動模型7.5 實驗:Linux驅(qū)動程序設(shè)計第八章 嵌入式Linux圖形編程8.1 常見的圖形編程工具8.2 Qt編程入門8.2.1 信號與槽8.Z.Z Qt版本的Hello World8.2.3 QWidget簡介8.2.4 使用Qt的圖形部件8.2.5 自定義Widget8.2.6 qmake的更多用法8.3 Qt編程的可視化輔助設(shè)計工具8.3.1 Qt Designer簡介8.3.2 ui文件的使用方法8.4 完全面向Qt編程8.4.1 簡單數(shù)據(jù)類型8.4.2 文件輸入/輸出8.4.3 網(wǎng)絡(luò)編程8.5 發(fā)布Qt程序8.5.1 Qt程序的國際化8.5.2 將數(shù)據(jù)嵌入程序8.6 Qt的嵌入式應(yīng)用8.6.1 交叉編譯Qt8.6.2 配置嵌入式Qt環(huán)境8.7 實驗:嵌入式圖形程序設(shè)計附錄A 使用QEMU完成實驗A.1 QEMU簡介A.2 flash操作的仿真A.3 使用網(wǎng)絡(luò)文件系統(tǒng)A.4 使用QEMU的虛擬硬件附錄B 使用OpenErobedded構(gòu)建文件系統(tǒng)B.1 OpenErobedded簡介B.2 配置和使用OpenErobedded參考文獻
章節(jié)摘錄
版權(quán)頁:插圖:嵌入式Linux的文件系統(tǒng)經(jīng)常由BusyBox構(gòu)建,它被非常形象地稱為嵌入式Linux系統(tǒng)中的“瑞士軍刀”,因為它將許多常用的UNIX命令和工具結(jié)合到了一個單獨的可執(zhí)行程序中。雖然與相應(yīng)的GNU工具比較起來,BusyBox所提供的功能和參數(shù)略少,但在比較小的系統(tǒng)(例如啟動盤)或者嵌入式系統(tǒng)中,已經(jīng)足夠了。BusyBox在設(shè)計上就充分考慮了硬件資源受限的特殊工作環(huán)境,它采用一種很巧妙的辦法減少自己的體積:所有的命令都通過“插件”的方式集中到一個可執(zhí)行文件中,在實際應(yīng)用過程中通過不同的符號鏈接來確定到底要執(zhí)行哪個操作。例如最終生成的可執(zhí)行文件為BusyBox,當我們?yōu)樗⒁粋€符號鏈接ls的時候,就可以通過執(zhí)行這個新命令實現(xiàn)列目錄的功能。采用單一執(zhí)行文件的方式最大限度地共享了程序代碼,甚至連文件頭、內(nèi)存中的程序控制塊等其他操作系統(tǒng)資源都共享了,對于資源比較緊張的系統(tǒng)來說,真是最合適不過了。在BLlsyBox的編譯過程中,可以非常方便地加減它的“插件”,最后的符號鏈接也可以由編譯系統(tǒng)自動生成,下面我們就來一步步的用BusyBox從無到有的建立一個全新的Linux文件系統(tǒng)。
編輯推薦
《嵌入式系統(tǒng)開發(fā)原理與實驗》:電子信息科學(xué)基礎(chǔ)實驗課程叢書
圖書封面
評論、評分、閱讀與下載
嵌入式系統(tǒng)開發(fā)原理與實驗 PDF格式下載