91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

前言:

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

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

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

板子依然使用的是zc702.

啟動模式設置:

zynq 具有多種啟動方式: NOR, NAND, Quad-SPI, SD Card以及 JTAG 。 zynq 如何判斷從哪里啟動呢? 上電后, zynq 會根據模式管腳的設定選用 boot 的方式。 而這個管腳的設定是通過核心板上的撥碼開關實現的。zc702的撥碼開關是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

設置完之后點擊Apply-->Debug即可開始調試,Run as類似。

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

那么通過外設啟動的過程是怎樣的呢?

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

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

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

啰嗦第二遍:

BootROM負責:

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

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

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

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

關于PS配置:

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

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

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

制作BOOT.bin文件:

1.Vivado那邊完成之后,打開sdk,新建應用工程

pIYBAF9uIKaAdx1wAADGozyY4Qs211.png

工程名設為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.啟動模式設置為SD卡啟動,上電,程序就可以運行了。

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

Flash啟動

1.啟動模式設置為QSPI啟動,

2.開發板上電,

3.點擊Xilinx tool-->Program Flash

pIYBAF9uILyABdnEAACaT7xwpkA434.png

4.點擊Program

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

如果你使用已經存在的bsp文件時出現這種情況:

o4YBAF9uIL2AD6WGAAD8g5ANhoQ884.png

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

pIYBAF9uIMCALPHPAAFdJ9zPHH0108.png

總結:

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

編輯:hfy

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

    關注

    10

    文章

    1679

    瀏覽量

    151843
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11080

    瀏覽量

    217108
  • JTAG
    +關注

    關注

    6

    文章

    404

    瀏覽量

    73331
  • Zynq
    +關注

    關注

    10

    文章

    615

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MEMS中的三種測溫方式

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

    信號隔離器三種供電方式的區別

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

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

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

    三種太赫茲波的產生方式

    本文簡單介紹了三種太赫茲波的產生方式。 太赫茲波(THz)是一電磁波,在電磁波譜上位于紅外與微波之間。太赫茲光子能量在1-10 meV范圍之間,在光譜分析、醫療成像、移動通信方面都有非常廣闊
    的頭像 發表于 02-17 09:09 ?1841次閱讀
    <b class='flag-5'>三種</b>太赫茲波的產生<b class='flag-5'>方式</b>

    示波器的三種觸發模式

    示波器的觸發方式不僅影響波形捕捉的時機,還決定了顯示的波形是否穩定。 常見的觸發模式有三種: 單次觸發 (Single)、 正常觸發 (Normal)和 自動觸發 (Auto)。下面將對這三種觸發
    的頭像 發表于 01-07 11:04 ?7690次閱讀
    示波器的<b class='flag-5'>三種</b>觸發模式

    飛凌嵌入式-ELFBOARD-硬件知識分享ELF 2啟動方式

    1.4.1 復位及其他按鍵 RESET_L為核心板復位信號輸入,為方便調試,連接到按鍵上。 圖1.7 復位按鍵原理圖 1.4.2 Boot配置 RK3588支持多種啟動引導方式,在芯片復位結束后
    發表于 12-30 15:54

    systemd journal收集日志的三種方式

    隨著 systemd 成了主流的 init 系統,systemd 的功能也在不斷的增加,比如對系統日志的管理。Systemd 設計的日志系統好處多多,這里筆者就不再贅述了,本文筆者主要介紹 systemd journal 收集日志的三種方式
    的頭像 發表于 10-23 11:50 ?822次閱讀
    systemd journal收集日志的<b class='flag-5'>三種</b><b class='flag-5'>方式</b>

    單相電機的啟動方式是什么?如何啟動

    單相電機是一常見的電機類型,廣泛應用于家用電器、工業設備和各種小型機械中。由于其結構簡單、成本低廉、維護方便等特點,單相電機在許多領域得到了廣泛應用。然而,單相電機的啟動方式相電
    的頭像 發表于 10-23 09:15 ?2011次閱讀

    I2S有左對齊,右對齊跟標準的I2S三種格式,那么這三種格式各有什么優點呢?

    大家好,關于I2S格式,有兩個疑問請教一下 我們知道I2S有左對齊,右對齊跟標準的I2S三種格式,那么這三種格式各有什么優點呢? 而且對于標準的I2S格式,32FS傳輸16bit的數據,48fs傳輸24bit的數據,最低位會移動到右聲道,是否意味著該數據被丟棄了?還是有
    發表于 10-21 08:23

    Windows管理內存的三種主要方式

    Windows操作系統提供了多種方式來管理內存,以確保系統資源的有效利用和性能的優化。以下是關于Windows管理內存的三種主要方式的詳細闡述,包括堆內存管理、虛擬內存管理以及共享內存管理,每種
    的頭像 發表于 10-12 17:09 ?2389次閱讀

    shell腳本執行的三種方式及區別

    在Linux系統中,Shell腳本是一非常實用的工具,用于自動化執行一系列命令。Shell腳本可以大大提高工作效率,簡化復雜的任務。在這篇文章中,我們將介紹Shell腳本執行的三種方式及其區別
    的頭像 發表于 08-30 15:24 ?2218次閱讀

    簡述三種esp32的開發方式是什么

    ESP32是一款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模無線通信芯片,廣泛應用于物聯網、智能家居、智能硬件等領域。本文將詳細介紹三種ESP32的開發方式:Arduino
    的頭像 發表于 08-20 09:11 ?8077次閱讀

    常用的pwm跟蹤控制方式是哪三種

    PWM(脈寬調制)跟蹤控制是一廣泛應用于電機控制、電源管理、通信等領域的技術。它通過調整脈沖的寬度來控制輸出信號的占空比,從而實現對系統的精確控制。常用的PWM跟蹤控制方式主要有三種:增量式PWM
    的頭像 發表于 08-14 10:34 ?2599次閱讀

    計算機網絡中的三種通信方式

    計算機網絡中的三種通信方式,即單工通信、半雙工通信和全雙工通信,是理解和設計高效網絡架構的基礎。每種通信方式都有其獨特的特性、應用場景及優缺點。以下是對這三種通信
    的頭像 發表于 08-07 15:00 ?5152次閱讀

    逆變電路的三種調壓方式

    路的三種調壓方式:脈寬調制(PWM)調壓、相位控制調壓和頻率調制調壓。 1. 脈寬調制(PWM)調壓 脈寬調制是一通過改變脈沖寬度來調整輸出電壓的調壓方式。在PWM調壓中,逆變電路的
    的頭像 發表于 08-02 16:59 ?4393次閱讀
    主站蜘蛛池模板: 日本一卡二卡≡卡四卡精品 | 婷婷丁香久久 | 国产成人精品亚洲日本在线观看 | 免费高清在线观看a网站 | 亚洲天堂视频一区 | 亚洲国产精品综合久久网络 | 国产专区日韩精品欧美色 | 色综合图片二区150p | 国产在线视频网站 | www视频在线观看com | 日韩免费毛片全部不收费 | 老师啊灬啊灬用力啊快224视频 | 午夜影院啊啊啊 | 欧美成年性色mmm | 深夜影院一级毛片 | 亚洲免费不卡 | 岛国毛片一级一级特级毛片 | 国产毛片精品 | 国产香蕉免费精品视频 | 俄罗斯美女在线观看一区 | 四虎影院黄色片 | 日本特黄特色大片免费播放视频 | 狠狠干天天爽 | 深夜在线观看大尺度 | 女人张腿让男子桶免费动态图 | 亚洲色图图片区 | 她也啪97在线视频 | 在线亚洲免费 | 91国内在线视频 | 免费看va| 国产三级日本三级韩国三级在线观看 | 特级黄色淫片 | lsj老司机精品视频在线观看 | 91福利网 | 大胆国模一区二区三区伊人 | www.成人av.com| 天天操中文字幕 | 天堂福利视频 | 天天操天天舔天天干 | swag系列国产精品 | 色视频网站免费 |