注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)SoC FPGA 嵌入式設(shè)計和開發(fā)教程

SoC FPGA 嵌入式設(shè)計和開發(fā)教程

SoC FPGA 嵌入式設(shè)計和開發(fā)教程

定 價:¥69.00

作 者: 梅雪松,宋士全,陳云 著
出版社: 北京航空航天大學(xué)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787512422391 出版時間: 2019-03-01 包裝: 平裝
開本: 16開 頁數(shù): 字數(shù):  

內(nèi)容簡介

  本書以Intel Cyclone v SoC FPGA系列器件為例,介紹了SoC FPGA 器件的架構(gòu)特點、常用電路設(shè)計以及軟硬件開發(fā)流程和開發(fā)技巧。內(nèi)容編排按照開發(fā)一個基于SoC FPGA 的應(yīng)用系統(tǒng)所需掌握的基本的知識路線展開,從基本的Linux系統(tǒng)操作到分析一個基礎(chǔ)的應(yīng)用系統(tǒng)框架,然后基于該應(yīng)用系統(tǒng)框架,詳細講解應(yīng)用系統(tǒng)的構(gòu)建、BSP文件的生成、啟動引導(dǎo)文件的更新、Ubuntu虛擬機安裝配置、Linux內(nèi)核配置與編譯。接著介紹如何在嵌入式Linux系統(tǒng)環(huán)境下,使用虛擬地址映射的方式編寫相應(yīng)的應(yīng)用程序來實現(xiàn)該應(yīng)用系統(tǒng)中各個功能IP的編程控制和調(diào)試。最后以兩個實際的例子展示如何通過HPS和FPGA的片上通信橋?qū)崿F(xiàn)軟硬件聯(lián)合開發(fā)的過程,包括FPGA側(cè)邏輯開發(fā), IP總線封裝,Linux驅(qū)動程序的編寫編譯,Linux應(yīng)用程序的編寫與運行等。本書既可作為工程類應(yīng)用、電子信息類專業(yè)本科生以及相關(guān)專業(yè)??粕那度胧较到y(tǒng)基礎(chǔ)類課程的教材,也可作為SoC FPGA自學(xué)人員以及從事SoC FPGA開發(fā)的工程技術(shù)人員的培訓(xùn)教材和參考用書。

作者簡介

  梅雪松,網(wǎng)名“小梅哥”,擁有多年電子設(shè)計經(jīng)驗,擅長知識的總結(jié)和傳播,有《小梅哥和你一起深入學(xué)習(xí)FPGA》、《小梅哥FPGA學(xué)習(xí)筆記》兩個系列網(wǎng)絡(luò)博文;并推出了手把手式視頻教程《FPGA設(shè)計思想與驗證方法視頻教程》,該教程在各大視頻點擊平臺備受好評,網(wǎng)友稱其為學(xué)習(xí)FPGA基礎(chǔ)與提高教學(xué)視頻的S選。同時,開設(shè)FPGA實地培訓(xùn)班,進行網(wǎng)絡(luò)和實地FPGA培訓(xùn),并多次進入高校進行SoC FPGA開發(fā)技術(shù)的培訓(xùn)。培訓(xùn)課程以其系統(tǒng)的知識講解和生動的實例分析,得到了學(xué)員的一致肯定。

圖書目錄

第1章 SoC FPGA軟硬件系統(tǒng)開發(fā)概述 … 1
1.1 Intel SoC FPGA系列 1
1.1.1 Cyclone Ⅴ SoC FPGA … 2
1.1.2 Arria Ⅴ SoC FPGA 2
1.1.3 Arria 10 SoC FPGA 2
1.1.4 Stratix 10 SoC FPGA 3
1.1.5 SoC FPGA應(yīng)用領(lǐng)域與前景 3
1.2 Intel Cyclone Ⅴ SoC FPGA介紹 … 4
1.2.1 什么是SoC FPGA … 4
1.2.2 SOPC … 4
1.2.3 SoC FPGA與SOPC之間的差異 5
1.2.4 SoC FPGA架構(gòu)的優(yōu)勢 … 6
1.3 Cyclone Ⅴ SoC FPGA器件硬件設(shè)計概述 9
1.3.1 FPGA I/O和時鐘 … 10
1.3.2 SoC FPGA JTAG電路設(shè)計 … 12
1.4 AC501-SoC開發(fā)板介紹 13
1.4.1 布局及組件 … 13
1.4.2 輕觸按鍵 14
1.4.3 用戶LED 15
1.4.4 時鐘輸入 16
1.4.5 GPIO接口 … 17
1.4.6 DDR3SDRAM 18
1.4.7 通用顯示擴展接口… 19
1.4.8 USB轉(zhuǎn) UART 21
1.4.9 以太網(wǎng)收發(fā)器 21
1.5 本章小結(jié) 23
第2章 SoC FPGA開發(fā)板的使用 … 24
2.1 安裝SoC FPGA開發(fā)工具 24
2.2 SoC FPGA的配置數(shù)據(jù)燒寫與固化 24
2.2.1 SoC FPGA啟動配置方式介紹 24
2.2.2 sof文件的燒寫方式 26
2.2.3 Jic文件的生成和燒寫 … 28
2.3 在SoC FPGA上運行Linux操作系統(tǒng) … 32
2.3.1 SoC FPGA中的 HPS啟動流程介紹 32
2.3.2 HPS啟動方式介紹 33
2.3.3 制作啟動鏡像SD卡 34
2.3.4 準備硬件板卡 35
2.3.5 開機測試 39
2.4 開發(fā)板Linux系統(tǒng)常用操作 … 40
2.4.1 查看目錄 40
2.4.2 設(shè)置和修改用戶密碼 40
2.4.3 查看和編輯文件 … 41
2.4.4 設(shè)置IP地址 … 43
2.4.5 掛載SD卡的FAT32分區(qū) 45
2.4.6 掛載 U盤 46
2.4.7 文件操作 47
2.4.8 目錄操作 48
2.4.9 停止某個進程 49
2.4.10 重啟和關(guān)機 … 50
2.5 本章小結(jié) 50
第3章 SoC FPGA開發(fā)概述 … 51
3.1 SoC FPGA開發(fā)流程 … 51
3.1.1 硬件開發(fā) 51
3.1.2 軟件開發(fā) 53
3.2 AC501-SoC FPGA開發(fā)板的黃金參考設(shè)計說明 53
3.2.1 GHRD … 53
3.2.2 打開和查看GHRD 54
3.2.3 組件參數(shù)配置詳解… 57
3.3 本章小結(jié) 62
第4章 手把手修改GHRD系統(tǒng) 63
4.1 修改GHRD工程 … 63
4.1.1 打開GHRD工程 … 63
4.1.2 添加UART IP 64
4.1.3 關(guān)于 HPS與FPGA數(shù)據(jù)交互… 64
4.1.4 連接UART IP信號端口 65
4.1.5 分配組件基地址 … 67
4.1.6 生成 Qsys系統(tǒng)的 HDL文件 … 68
4.1.7 添加uart_1的端口到 Quartus工程中 69
4.1.8 分配FPGA引腳 … 71
4.1.9 生成配置數(shù)據(jù)二進制文件 72
4.2 制作Preloader Image … 72
4.2.1 打開SoC EDS工具 73
4.2.2 生成bsp文件 74
4.2.3 編譯Preloader和 U-Boot 77
4.2.4 更新Preloader和 U-Boot 79
4.2.5 Win 10下更新失敗問題… 80
4.2.6 使用新的 U-Boot啟動SoC … 81
4.3 制作設(shè)備樹 … 82
4.3.1 設(shè)備樹制作流程 … 82
4.3.2 準備所需文件 82
4.3.3 生成.dts文件 83
4.3.4 生成.dtb文件 84
4.4 運行修改后的工程 85
4.5 本章小結(jié) 87
第5章 使用DS-5編寫和調(diào)試SoC的Linux應(yīng)用程序 88
5.1 啟動DS-5 …88
5.2 創(chuàng)建C工程 … 91
5.3 編譯工程 94
5.4 建立SSH遠程連接 95
5.4.1 創(chuàng)建遠程連接 95
5.4.2 復(fù)制文件到目標(biāo)板 101
5.4.3 運行應(yīng)用程序 102
5.5 遠程調(diào)試 … 103
5.5.1 GDB設(shè)置 … 103
5.5.2 GDB連接和調(diào)試 … 106
5.6 使用 WinSCP實現(xiàn)多系統(tǒng)傳輸文件 108
5.6.1 為什么要使用 WinSCP 108
5.6.2 安裝 WinSCP 109
5.6.3 建立遠程主機連接 109
5.6.4 新建遠程連接 112
5.6.5 調(diào)用PuTTY終端 112
5.7 本章小結(jié) … 113
第6章 基于虛擬地址映射的Linux硬件編程 114
6.1 什么是虛擬地址映射 … 114
6.2 虛擬地址映射的實現(xiàn) … 115
6.3 基于虛擬地址映射的PIO編程應(yīng)用 117
6.3.1 PIO外設(shè)的虛擬地址映射 117
6.3.2 在DS-5中建立PIO應(yīng)用工程 118
6.3.3 添加和包含 HPS庫文件 119
6.3.4 添加FPGA側(cè)外設(shè)硬件信息… 121
6.3.5 PIO IP核介紹 124
6.3.6 PIO核寄存器映射 125
6.3.7 PIO IP核應(yīng)用實例 128
6.3.8 合理的程序退出機制 … 131
6.3.9 關(guān)于按鍵消抖 133
6.4 基于虛擬地址映射的 UART編程應(yīng)用… 134
6.4.1 UART核介紹 134
6.4.2 UART寄存器映射 134
6.4.3 UART IP核應(yīng)用實例 … 136
6.4.4 UART IP核板級調(diào)試 … 144
6.4.5 小 結(jié) 145
6.5 基于虛擬地址映射的I2C編程應(yīng)用 145
6.5.1 OpenCores I2C IP簡介… 146
6.5.2 OpenCores I2C IP寄存器映射 146
6.5.3 I2C IP核應(yīng)用實例 149
6.5.4 小 結(jié) 161
6.6 本章小結(jié) … 161
第7章 基于Linux應(yīng)用程序的HPS配置
FPGA … 162
7.1 制作 Quartus工程 163
7.2 生成rbf格式配置數(shù)據(jù) 163
7.3 編譯Linux配置FPGA應(yīng)用程序… 165
7.4 在系統(tǒng)重配置FPGA實驗 … 166
7.5 本章小結(jié) … 168
第8章 編譯嵌入式Linux系統(tǒng)內(nèi)核 169
8.1 安裝 VMware … 170
8.2 安裝 Ubuntu系統(tǒng) 171
8.2.1 使用現(xiàn)成的 Ubuntu系統(tǒng)鏡像 171
8.2.2 安裝全新的 Ubuntu系統(tǒng) 175
8.3 下載Linux系統(tǒng)源碼 … 182
8.4 設(shè)置交叉編譯環(huán)境 185
8.5 配置和編譯內(nèi)核 … 189
8.5.1 快速配置內(nèi)核 189
8.5.2 保存內(nèi)核配置文件 195
8.5.3 編譯內(nèi)核 195
8.5.4 使用內(nèi)核啟動開發(fā)板 … 197
8.6 本章小結(jié) … 199
第9章 Linux設(shè)備樹的原理與應(yīng)用實例 200
9.1 什么是設(shè)備樹 200
9.2 設(shè)備樹基本格式 … 201
9.3 設(shè)備樹加載設(shè)備驅(qū)動原理 … 206
9.4 編寫I2C控制器設(shè)備節(jié)點 … 208
9.5 加載 OC_I2C驅(qū)動 211
9.6 使用RTC … 212
9.7 使用EEPROM … 216
9.8 編寫SPI控制器設(shè)備節(jié)點 … 217
9.9 本章小結(jié) … 219
第10章 基于Linux標(biāo)準文件I/O 的設(shè)備讀/寫 … 220
10.1 什么是文件I/O 220
10.2 基于文件I/O操作的一般方法 … 220
10.2.1 文件描述符 220
10.2.2 打開設(shè)備(open)… 221
10.2.3 向設(shè)備寫入數(shù)據(jù)(write) 221
10.2.4 讀取設(shè)備數(shù)據(jù)(read)… 222
10.2.5 雜項操作(ioctl)… 222
10.2.6 關(guān)閉設(shè)備(close)… 223
10.2.7 其他操作 … 223
10.3 使用文件I/O實現(xiàn)I2C編程 223
10.4 本章小結(jié) … 226
第11章 FPGA與HPS高速數(shù)據(jù)交互應(yīng)用 … 227
11.1 FPGA與 HPS通信介紹 … 227
11.1.1 H2F_LW_AXI_Master橋 … 229
11.1.2 H2F_AXI_Master橋 … 229
11.1.3 F2H_AXI_Slave橋 230
11.2 AXI與 Avalon-MM 總線的互聯(lián)… 230
11.3 Avalon-MM 總線 230
11.4 Avalon-MM Slave接口 232
11.5 基本Avalon-MM Slave IP設(shè)計框架 … 234
11.5.1 端口定義 … 234
11.5.2 寄存器和線網(wǎng)定義 235
11.5.3 Avalon總線對寄存器的讀/寫 235
11.5.4 用戶邏輯使用寄存器 … 236
11.6 PWM 控制器設(shè)計 237
11.6.1 PWM IP核端口設(shè)計 … 238
11.6.2 PWM IP核寄存器定義 239
11.6.3 讀/寫PWM 寄存器 … 239
11.6.4 Platform Designer中封裝PWM IP 241
11.7 Avalon-MM Master接口 … 255
11.7.1 常見的通用Avalon-MM Master主機 … 256
11.7.2 DMA Controller 256
11.7.3 Scatter-Gather DMA Controller … 256
11.7.4 Modular Scatter-Gather DMA 258
11.7.5 Avalon-MM Master模板 … 260
11.8 高速數(shù)據(jù)采集系統(tǒng) … 263
11.8.1 安裝Avalon-MM Master模板 263
11.8.2 完善 Qsys系統(tǒng) … 265
11.8.3 修改 Quartus中的 Qsys例化 269
11.8.4 測試邏輯設(shè)計 … 271
11.9 本章小結(jié) … 275
第12章 Linux驅(qū)動編寫與編譯 … 276
12.1 基本字符型設(shè)備驅(qū)動… 276
12.1.1 字符型設(shè)備驅(qū)動框架 … 277
12.1.2 PWM 控制器驅(qū)動的完整源碼 286
12.1.3 驅(qū)動編譯 Makefile 291
12.1.4 Ubuntu下編譯設(shè)備驅(qū)動 292
12.1.5 字符型設(shè)備驅(qū)動驗證 … 293
12.2 基于DMA的字符型設(shè)備驅(qū)動 … 297
12.2.1 Avalon-MM Master Write驅(qū)動 … 298
12.2.2 Avalon-MM Master Write測試 … 304
12.3 本章小結(jié) … 311
附錄A 外設(shè)地址映射 312
附錄B HPS GPIO映射 … 314

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號