91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

淺談ZYNQ的三種啟動方式-JTAG、SD card、Flash

454398 ? 來源:CSDN 博主 ? 作者:ChuanjieZhu ? 2020-12-26 10:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言:

前面我們都是使用JTAG方式下載比特流文件,然后下載elf文件,最后點擊Run as或者Debug as來運行程序。JTAG方式是通過tcl腳本來初始化PS,然后用JTAG收發(fā)信息,優(yōu)點是可以在線調(diào)試,缺點是斷電后程序就丟失了。為了解決程序丟失的問題,可以制作鏡像文件燒寫到sd卡或者flash中,上電即可加載程序。

ZYNQ有兩大類啟動模式:從BootROM主動啟動,從JTAG被動啟動。

在沒有外部JTAG的情況下,處理系統(tǒng)(PS)與可編程邏輯(PL)都必須依靠PS來完成芯片的初始化配置。即借助CPU來完成配置,這也是ZYNQ系列的不同之處。

板子依然使用的是zc702.

啟動模式設(shè)置:

zynq 具有多種啟動方式: NOR, NAND, Quad-SPI, SD Card以及 JTAG 。 zynq 如何判斷從哪里啟動呢? 上電后, zynq 會根據(jù)模式管腳的設(shè)定選用 boot 的方式。 而這個管腳的設(shè)定是通過核心板上的撥碼開關(guān)實現(xiàn)的。zc702的撥碼開關(guān)是sw16。

The ZC702 board supports these configurationoptions:
? PS Configuration: Quad SPI flash memory
? PS Configuration: Processor System Boot from SD Card (J64)
? PL Configuration: USB JTAG configuration port (Digilent module)
? PL Configuration: Platform cable header J2 and flying lead header J58 JTAG configurationports

pIYBAF9uIJKAMUHiAACB-5EaHqQ956.png

JTAG啟動:

配置界面如下:

pIYBAF9uIJmAcBQBAAddXDZKP4w848.png

o4YBAF9uIJ-ADM5TAAWYK6q4K50941.png

o4YBAF9uIKSASccTAAVhnXCjb7o327.png

設(shè)置完之后點擊Apply-->Debug即可開始調(diào)試,Run as類似。

通過制作鏡像文件在外設(shè)控制器中啟動,也稱之為固化。固化需要三個文件:FSBL.elf、該工程的bit文件、該工程的elf文件,由此三個文件制作一個BOOT.bin文件。

那么通過外設(shè)啟動的過程是怎樣的呢?

分為三個階段,大多數(shù)的ARM都是這個啟動過程。

階段0:即傳統(tǒng)的 BootROM 過程, zynq 芯片里有個 rom 里面固化了一段不可修改的程序, 只有 zynq 一上電, 這段程序就會執(zhí)行, 它將初始化CPU和 NAND、 NOR、 SD卡等基本外設(shè)。初始化好,BootROM讀取存儲器中的程序代碼,并將FSBL拷貝到OCM(On-chip memory)里 , 這個被拷貝到片上 RAM 執(zhí)行的程序就來自于我們要制作的文件——BOOT.bin。
階段1:第一階段引導(dǎo)程序(First Stage Boot Loader,F(xiàn)SBL)啟動,BOOT.bin開始執(zhí)行:首先繼續(xù)配置PS,PS初始化好后,再配置PL,最后還可以加載階段2的代碼。

階段2:開始執(zhí)行PS端代碼,也可以是第二階段引導(dǎo)程序(Second Stage Boot Loader,SSBL)。完全在用戶的控制之下,是可選的。

啰嗦第二遍:

BootROM負責(zé):

1.上電復(fù)位以后,PS端即開始進行配置。在不使用JTAG的情況下,ARM將在片上的BootROM中開始執(zhí)行代碼。BootROM中的代碼對NAND、NOR、Quad-SPI、SD與PCAP的基本外設(shè)控制器進行初始化,使得ARM核可以訪問、使用這些外設(shè)。(而DDR等其他外設(shè)將在階段1或者之后進行初始化。)

2.BootROM讀取MIO[2..8]的引腳設(shè)置來確定啟動設(shè)備,將選定設(shè)備的頭192Kbyte內(nèi)容,也就是FSBL,復(fù)制到OCM中,并將控制權(quán)交給FSBL。

FSBL啟動時可以使用整塊256Kb的OCM,當(dāng)FSBL開始運行后,器件就正式由由用戶控制了。

FSBL負責(zé):
1.根據(jù)Vivado中的配置,完成PS端的初始化。
2.使用比特流文件對PL進行配置
3.加載第二階段引導(dǎo)程序(SSBL)或者裸跑程序(直接在ARM上運行無操作系統(tǒng)程序)到內(nèi)存空間。
4.跳轉(zhuǎn)執(zhí)行SSBL或者裸跑程序。

關(guān)于PS配置:

Ps7_init.c和ps7_init.h,用于初始化CLK,DDR和MIO。Ps7_init.tcl完成的初始化和ps7_init.c代碼完成的初始化是相同的。

由于不是通過JTAG運行,所以沒有運行p7_init.tcl,直接在裸機程序開始處調(diào)用ps7_init()。

Xilinx為我們寫好了一個FSBL程序,沒有特殊要求可以直接使用。

制作BOOT.bin文件:

1.Vivado那邊完成之后,打開sdk,新建應(yīng)用工程

pIYBAF9uIKaAdx1wAADGozyY4Qs211.png

工程名設(shè)為FSBL

o4YBAF9uIKiADENnAADMsFPgnt8903.png

點擊next選擇自帶的FSBL程序,右邊是FSBL功能介紹

o4YBAF9uIKmAe8ySAADZu2iCmgE127.png

點擊Finish會自動編譯,在Debug目錄下可以找到FSBL.elf文件

pIYBAF9uIKyADZ1hAAE2SYyjFIw788.png

2.點擊Xilinx Tools ->Create zynq Boot Image

o4YBAF9uIK2AB7jAAAD929w1Vh8238.png

一般 該添加的文件它都會幫你添加好。

需要添加的文件如下:

pIYBAF9uIK-ALq2VAAE498FnVHE962.png

在FSBL文件夾下新建一個bootImage文件,點擊Browse,將輸出指向這里

o4YBAF9uILGAIqkdAACkrNxbqxI526.png

點擊add,先添加FSBL.elf文件,作為bootloader

pIYBAF9uILOAUOPYAAE2SYyjFIw383.png

再添加hw_platform下的.bit文件,這是PL部分的

pIYBAF9uILWAVEYHAADiWN5Gin0371.png

最后添加裸機程序.elf文件

o4YBAF9uILaAIcW8AAC-_6gMLDg413.png

都添加完如下圖:

pIYBAF9uILmANneYAAFQv_mGmUg870.png

以上三個文件的添加順序不可變,點擊Create Image,就可以生成BOOT.bin文件了,默認的輸出路徑在bootImage下。

o4YBAF9uILqAd32IAABt6Pu_IKo047.png

SD卡啟動

1.將生成的BOOT.bin文件拷貝到SD卡中,2.啟動模式設(shè)置為SD卡啟動,上電,程序就可以運行了。

我這里的現(xiàn)象led閃爍,斷電再上電,程序依然在,從SD卡加載的。

Flash啟動

1.啟動模式設(shè)置為QSPI啟動,

2.開發(fā)板上電,

3.點擊Xilinx tool-->Program Flash

pIYBAF9uILyABdnEAACaT7xwpkA434.png

4.點擊Program

下載好后程序就固化了,斷電后重啟,程序從QSPI Flash加載。

如果你使用已經(jīng)存在的bsp文件時出現(xiàn)這種情況:

o4YBAF9uIL2AD6WGAAD8g5ANhoQ884.png

右鍵那個bsp工程,點擊Board Support Pacage Setting,勾選這兩個庫

pIYBAF9uIMCALPHPAAFdJ9zPHH0108.png

總結(jié):

主流的下載方式就這三種,基本可以滿足你的一切需要了。

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1749

    瀏覽量

    155545
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11281

    瀏覽量

    225090
  • JTAG
    +關(guān)注

    關(guān)注

    6

    文章

    415

    瀏覽量

    74988
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    630

    瀏覽量

    49467
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    從NOR Flash 到 NAND FlashSD NAND,從底層結(jié)構(gòu)到應(yīng)用差異

    nor flash,nor nand,sd nand,spi nor,nand flash
    的頭像 發(fā)表于 03-05 18:24 ?22次閱讀
    從NOR <b class='flag-5'>Flash</b> 到 NAND <b class='flag-5'>Flash</b> 和<b class='flag-5'>SD</b> NAND,從底層結(jié)構(gòu)到應(yīng)用差異

    SD NAND 為何不能存啟動代碼,SPI NAND 與 NOR Flash 卻可以 —— 接口、傳輸、啟動機制全對比

    在嵌入式、物聯(lián)網(wǎng)、工控、車載等硬件系統(tǒng)中, 啟動存儲器(Boot Flash) ?是決定設(shè)備能否上電即跑、穩(wěn)定可靠的核心器件。實際選型中,SD NAND、SPI NAND、NOR Flash
    的頭像 發(fā)表于 02-09 11:16 ?199次閱讀
    <b class='flag-5'>SD</b> NAND 為何不能存<b class='flag-5'>啟動</b>代碼,SPI NAND 與 NOR <b class='flag-5'>Flash</b> 卻可以 —— 接口、傳輸、<b class='flag-5'>啟動</b>機制全對比

    Vivado+Vitis將程序固化的Flash的操作流程

    ZYNQ 的程序固化是指將程序代碼永久存儲到非易失性存儲器中,使系統(tǒng)上電后能自動加載運行的過程。主要固化方式:QSPI Flash固化:常用方式,容量小,如
    的頭像 發(fā)表于 01-20 16:17 ?385次閱讀
    Vivado+Vitis將程序固化的<b class='flag-5'>Flash</b>的操作流程

    如何在Zynq UltraScale+ MPSoC平臺上通過JTAG啟動嵌入式Linux鏡像

    在之前文章中,我們介紹了如何使用 XSCT 工具通過 JTAGZynq SoC 上啟動嵌入式 Linux 鏡像(從 JTAG 啟動
    的頭像 發(fā)表于 01-13 11:45 ?4531次閱讀

    C語言中實現(xiàn)函數(shù)宏的三種方式

    在宏的第一個分號后便結(jié)束。即 a = b 和 b = tmp 均不受控制語句所作用。 因此,在工程中,一般使用三種方式來對函數(shù)宏進行封裝,分別為 {}、do{...}while(0
    發(fā)表于 12-29 07:34

    伺服電機的三種制動方式有什么區(qū)別?

    伺服電機作為自動化控制系統(tǒng)中執(zhí)行元件的核心部件,其制動性能直接影響設(shè)備的定位精度和安全可靠性。目前主流的伺服電機制動方式包括動態(tài)制動、再生制動和電磁機械制動三種,它們在制動原理、應(yīng)用場景及技術(shù)特點上
    的頭像 發(fā)表于 09-19 18:26 ?1783次閱讀
    伺服電機的<b class='flag-5'>三種</b>制動<b class='flag-5'>方式</b>有什么區(qū)別?

    PZSDR 軟件無線電 開發(fā)板系列板卡之P201Pro P203Pro 硬件說明—AD9361 AD9363

    /TypeC/DC-007B)、1GB DDR3L內(nèi)存、256Mb QSPI Flash,集成千兆以太網(wǎng)、USB2.0、SD卡等接口,支持JTAG/QSPI/SD
    的頭像 發(fā)表于 08-27 10:18 ?1451次閱讀
    PZSDR 軟件無線電 開發(fā)板系列板卡之P201Pro P203Pro 硬件說明—AD9361 AD9363

    CS創(chuàng)世SD NAND在北京君正平臺和瑞芯微RK平臺的應(yīng)用

    介紹、對SD NAND進行讀寫操作的方式SD的驅(qū)動框架介紹以及SD NAND啟動,前
    發(fā)表于 08-22 17:01

    ZYNQ UltraScalePlus RFSOC QSPI Flash固化常見問題說明

    璞致 ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常見問題說明
    發(fā)表于 08-08 15:49 ?0次下載

    SD卡—雷龍 SD NAND

    一、SD卡介紹 1.基本介紹 本質(zhì):nand flash + 控制芯片 1.SD卡 ,Secure Digital Card,稱為安全數(shù)字卡(安全數(shù)碼卡)。
    的頭像 發(fā)表于 07-21 17:59 ?3789次閱讀
    <b class='flag-5'>SD</b>卡—雷龍 <b class='flag-5'>SD</b> NAND

    MEMS中的三種測溫方式

    在集成MEMS芯片的環(huán)境溫度測量領(lǐng)域,熱阻、熱電堆和PN結(jié)原理是三種主流技術(shù)。熱阻是利用熱敏電阻,如金屬鉑或注入硅的溫度電阻系數(shù)恒定,即電阻隨溫度線性變化的特性測溫,電阻變化直接對應(yīng)絕對溫度,需恒流源供電。
    的頭像 發(fā)表于 07-16 13:58 ?1676次閱讀
    MEMS中的<b class='flag-5'>三種</b>測溫<b class='flag-5'>方式</b>

    信號隔離器三種供電方式的區(qū)別

    信號隔離器是一重要的信號隔離裝置,其供電方式主要有獨立供電、回路供電和輸出回路供電三種。以下是這三種供電方式的詳細區(qū)別: 一、獨立供電 1
    的頭像 發(fā)表于 04-17 16:23 ?1552次閱讀
    信號隔離器<b class='flag-5'>三種</b>供電<b class='flag-5'>方式</b>的區(qū)別

    redis三種集群方案詳解

    在Redis中提供的集群方案總共有三種(一般一個redis節(jié)點不超過10G內(nèi)存)。
    的頭像 發(fā)表于 03-31 10:46 ?1539次閱讀
    redis<b class='flag-5'>三種</b>集群方案詳解

    從零開始馴服Linux(一):ZYNQ-Linux啟動文件構(gòu)建全解析

    啟動卡,SD啟動卡的制作方法,可以參考《領(lǐng)航者ZYNQ之嵌入式Linux開發(fā)指南》第六章Petalinux設(shè)計流程實戰(zhàn)中的制作SD
    發(fā)表于 03-20 16:48

    FOC中的三種電流采樣方式,你真的會選擇嗎?(可下載)

    的基礎(chǔ),用一句話來形容就是“基礎(chǔ)不對,努力白費”,由此可見電流采樣在整 個 FOC 算法中的作用電流采樣的方式一般分為電阻、雙電阻、單電阻,這三種采樣方式都有其
    發(fā)表于 03-12 15:04 ?4次下載