Xilinx Zynq SoC與嵌入式Linux設計實戰(zhàn)指南
定 價:59 元
叢書名:EDA工程技術叢書
- 作者:陸啟帥,陸彥婷,王地 著
- 出版時間:2014/11/1
- ISBN:9787302373445
- 出 版 社:清華大學出版社
- 中圖法分類:TP332.1
- 頁碼:328
- 紙張:膠版紙
- 版次:1
- 開本:16K
《Xilinx Zynq SoC與嵌入式Linux設計實戰(zhàn)指南:兼容ARM Cortex-A9的設計方法》系統(tǒng)介紹了Xilinx Zynq7000 SoC與嵌入式Linux設計方法與實踐。全書以Zynq PS(ARM CortexA9)為核心,以Zynq PL(FPGA)為可編程外設,詳細介紹了從底層硬件系統(tǒng)到上層操作系統(tǒng)及GUI設計原理和方法,詳細講解了底層外設接口控制程序、嵌入式Linux操作系統(tǒng)移植以及應用程序。全書共分14章,內(nèi)容包括Zynq初體驗、Zynq集成開發(fā)環(huán)境、Zynq啟動流程及鏡像制作、GPIO原理及實現(xiàn)、中斷原理及實現(xiàn)、定時器原理及實現(xiàn)、通用異步收發(fā)器原理及實現(xiàn)、OLED原理及實現(xiàn)、Zynq雙核運行原理及實現(xiàn)、嵌入式Linux系統(tǒng)構(gòu)建、嵌入式Linux系統(tǒng)實現(xiàn)、uboot原理及移植、Linux內(nèi)核原理及移植和嵌入式網(wǎng)絡視頻設計及實現(xiàn)。
《Xilinx Zynq SoC與嵌入式Linux設計實戰(zhàn)指南:兼容ARM Cortex-A9的設計方法》由淺入深,從最簡單的流水燈、Hello World開始,使讀者可以完成裸機控制程序設計、嵌入式Linux環(huán)境搭建、嵌入式操作系統(tǒng)移植以及應用程序設計等。
《Xilinx Zynq SoC與嵌入式Linux設計實戰(zhàn)指南:兼容ARM Cortex-A9的設計方法》理論與實踐相結(jié)合,可以作為信息類專業(yè)大學本科高年級和研究生的教學參考用書,也可作為從事嵌入式系統(tǒng)設計的工程技術人員參考用書。
我們生活在一個快速連接的世界中——全球有超過60億臺移動計算設備相互連接,并且每天都持續(xù)增加約100萬臺移動計算設備。預計到2020年,全球移動計算設備總數(shù)將達到300億臺。隨著物聯(lián)網(wǎng)(IoT)以及萬聯(lián)網(wǎng)(IoE)的發(fā)展,海量大數(shù)據(jù)的存儲、傳輸、處理、挖掘技術出現(xiàn)了極大的挑戰(zhàn)。從處理響應速度來看,計算的處理響應速度從文字時代的秒級,到多媒體時代的百毫秒級、視頻時代的十毫秒級,會迅速推進到5G時代的1毫秒級。對海量數(shù)據(jù)在1毫秒內(nèi)完成處理,將是未來數(shù)十年擺在電子信息系統(tǒng)設計工程師面前的巨大難題。
隨著摩爾定律走向深納米時代,在20nm以下的工藝節(jié)點,每個節(jié)點的性價比提高幅度會比上一代逐漸減少,而前期的一次性工程費用(NRE)投入巨大,服務客戶數(shù)量稀少,使得專用集成電路(ASIC)及專用標準集成電路(ASSP)在商業(yè)模式上步入絕境,贏利的公司數(shù)量銳減直至最后消亡,尚能存活的將是可編程器件。
面對海量的計算任務,多核并行曾是解決方案之一,但受制于算法可并行部分的局限,更多的核并不能帶來更高的效率,加速效能也逐漸走到了盡頭。此外,受單顆芯片發(fā)熱量密度限制,即使芯片上集成的晶體管越來越多,但可同時運行的晶體管數(shù)目卻趨于恒定,多余的晶體管將淪為暗硅 (Dark Silicon)。 因此,設計者不得不將目光轉(zhuǎn)向馮·諾依曼架構(gòu)之外的計算構(gòu)架,例如領域定制化計算(Domain Specific Computing),它可在保持靈活性的同時,發(fā)揮每一個晶體管的計算能力,當然這也離不開可編程器件技術的長足發(fā)展。
在系統(tǒng)級別,大數(shù)據(jù)與軟件定義一切,虛擬化一切的趨勢,使得系統(tǒng)構(gòu)架工程師不得不尋求更靈活、更智慧、更快速、更綠色的解決方案。而這些解決方案的核心往往與軟件、硬件及I/O均可編程的芯片——賽靈思公司的All Programmable芯片相關。
在教育領域,除了需要培養(yǎng)能夠應對未來數(shù)十年技術挑戰(zhàn)的電子信息系統(tǒng)工程師之外,教學本身也充滿了變革和機遇。隨著大型開放式網(wǎng)絡課程(MOOC)的興起,在統(tǒng)一平臺下通過互聯(lián)網(wǎng),以翻轉(zhuǎn)課堂的方式,打破業(yè)界與教育界的壁壘,完成軟件與硬件、理論與實驗、年級與院系的全面貫通,將是很多電子信息類學科教育工作者的更高追求。
賽靈思大學計劃將不遺余力地幫助教育工作者應對這些變革,與清華出版社合作將All Programmable全面可編程技術系統(tǒng)地引入到新型知識傳播體系中去,培養(yǎng)能夠應對下一代電子系統(tǒng)設計挑戰(zhàn)的卓越工程師,為實現(xiàn)將“中國制造”變成“中國智造”的夢想,提供充足的智力和人才保障。
謝凱年
Xilinx大學計劃大中華區(qū)經(jīng)理
第一篇Zynq開發(fā)基礎
第1章Zynq初體驗
1.1PL部分設計實現(xiàn)
1.1.1創(chuàng)建工程
1.1.2設計輸入
1.1.3設計綜合
1.1.4設計實現(xiàn)
1.1.5下載執(zhí)行
1.2PS部分設計實現(xiàn)
1.2.1建立Zynq硬件系統(tǒng)
1.2.2在PS中設計Hello World程序
1.2.3下載執(zhí)行程序
第2章Zynq集成開發(fā)環(huán)境
2.1Zynq硬件平臺
2.1.1Zynq XC7Z020芯片硬件資源
2.1.2ZedBoard硬件資源
2.2Zynq軟件平臺
2.2.1嵌入式硬件開發(fā)工具XPS
2.2.2嵌入式軟件開發(fā)工具SDK
第3章Zynq啟動流程及鏡像制作
3.1BootROM
3.2Zynq器件的啟動配置
3.3使用BootGen
3.3.1BootGen介紹
3.3.2BIF文件語法
3.3.3BootGen實例
第二篇Zynq底層硬件設計
第4章GPIO原理及設計實現(xiàn)
4.1GPIO原理
4.2Zynq XC7Z020 GPIO寄存器
4.2.1DATA_RO寄存器
4.2.2DATA寄存器
4.2.3MASK_DATA_LSW/ MSW寄存器
4.2.4DIRM寄存器
4.2.5OEN寄存器
4.2.6GPIO slcr寄存器
4.3GPIO設計實現(xiàn)
4.3.1匯編語言實現(xiàn)
4.3.2C語言實現(xiàn)
第5章中斷原理及實現(xiàn)
5.1中斷原理
5.1.1中斷類型
5.1.2中斷向量表
5.1.3中斷處理過程
5.2Zynq中斷體系結(jié)構(gòu)
5.2.1私有中斷
5.2.2軟件中斷
5.2.3共享外設中斷
5.2.4中斷寄存器
5.3中斷程序設計實現(xiàn)
5.3.1中斷向量表和解析程序
5.3.2中斷源配置
5.3.3ICD寄存器初始化
5.3.4ICC寄存器組初始化
5.3.5ICD寄存器組配置
5.3.6ARM程序狀態(tài)寄存器(CPSR)配置
5.3.7中斷服務程序設計
5.4設計驗證
第6章定時器原理及實現(xiàn)
6.1Zynq定時器概述
6.2私有定時器
6.2.1私有定時器寄存器
6.2.2私有定時器設計實現(xiàn)
6.3私有看門狗定時器
6.3.1私有看門狗定時器寄存器
6.3.2私有看門狗定時器設計實現(xiàn)
6.4全局定時器
6.4.1全局定時器寄存器
6.4.2全局定時器設計實現(xiàn)
第7章通用異步收發(fā)器原理及實現(xiàn)
7.1UART概述
7.2UART寄存器
7.3UART設計實現(xiàn)
7.3.1UART引腳設置
7.3.2UART初始化
7.3.3UART字符接收和發(fā)送函數(shù)實現(xiàn)
7.3.4UART主函數(shù)實現(xiàn)
7.3.5UART具體實現(xiàn)步驟
第8章OLED原理及實現(xiàn)
8.1OLED概述
8.2建立OLED硬件系統(tǒng)
8.3生成自定義OLED IP模板
8.4修改MY_OLED IP設計模板
8.5OLED驅(qū)動程序設計實現(xiàn)
8.5.1OLED初始化
8.5.2寫數(shù)據(jù)相關函數(shù)
8.5.3寫顯存相關函數(shù)實現(xiàn)
8.6設計驗證
第9章Zynq雙核運行原理及實現(xiàn)
9.1雙核運行原理
9.2硬件系統(tǒng)設計
9.3軟件設計
9.3.1FSBL
9.3.2CPU0應用程序設計
9.3.3CPU1應用程序設計
9.4設計驗證
第三篇嵌入式Linux設計
第10章嵌入式Linux系統(tǒng)構(gòu)建
10.1Ubuntu 13.10設置
10.1.1root登錄
10.1.2安裝FTP服務器和SSH服務器
10.2PuTTY和FileZilla工具使用
10.2.1PuTTY工具使用
10.2.2FileZilla工具使用
10.3交叉編譯器安裝
10.3.1Xilinx ARM交叉編譯器下載
10.3.2Xilinx ARM交叉編譯器安裝
10.4嵌入式Qt環(huán)境構(gòu)建
10.4.1主機環(huán)境Qt構(gòu)建
10.4.2目標機Qt環(huán)境構(gòu)建
第11章嵌入式Linux系統(tǒng)實現(xiàn)
11.1硬件平臺構(gòu)建
11.1.1自定義GPIO IP核設計
11.1.2添加my_led IP核端口
11.2my_led IP核邏輯設計
11.2.1設置引腳方向信息
11.2.2my_led IP核端口和連接設計
11.2.3my_led IP核用戶邏輯設計
11.2.4my_led IP核引腳約束設計
11.2.5my_led IP核硬件比特流生成
11.3啟動文件BOOT.BIN設計
11.3.1第一階段啟動代碼設計
11.3.2uboot編譯
11.3.3生成BOOT.BIN文件
11.4Linux內(nèi)核編譯
11.4.1內(nèi)核簡介
11.4.2Xilinx Linux內(nèi)核的獲取
11.4.3Xilinx Linux內(nèi)核編譯
11.5系統(tǒng)測試
11.6添加my_led設備
11.6.1my_led驅(qū)動程序設計
11.6.2應用程序調(diào)用驅(qū)動程序測試
第12章uboot原理及移植
12.1uboot版本及源碼結(jié)構(gòu)
12.1.1uboot版本
12.1.2uboot源碼結(jié)構(gòu)
12.2uboot配置和編譯分析
12.2.1uboot配置分析
12.2.2頂層Makefile分析
12.3uboot運行過程分析
12.3.1start.S文件分析
12.3.2lowlevel_init.S分析
12.3.3board_init_f分析
12.3.4board_init_r分析
12.3.5main_loop分析
12.4uboot移植
12.4.1刪除無關文件
12.4.2修改因刪除無關源碼造成的錯誤
12.4.3添加修改ZedBoard移植代碼
12.4.4uboot測試
第13章Linux內(nèi)核原理及移植
13.1Linux內(nèi)核版本及源碼結(jié)構(gòu)
13.1.1Linux內(nèi)核版本
13.1.2Linux內(nèi)核源碼結(jié)構(gòu)
13.2Linux內(nèi)核系統(tǒng)配置
13.2.1Makefile分析
13.2.2Makefile中的變量
13.2.3子目錄Makefile
13.2.4內(nèi)核配置文件
13.3Linux內(nèi)核啟動分析
13.3.1內(nèi)核啟動入口
13.3.2zImage自解壓
13.3.3第一階段啟動代碼分析
13.3.4第二階段啟動代碼分析
13.4Linux內(nèi)核移植
13.4.1添加配置文件
13.4.2添加和修改ZedBoard相關文件
13.4.3添加驅(qū)動文件和頭文件
13.4.4Linux內(nèi)核測試
第14章網(wǎng)絡視頻設計及實現(xiàn)
14.1總體設計
14.2V4L2關鍵技術
14.2.1V4L2基本原理
14.2.2相關數(shù)據(jù)結(jié)構(gòu)和函數(shù)
14.2.3V4L2工作流程
14.3TCP及Qt下的網(wǎng)絡編程
14.3.1服務器端程序設計
14.3.2客戶端程序設計
14.4設計驗證
14.4.1主機設計驗證
14.4.2目標機設計驗證