精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ZYNQ 的啟動流程介紹

FPGA技術江湖 ? 來源:FPGA技術江湖 ? 作者:FPGA技術江湖 ? 2022-07-22 10:10 ? 次閱讀

一、啟動流程介紹

普通的 FPGA 一般是可以從 flash 啟動,或者被動加載,但是ZYNQ不行,ZYNQ必須PS端參與

ZYNQ 的啟動是由 ARM 主導的,包括 FPGA 程序的加載, ZYNQ 啟動一般為3個階段,最少2個階段:

1、階段0:Stage-0 Boot (BootROM

99b8907c-0962-11ed-ba43-dac502259ad0.png

階段0,主要是運行芯片內部固化的BootROM程序,這個BootROM主要是識別啟動模式(spi/sd/nand/nor/)是哪一種?

1)、根據啟動模式,設置相應的外設,當然有引腳復用了,還有時鐘

2)、將FSBL從啟動介質中搬移到OCM(On-Chip Memory)中

3)、跳轉到FSBL處執行,將控制權交給FSBL程序

2、階段1:FSBL(First Stage Bootloader )

FSBL(第一階段引導加載程序)在BootROM之后啟動,這個BootROM將FSBL加載到OCM(On-Chip Memory )

FSBL負責下面的幾項工作:

1)、初始化PS端的配置數據(使用Xilinx硬件配置工具提供的);

完成MIO分配、時鐘PLL、DDR控制器初始化,SD、QSPI控制器初始化

2)、通過啟動模式從啟動介質讀取bitsttream文件,并用它燒寫PL端程序

3)、加載第二階段BootLoader或者邏輯代碼到DDR內存

4)、切換到第二階段BootLoader或者邏輯代碼運行

下圖是一個簡單的FSBL流程圖:

99d5b242-0962-11ed-ba43-dac502259ad0.png

3、第二階段啟動流程:Second Stage Bootloader

第二階段引導加載程序是可選的,并由用戶設計,一般是在跑系統的情況下使用,比如 linux 系統的u-boot(用petalinux 工具制作 linux 系統 )

二、制作FSBL第一階段的啟動代碼

1、新建一個名為 fsbl 的 APP,特別注意硬件平臺選擇我們自己配置的ps_uart_warpper_hw_platform_0 ,點擊next

9a034f54-0962-11ed-ba43-dac502259ad0.png

2、在彈出的對話框選擇Zynq FSBL,點擊Finish

9a213f1e-0962-11ed-ba43-dac502259ad0.png

3、然后軟件會自動的進行編譯FSBL,時間看電腦的性能

9a36d202-0962-11ed-ba43-dac502259ad0.png

4、等編譯完成,修改代碼,添加調試宏定義 FSBL_DEBUG_INFO

這個宏可以在啟動輸出 FSBL 的一些狀態信息,有利于調試,但是會導致啟動時間變長。

9a4eb05c-0962-11ed-ba43-dac502259ad0.png

5、修改后保存, SDK 默認會自動編譯,生成 fsbl.elf 文件。也可以右鍵點擊build project手動編譯

6、我們的工程文件夾包含很多外設文件ps7_init.c, nand, nor, qspi, sd 等

9a729986-0962-11ed-ba43-dac502259ad0.png

7、fsbl的 main.c 中,第一個運行的函數就是 ps7_init ,這個fsbl內容也可以根據自己需要進行更改,例如加點自己的打印信息

9a88f1a4-0962-11ed-ba43-dac502259ad0.png

8、創建 BOOT 文件

8.1、選擇 APP (就是我們的應用:ps_uart_hello)工程,右鍵選擇 Create Boot Image

9aa6042e-0962-11ed-ba43-dac502259ad0.png

8.2、在彈出的對話框中可以看到BIF文件和BOOT.bin的生成路徑

BIF文件是生成BOOT.bin文件的配置文件;

BOOT.bin是我們需要的啟動文件,可以燒寫到SD卡、QSPI里

8.3、在彈出的對話框,Boot image partitions 列表中有要合成的文件

第一個文件一定是 bootloader 文件,就是上面生成的 fsbl.elf 文件;

第二個文件是 FPGA 配置文件 bitstream,本實驗沒有PL端程序,所以bitstream,不需要添加;

第三個是應用程序,在本實驗中為 ps_uart_hello.elf

8.4、由于沒有 bitstream,在本實驗中只添加 bootloader 和應用程序。點擊 Create Imag

9ac4d336-0962-11ed-ba43-dac502259ad0.png

8.5、在生成的目錄下可以找到BOOT.bin文件

9ade44f6-0962-11ed-ba43-dac502259ad0.png

三、SD卡燒寫及測試

1、格式化 SD 卡,只能格式化為 FAT32 格式,其他格式無法啟動

2、放入 BOOT.bin 文件,放在根目錄

3、D 卡插入開發板的 SD 卡插槽

4、啟動模式調整為 SD 卡啟動

開發板設置撥碼為【 101001(1~6 SD卡 模式)】

9afb3278-0962-11ed-ba43-dac502259ad0.png

5、打開串口,開發板上電

6、可以看到SD卡啟動成功,紅色部分為FSBL打印信息,綠色為我們的APP打印信息

9b153e2a-0962-11ed-ba43-dac502259ad0.png

7、SD卡固化成功

四、QSPI程序固化

QSPI 燒寫有2種方式:xSDK軟件燒寫、或者Vivado軟件燒寫

五、QSPI燒寫及測試(xSDK軟件燒寫)

首先將開發板設置為JTAG模式【 010101(1~6 JTAG 模式)】

9b47e1a4-0962-11ed-ba43-dac502259ad0.png

1、在 SDK 菜單 Xilinx -》 Program Flash

9b66cbc8-0962-11ed-ba43-dac502259ad0.png

2、參數配置

《1》、Hardware Platform 選擇我們自己定制的平臺;

《2》、Image FIle 文件選擇要燒寫的 BOOT.bin;

《3》、FSBL file 選擇創龍定制的 fsbl.elf,只有用這個 fsbl 才能燒寫(我會另寫一篇博客單獨寫怎么定制fsbl.elf文件);

《4》、選擇 Verify after flash,在燒寫完成后校驗 flash

9b7eddb2-0962-11ed-ba43-dac502259ad0.png

3、注意:第一次固化的時候,里面有uboot在執行,燒寫不成功,所以要先在軟件點固化,然后快速給開發板上電

9b96974a-0962-11ed-ba43-dac502259ad0.png

4、將啟動設置為QSPI【 100101(1~6 QSPI 模式)】,驗證固化有沒有成功

9bbbf454-0962-11ed-ba43-dac502259ad0.png

5、打印的信息和我們在DUBUG的時候一致,代表我們固化成功

五、QSPI燒寫及測試(vivado軟件燒寫)

1、在 HARDWARE MANGER 下選擇器件,右鍵 Add Configuration Memory Device

9bf01c84-0962-11ed-ba43-dac502259ad0.png

2、選擇嘗試 Winbond,類型選擇 qspi,寬度選擇 x4-single,這時候出現 w25q128

選擇紅框型號,開發板使用 MT25QL256ABA1EW9-0SIT,但是不影響燒錄

9c01dece-0962-11ed-ba43-dac502259ad0.png

3、在彈出的對話框,提示我們是否立即燒寫,點擊OK

選擇ps_uart_hello/bootimage/目錄的BOOT.bin,選擇fsbl/debug/目錄下的fsbl.elf文件

9c2cf3d4-0962-11ed-ba43-dac502259ad0.png

4、提示我們當前是處于QSPI模式的,如果編程失敗,請更改模式,再次重試

9c4d4382-0962-11ed-ba43-dac502259ad0.png

5、我們將啟動模式改為JTAG模式【 010101(1~6 JTAG 模式)】

9b47e1a4-0962-11ed-ba43-dac502259ad0.png

6、斷電上電,再次嘗試燒寫,沒有剛才的警告信息了

9c8230c4-0962-11ed-ba43-dac502259ad0.png

7、再將啟動模式切換為QSPI模式,QSPI【 100101(1~6 QSPI 模式)】,驗證固化有沒有成功

9c961a62-0962-11ed-ba43-dac502259ad0.png

六、到此PS端的程序固化成功

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1626

    文章

    21667

    瀏覽量

    601858
  • FlaSh
    +關注

    關注

    10

    文章

    1621

    瀏覽量

    147754
  • 程序
    +關注

    關注

    116

    文章

    3777

    瀏覽量

    80851
  • Zynq
    +關注

    關注

    9

    文章

    608

    瀏覽量

    47128

原文標題:學員筆記精選 | ZYNQ7000系列基本開發流程 之 《PS端程序固化》篇

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    詳解Zynq的兩種啟動模式

    Zynq-7000AP SOC器件有效利用了片上CPU來幫忙配置,在沒有外部JTAG的情況下,處理系統(PS)與可編程邏輯(PL)都必須依靠PS來完成芯片的初始化配置。 ZYNQ的兩種啟動模式:從BootROM主動
    發表于 08-02 09:33 ?1442次閱讀
    詳解<b class='flag-5'>Zynq</b>的兩種<b class='flag-5'>啟動</b>模式

    【Z-turn Board試用體驗】+板上資源Zynq7000啟動流程的學習

    做一遍也不害怕!Zynq7000,是一個可擴展處理平臺,簡單說就是有個FPGA做外設的A9雙核處理器。所以,它的啟動流程自然也和FPGA完全不同,而與傳統的ARM處理器類似。Zynq7
    發表于 05-27 20:50

    【Z-turn Board試用體驗】+Zynq7000啟動流程介紹

    Zynq-7000 Extensible Processing Platform,是一個可擴展處理平臺,簡單說就是有個FPGA做外設的A9雙核處理器。所以,它的啟動流程自然也和FPGA完全不同,而與
    發表于 07-22 20:42

    Zynq在非JTAG模式下的啟動配置流程

    是怎樣實現對自己的配置?  這也是本文將要和大家共同討論的問題。  Zynq啟動流程  在無 JTAG 的模式下,Zynq 是通過片上CPU完成對芯片的配置,也就是PS和PL的配置是
    發表于 01-08 16:33

    ZYNQ芯片開發流程的簡介

    PS和PL互聯技術ZYNQ芯片開發流程的簡介
    發表于 01-26 07:12

    Zynq在非JTAG模式下的啟動配置流程

    本文主要與大家分享了Zynq在非JTAG模式下的啟動配置流程,旨在讓大家對Zynq的三階段啟動模式有一個具體的認識,希望大家多多交流。
    發表于 03-17 07:36

    介紹模擬ARM的啟動流程

    的模擬器,如果你想學習嵌入式,但身邊沒有開發板,這時候你可以嘗試使用它來模擬Linux內核的啟動,當然它還可以模擬ARM、MIPS等各種CPU架構,本文主要介紹模擬ARM的啟動流程(一
    發表于 11-05 06:36

    ZYNQ學習 —— 啟動流程分析及各環節文件生成流程(ZedBo

    網絡資料收集,關于啟動流程的一些注意點,關于開發板ZYNQ系列的包括MIZ702
    發表于 05-11 17:30 ?3次下載

    啟動流程分析及各環節文件生成流程(ZedBoard為例)

    1. ZYNQ啟動流程 Zynq7000就如同他的名字一樣,Zynq-7000 Extensible Processing Platfor
    發表于 02-09 09:52 ?1350次閱讀

    詳解zynq啟動步驟

    本文主要介紹zynq啟動過程,主要包括BootROM和FSBL等的執行過程。
    發表于 10-27 10:47 ?7433次閱讀
    詳解<b class='flag-5'>zynq</b>的<b class='flag-5'>啟動</b>步驟

    ZYNQ啟動流程

    ZYNQ7000 SOC 芯片可以從 FLASH 啟動,也可以從 SD 卡里啟動, 本節介紹程序 FLASH 啟動的方法。
    的頭像 發表于 05-07 09:41 ?6320次閱讀

    ZYNQ7020的PS端的基本開發流程

    這篇文章記錄ZYNQ7020的PS端的基本開發流程,關于PL端的開發流程,參考之前文章,這里放個超鏈接。
    的頭像 發表于 07-24 18:12 ?7512次閱讀

    Zynq在非JTAG模式下的啟動配置流程

    在無 JTAG 的模式下,Zynq 是通過片上CPU完成對芯片的配置,也就是PS和PL的配置是通過 PS 處理器 ARM 核來實現的。需要注意的是,與傳統的 Xilinx 7 系列 FPGA 芯片不同,Zynq 是不支持從 PL 端進行直接
    的頭像 發表于 10-19 09:11 ?1294次閱讀

    AURIX? TC3xx啟動流程詳解

    本文首先介紹整個啟動流程的概況,接著分別介紹了firmware啟動流程,boot mode的配置
    的頭像 發表于 06-06 10:31 ?3524次閱讀
    AURIX? TC3xx<b class='flag-5'>啟動</b><b class='flag-5'>流程</b>詳解

    使用JTAG仿真器查看ZYNQ當前啟動模式

    本文介紹使用Xilinx?SDK軟件查看當前Zynq?SoC啟動模式的步驟
    的頭像 發表于 07-07 14:15 ?1829次閱讀
    使用JTAG仿真器查看<b class='flag-5'>ZYNQ</b>當前<b class='flag-5'>啟動</b>模式