在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 詳細(xì)解讀Zynq的三種啟動(dòng)方式(JTAG,SD,QSPI)

            詳細(xì)解讀Zynq的三種啟動(dòng)方式(JTAG,SD,QSPI)

            作者: 時(shí)間:2017-10-13 來(lái)源:網(wǎng)絡(luò) 收藏

            本文介紹zynq上三種方式啟動(dòng)文件的生成和注意事項(xiàng),包括只用片上(OCM)和使用DDR3兩種情況。

            本文引用地址:http://www.biyoush.com/article/201710/365728.htm

            JTAG方式

            JTAG方式是調(diào)試中最常用的方式,在SDK中
            在“Project Explorer”窗口工程上右鍵->Debug As->Debug ConfiguraTIons可以看到以下窗口


            首次打開(kāi)左邊窗口中 C/C++ applicaTIon(GDB)下沒(méi)有子項(xiàng),這時(shí)雙擊 C/C++ applicaTIon(GDB)即可新建一個(gè)調(diào)試;
            這時(shí)右邊窗口會(huì)自動(dòng)填充如上圖,若沒(méi)有則手動(dòng)填入;
            在右邊ApplicaTIon窗口指定要下載調(diào)試的.elf文件;
            在右邊STDIO Connection可以指定標(biāo)準(zhǔn)輸入輸出串口,即printf打印串口,若這里選擇開(kāi)發(fā)板上uart的com口,則調(diào)試時(shí)printf的信息打印到調(diào)試時(shí)Console窗口,同時(shí)也可從Console窗口輸入數(shù)據(jù),以此將數(shù)據(jù)通過(guò)串口發(fā)送到開(kāi)發(fā)板上
            以上設(shè)置完成后點(diǎn)擊Debug即可開(kāi)始調(diào)試;
            若以上在“Project Explorer”窗口工程上右鍵->Run As->Run Configurations;配置與此類(lèi)似,最后點(diǎn)擊run即可開(kāi)始運(yùn)行,只是不是調(diào)試而是直接上板運(yùn)行。

            只用OCM

            只用OCM指不使用DDR3的方式,與使用DDR3的方式略有不同。這里不用FSBL來(lái)加載PL部分的.bit文件和第二階段啟動(dòng)程序(裸機(jī)程序),而直接用BootROM加載裸機(jī)程序到OCM,即將裸機(jī)程序當(dāng)做FSBL來(lái)運(yùn)行,當(dāng)然還要以下處理才可以:
            包含進(jìn)頭文件:#include “ps7_init.h”
            在裸機(jī)程序main函數(shù)開(kāi)始處調(diào)用:ps7_init()
            從design_1_wrapper_hw_platform_1目錄復(fù)制ps7_init.c和ps7_init.h文件到裸機(jī)程序所在的src目錄中

            注意:這里樣調(diào)用ps7_init()只適用于只用OCM的情況,經(jīng)測(cè)試打開(kāi)DDR3后再這樣調(diào)用會(huì)在ps7_init()中初始化失敗,調(diào)試發(fā)現(xiàn)在初始化PLL時(shí)失?。ㄔ蛭粗?。

            為何要調(diào)用ps7_init()呢?從上面圖片調(diào)試可以看到初始化文件(Initialization files)ps7_init.tcl,其與ps7_init()效果相同;同時(shí)在調(diào)試配置窗口右下角也可以看到“Summary of operations to be performed”也有調(diào)試時(shí)的運(yùn)行過(guò)程,也有調(diào)用ps7_init等,之后再加載要調(diào)試的elf;由于不是通過(guò)JTAG運(yùn)行,所以沒(méi)有運(yùn)行這里ps7_init.tcl中,所以直接在裸機(jī)程序開(kāi)始處調(diào)用ps7_init()。

            這里沒(méi)有使用FSBL,不能加載.bit文件(zynq啟動(dòng)過(guò)程另介紹),所以只適用于沒(méi)有使用PL(包括PL邏輯或PL的IO等)的情況;由于OCM大小為256KB,而在BootROM階段只能訪問(wèn)192KB,所以“只用OCM”時(shí)要求裸機(jī)程序小于192KB才行。

            從SD啟動(dòng)

            要從SD卡啟動(dòng),則需要BOOT.bin文件(添加了BootROM識(shí)別的頭信息文件),生成方式如下:

            在“Project Explorer”窗口工程上右鍵->Create Boot Image 或 Tools ->Create zynq Boot Image;可以得到以下界面


            通常打開(kāi)該窗口后各項(xiàng)已填好,否則需要
            1、選擇Create new BIF file
            2、然后選擇BIF文件目錄
            3、在Boot image partitions中Add裸機(jī)程序.elf文件,要將Partition type選擇為bootloader
            確定輸出文件為BOOT.bin后點(diǎn)擊Create Image即可生成

            此時(shí)只要將BOOT.bin復(fù)制到SD卡,設(shè)置板子為SD卡啟動(dòng),重新上電即可。

            從QSPI啟動(dòng)

            有了以上SD啟動(dòng)的操作,從QSPI就比較簡(jiǎn)單了,查看部分資料,燒寫(xiě)到QSPI需要.mcs文件,在Create Boot Image中生成BOOT.bin的同時(shí)也生成了.mcs文件,但是在我使用SDK版本中(2015.3)生成BOOT.bin文件時(shí)發(fā)現(xiàn)沒(méi)有.mcs文件,再查資料發(fā)現(xiàn)可以通過(guò)bootgen命令可以生成.mcs文件;最后從Create Boot Image窗口的上面部分有說(shuō)明,只要將輸出文件BOOT.bin的后綴改為.mcs即可生成.mcs格式文件。有了.mcs文件就可以下載了,Xilinx Tools ->Program Flash得到以下窗口

            選擇.mcs文件點(diǎn)擊Program即可。細(xì)心的朋友可以發(fā)現(xiàn)在選擇.mcs文件時(shí)也可以選擇.bin文件,經(jīng)測(cè)試直接選擇.bin文件下載到flash也可以成功啟動(dòng),可能這就是新版SDK中不同時(shí)生成.mcs文件的原因吧。

            然后設(shè)置板子為QSPI啟動(dòng),重新上電即可。

            使用DDR

            使用DDR方式即可需要使用FSBL來(lái)加載裸機(jī)程序,同時(shí)當(dāng)然也支持配置PL部分.bit文件。所以除了裸機(jī)程序工程外還需要建立FSBL程序工程,該工程直接用SDK自帶FSBL模板即可,如下圖

            注意選擇使用與裸機(jī)程序同一個(gè)BSP;點(diǎn)擊next

            這里選擇Zynq FSBL,然后點(diǎn)擊finish即可生成FSBL工程。

            注意:若提示不能創(chuàng)建則通常是在BSP中沒(méi)有打開(kāi)對(duì)應(yīng)的庫(kù)(xilffs和xilrsa),如下圖

            在“Project Explorer”窗口BSP上右鍵->Board Support Package Setting,打開(kāi)兩個(gè)庫(kù)即可

            從SD啟動(dòng)

            類(lèi)似的,從SD卡啟動(dòng)也需要BOOT.bin文件,生成方法類(lèi)似前面,只是在Create zynq Boot Image窗口需要Add:
            選擇FSBL作為bootloader
            選擇PL部分.bit文件
            選擇裸機(jī)程序.elf

            以上順序需要注意,如下圖

            同上,這時(shí)只要將BOOT.bin復(fù)制到SD卡,板子設(shè)置為SD卡啟動(dòng),在板子重新上電即可。

            從QSPI啟動(dòng)

            類(lèi)似只用OCM的情況,將.bin下載然后然后設(shè)置板子為QSPI啟動(dòng),重新上電即可。

            這里需要特別注意,“使用DDR”時(shí)用SD卡和QSPI啟動(dòng)需要在vivado中將zynq上SD模塊和QSPI模塊打開(kāi),不像“只用OCM”時(shí)不打開(kāi)這些模塊也能啟動(dòng);分析查看FSBL程序可知必須要定義了XPAR_PS7_DDR_0_S_AXI_BASEADDR才能從SD或QSPI啟動(dòng),所以這里也必須打開(kāi)DDR模塊。

            注意
            調(diào)試或下載出錯(cuò)時(shí)推薦處理步驟,直到問(wèn)題解決
            . 重新插拔下載器
            . 板子斷電后上電
            . 關(guān)閉SDK重新打開(kāi)(同時(shí)最好只打開(kāi)一個(gè)SDK)
            . 檢查調(diào)試選項(xiàng),是否設(shè)置好
            . 檢查zynq設(shè)置(如當(dāng)用到DDR時(shí),若選擇DDR型號(hào)不對(duì)也是不能調(diào)試的)

            若啟動(dòng)不正??梢試L試調(diào)試FSBL:
            . 若要查看FSBL打印調(diào)試信息,則在fsbl_debug.h中定義宏FSBL_DEBUG_INFO(#define FSBL_DEBUG_INFO),當(dāng)然在調(diào)試設(shè)置中也要設(shè)置STDIO為對(duì)應(yīng)UART(默認(rèn)波特率為115200)或使用其它UART查看打印信息
            . 調(diào)試FSBL時(shí)注意,當(dāng)改變板子啟動(dòng)方式后需要重新上電或POR復(fù)位后才生效



            關(guān)鍵詞: Xilinx RAM

            評(píng)論


            相關(guān)推薦

            技術(shù)專(zhuān)區(qū)

            關(guān)閉