資料介紹
作者:watchman,文章來源:ZYNQ微信公眾號
Zynq的JTAG配置過程
初學 Zynq 的時候,都是按照慣例打開 Vivado 軟件,然后實現 Zynq 可編程邏輯硬件部分PL的設置后,把硬件部署導出,再打開 SDK 進行 ARM 核的軟件部分 PS 編程設計,最后再將硬件比特流文件(.bit)和軟件的可執行鏈接文件(.elf)下載到 Zynq 開發板中,這樣就可以對自己的軟硬件設計進行調試和驗證。
這種設計方式可以用下面的圖很好的描述:
如上圖所示,這其實是剛接觸 Zynq 軟硬件設計時需要了解的最基本開發流程,也是PL和PS設計結合的完美體現。
但是,上述開發的過程都有一個基本的前提,就是 Zynq 開發板是通過 JTAG 直接與電腦相連,然后實現程序的下載。
從另一個角度來說,PL和PS的配置都可以認為是電腦主機通過 JTAG 完成的。
但是,在實際中,Zynq 開發板不可能實時與電腦連接,當 JTAG 不起作用時,Zynq 芯片是怎樣實現對自己的配置?
這也是本文將要和大家共同討論的問題。
Zynq的啟動流程
在無 JTAG 的模式下,Zynq 是通過片上CPU完成對芯片的配置,也就是PS和PL的配置是通過 PS 處理器 ARM 核來實現的。
需要注意的是,與傳統的 Xilinx 7 系列 FPGA 芯片不同,Zynq 是不支持從 PL 端進行直接啟動配置的,一定要通過 PS 部分來完成。
Zynq 的具體啟動配置是分級進行的,一共可以分為3個階段,可以用0~2來表示:
1. Stage 0:BootROM 階段
2. Stage 1:FSBL (First Stage Boot loader)階段
3. Stage 2:SSBL (Second Stage Boot loader)階段
熟悉 ARM 開發的小伙伴應該對上面的啟動過程感到很熟悉,但又有陌生的地方。不用急,下面對這三個階段進行詳細的分析。
Zynq啟動階段0——BootROM
階段0,又稱為 BootROM 階段。ROM 相信大家都知道,Read-Only Memory,只讀存儲器的意思;而 Boot 是引導的含義,所以 BootROM 從字面的意思來看,就是只能去讀取的引導存儲器。
實際上,BootROM 的作用和它的字面意思完全一樣,就是指 ARM 核在上電之后,需要第一時間去讀取 BootROM 中固化的程序,完成對芯片的最初始化的配置。
因為是只讀的,所以根據 ROM 的性質,BootROM 中的程序是無法修改的。有的朋友會問BootROM 這一部分代碼主要完成了對 Zynq 的哪些配置?
在具體說明 BootROM 進行哪些配置之前,先要描述一下關于 Zynq 的啟動引腳配置。
Zynq 擁有5個可以進行配置的 MIO 引腳,是 MIO[6:2],在硬件形式上就表現為5個跳線帽,可以分別接 GND 或 3V3 的高電平。它們的作用如下:
通過不同的引腳作用說明可以發現,當 JTAG 不起作用時,就需要通過改變 MIO[5:3] 的連接來實現從 SD 卡等不同的存儲介質啟動。
而 BootROM 最重要的作用就是通過讀取 MIO[6:2] 的引腳配置情況,決定從何種介質中加載階段1需要使用的啟動鏡像。當然在加載之前,BootROM 會先完成對 SD 卡,NAND,NOR,QSPI Flash 等的初始化,從而使得ARM 核能夠成功訪問并使用這些外設。
BootROM 在完成以上任務的同時,也會對安全模式等運行模式進行配置,這部分博主暫時不太了解,所以不做過多敘述。
BootROM 在從外部存儲設備讀取了啟動鏡像后,通常會把進行加載到 OCM 中。OCM,On Chip Memory,是Zynq 中 ARM 內核的片上存儲器,也叫片上內存。
自此之后,BootROM 階段的啟動任務就算是圓滿結束了,接下來 BootROM 階段就把控制權轉移到了階段1手中。
注:BootROM 階段不對 PL 進行配置
Zynq啟動階段1——FSBL
FSBL,(First Stage Boot Loader),就是 BootROM 加載到 OCM 中的啟動鏡像。FSBL 完成的任務是 Zynq 啟動過程中的關鍵一環,可以分為以下4項:
1. 完成 PS 的初始化
2. 加載 PL 的bit流文件,完成 PL 配置
3. 加載 SSBL 引導程序或是ARM的裸跑程序到 DDR
4. 跳轉執行 SSBL 或裸跑程序
FSBL 的任務如上所示,整個思路還是非常清晰的。
第1步就是對 PS 端初始化,包括 DDR,MIO 等。
第2步就是PL的配置,也就輸傳統的 FPGA 下載 bit 流的過程,但要注意的是,在 Zynq 的非 JTAG 模式下,PL 是無法直接自行配置的。
第3步是加載 SSBL 或裸跑程序到 DDR 內存中,其中 SSBL,Second Stage Boot Loader,是在 Zynq 需要運行操作系統時才進行加載。而像我們入門學習時做的點亮 LED 燈實驗,就只是屬于裸跑程序。
最后第4步,ARM 會跳轉到 DDR 中執行所加載的程序。所以 FSBL 階段的運行思路是很好理解的。
在這里插入圖片描述
Zynq啟動階段2——SSBL
SSBL 在 Zynq 的啟動過程中是可選的一個階段,就像所提到的點亮 LED 實驗,包括一些其他的比較小型的程序,如果不需要用到操作系統的話,那么 Zynq 的啟動流程到 FSBL 階段就足夠了。
因此,SSBL 是面向于需要運行操作系統的應用場合。相信熟悉操作系統啟動知識的朋友到這里應該很清楚了,SSBL 就是操作系統在啟動過程中的引導程序 boot loader。
對于 Linux 而言,Zynq 的 SSBL 階段和 u-boot 的作用是相同的。具體來說,SSBL 的作用就是將 Zynq 所需要的操作系統加載到 DDR 內存之中。
到此,Zynq 的啟動與配置就算完成了。Zynq 啟動過程其實與傳統的 ARM 開發過程類似,區別就在于它是PS + PL 的架構,所以在啟動過程中,額外需要加載二進制 bit 流文件。Xilinx 將 Zynq 的啟動劃分為3個階段,從結構上看也是科學合理的。
總結
本文主要與大家分享了 Zynq 在非 JTAG 模式下的啟動配置流程,旨在讓大家對 Zynq 的三階段啟動模式有一個具體的認識,希望大家多多交流。
- Zynq-7000 SoC的安全啟動應用說明
- 修復水環真空泵軸承位磨損的過程詳解 4次下載
- Zynq-7000 SoC數據手冊下載 28次下載
- 藍牙mesh的“啟動配置(provisioning)”的安全流程資料下載
- 藍牙mesh網絡的啟動配置協議資料下載
- 藍牙mesh啟動配置流程資料下載
- OpenCV配置過程的教程免費下載 11次下載
- DOS的冷啟動和熱啟動有什么區別和方法說明
- 如何使用XilinxSDK開發Zynq軟件詳細資料說明 21次下載
- 詳解嵌入式linux 啟動信息 11次下載
- Linux基礎命令之Linux啟動過程詳解 2次下載
- linux下網卡配置詳解 0次下載
- Windows XP 啟動過程詳解 11次下載
- cisco easyvpn 配置詳解 4次下載
- RealviewMDK中啟動代碼的配置詳解
- RA MCU CANFD在FSP中的配置詳解 224次閱讀
- STM32的啟動過程如何分析 1228次閱讀
- 詳解ZYNQ啟動的過程 3867次閱讀
- Zynq在非JTAG模式下的啟動配置流程 1165次閱讀
- ZYNQ 的啟動流程介紹 6706次閱讀
- ZYNQ的啟動原理和配置 7573次閱讀
- ZYNQ-7000如何生成從Flash和SD卡啟動的鏡像文件 7505次閱讀
- 家用風力發電機制作過程詳解 3.5w次閱讀
- 一文詳解ZYNQ器件的啟動配置方法 1w次閱讀
- ARM程序的執行過程詳解 7123次閱讀
- 揭開Zynq Z-7000從SPI接口掛載的flash啟動的神秘面紗 1.4w次閱讀
- 詳解bootloader的執行流程與ARM Linux啟動過程分析 1w次閱讀
- 構建可啟動的系統鏡像的過程 1042次閱讀
- Xilinx Zynq-7000系列安全配置策略 8794次閱讀
- ZYNQ器件的啟動配置方法 1138次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關電源設計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多