Xilinx Zynq SoC 與嵌入式 Linux 設計實戰指南 (兼容ARM Cortex-A9的設計方法)
內容描述
<內容簡介>
陸啟帥、陸彥婷、王地編著的這本《Xilinx Zynq SoC與嵌入式Linux設計實戰指南(兼容ARM Cortex-A9的設計方法)》系統介紹了Xilinx Zynq-7000 SoC與嵌入式Linux設計方法與實踐。全書以Zynq PS(ARM Cortex-A9)為核心,以Zynq PL(FPGA)為可編程外設,詳細介紹了從底層硬件系統到上層操作系統及GUI設計原理和方法,詳細講解了底層外設接口控製程序、嵌入式Linux操作系統移植以及應用程序。全書共分14章,內容包括Zynq初體驗、Zynq集成開發環境、Zynq啟動流程及鏡像製作、GPIO 原理及實現、中斷原理及實現、定時器原lint實現、通用異步收發器原理及實現、OLED原理及實現、Zynq雙核運行原理及實現、嵌入式Linux系統構建、嵌入式Linux系統實現、u-boot 原理及移植、Linux內核原理及移植和嵌入式網絡視頻設計及實現。
本書由淺入深,從最簡單的流水燈、Hello World開始,使讀者可以完成裸機控製程序設計、嵌人式Linux環境搭建、嵌入式操作系統移植以及應用程序設計等。
本書理論與實踐相結合,可以作為信息類專業大學本科高年級和研究生的教學參考用書,也可作為從事嵌入式系統設計的工程技術人員參考用書。
<目錄>
第一篇 Zynq開發基礎
第1章 Zynq初體驗
1.1 PL部分設計實現
1.1.1 創建工程
1.1.2 設計輸入
1.1.3 設計綜合
1.1.4 設計實現
1.1.5 下載執行
1.2 PS部分設計實現
1.2.1 建立Zynq硬件系統
1.2.2 在PS中設計Hello World程序
1.2.3 下載執行程序
第2章 Zynq集成開發環境
2.1 Zynq硬件平臺
2.1.1 Zynq XC7Z020芯片硬件資源
2.1.2 ZedBoard硬件資源
2.2 Zynq軟件平臺
2.2.1 嵌入式硬件開發工具XPS
2.2.2 嵌入式軟件開發工具SDK
第3章 Zynq啟動流程及鏡像製作
3.1 BootROM
3.2 Zynq器件的啟動配置
3.3 使用BootGen
3.3.1 BootGen介紹
3.3.2 BIF文件語法
3.3.3 BootGen實例
第二篇 Zynq底層硬件設計
第4章 GPIO原理及設計實現
4.1 GPIO原理
4.2 Zynq XC7Z020 GPIO寄存器
4.2.1 DATA_RO寄存器
4.2.2 DATA寄存器
4.2.3 MASK_DATA_LSW/ MSW寄存器
4.2.4 DIRM寄存器
4.2.5 OEN寄存器
4.2.6 GPIO slcr寄存器
4.3 GPIO設計實現
4.3.1 彙編語言實現
4.3.2 C語言實現
第5章 中斷原理及實現
5.1 中斷原理
5.1.1 中斷類型
5.1.2 中斷向量表
5.1.3 中斷處理過程
5.2 Zynq中斷體系結構
5.2.1 私有中斷
5.2.2 軟件中斷
5.2.3 共享外設中斷
5.2.4 中斷寄存器
5.3 中斷程序設計實現
5.3.1 中斷向量表和解析程序
5.3.2 中斷源配置
5.3.3 ICD寄存器初始化
5.3.4 ICC寄存器組初始化
5.3.5 ICD寄存器組配置
5.3.6 ARM程序狀態寄存器(CPSR)配置
5.3.7 中斷服務程序設計
5.4 設計驗證
第6章 定時器原理及實現
6.1 Zynq定時器概述
6.2 私有定時器
6.2.1 私有定時器寄存器
6.2.2 私有定時器設計實現
6.3 私有看門狗定時器
6.3.1 私有看門狗定時器寄存器
6.3.2 私有看門狗定時器設計實現
6.4 全局定時器
6.4.1 全局定時器寄存器
6.4.2 全局定時器設計實現
第7章 通用異步收發器原理及實現
7.1 UART概述
7.2 UART寄存器
7.3 UART設計實現
7.3.1 UART引腳設置
7.3.2 UART初始化
7.3.3 UART字符接收和發送函數實現
7.3.4 UART主函數實現
7.3.5 UART具體實現步驟
第8章 OLED原理及實現
8.1 OLED概述
8.2 建立OLED硬件系統
8.3 生成自定義OLED IP模板
8.4 修改MY_OLED IP設計模板
8.5 OLED驅動程序設計實現
8.5.1 OLED初始化
8.5.2 寫數據相關函數
8.5.3 寫顯存相關函數實現
8.6 設計驗證
第9章 Zynq雙核運行原理及實現
9.1 雙核運行原理
9.2 硬件系統設計
9.3 軟件設計
9.3.1 FSBL
9.3.2 CPU0應用程序設計
9.3.3 CPU1應用程序設計
9.4 設計驗證
第三篇 嵌入式Linux設計
第10章 嵌入式Linux系統構建
10.1 Ubuntu 13.10設置
10.1.1 root登錄
10.1.2 安裝FTP服務器和SSH服務器
10.2 PuTTY和FileZilla工具使用
10.2.1 PuTTY工具使用
10.2.2 FileZilla工具使用
10.3 交叉編譯器安裝
10.3.1 Xilinx ARM交叉編譯器下載
10.3.2 Xilinx ARM交叉編譯器安裝
10.4 嵌入式Qt環境構建
10.4.1 主機環境Qt構建
10.4.2 目標機Qt環境構建
第11章 嵌入式Linux系統實現
11.1 硬件平臺構建
11.1.1 自定義GPIO IP核設計
11.1.2 添加my_led IP核埠
11.2 my_led IP核邏輯設計
11.2.1 設置引腳方向信息
11.2.2 my_led IP核埠和連接設計
11.2.3 my_led IP核用戶邏輯設計
11.2.4 my_led IP核引腳約束設計
11.2.5 my_led IP核硬件比特流生成
11.3 啟動文件BOOT.BIN設計
11.3.1 第一階段啟動代碼設計
11.3.2 u-boot編譯
11.3.3 生成BOOT.BIN文件
11.4 Linux內核編譯
11.4.1 內核簡介
11.4.2 Xilinx Linux內核的獲取
11.4.3 Xilinx Linux內核編譯
11.5 系統測試
11.6 添加my_led設備
11.6.1 my_led驅動程序設計
11.6.2 應用程序調用驅動程序測試
第12章 u-boot原理及移植
12.1 u-boot版本及源碼結構
12.1.1 u-boot版本
12.1.2 u-boot源碼結構
12.2 u-boot配置和編譯分析
12.2.1 u-boot配置分析
12.2.2 頂層Makefile分析
12.3 u-boot運行過程分析
12.3.1 start.S文件分析
12.3.2 lowlevel_init.S分析
12.3.3 board_init_f分析
12.3.4 board_init_r分析
12.3.5 main_loop分析
12.4 u-boot移植
12.4.1 刪除無關文件
12.4.2 修改因刪除無關源碼造成的錯誤
12.4.3 添加修改ZedBoard移植代碼
12.4.4 u-boot測試
第13章 Linux內核原理及移植
13.1 Linux內核版本及源碼結構
13.1.1 Linux內核版本
13.1.2 Linux內核源碼結構
13.2 Linux內核系統配置
13.2.1 Makefile分析
13.2.2 Makefile中的變量
13.2.3 子目錄Makefile
13.2.4 內核配置文件
13.3 Linux內核啟動分析
13.3.1 內核啟動入口
13.3.2 zImage自解壓
13.3.3 第一階段啟動代碼分析
13.3.4 第二階段啟動代碼分析
13.4 Linux內核移植
13.4.1 添加配置文件
13.4.2 添加和修改ZedBoard相關文件
13.4.3 添加驅動文件和頭文件
13.4.4 Linux內核測試
第14章 網絡視頻設計及實現
14.1 總體設計
14.2 V4L2關鍵技術
14.2.1 V4L2基本原理
14.2.2 相關數據結構和函數
14.2.3 V4L2工作流程
14.3 TCP及Qt下的網絡編程
14.3.1 服務器端程序設計
14.3.2 客戶端程序設計
14.4 設計驗證
14.4.1 主機設計驗證
14.4.2 目標機設計驗證