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

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

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

基于ZYNQ的multiBoot測試說明

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-16 16:21 ? 次閱讀

1、軟件版本vivado202001。

2、其中程序的源文件都是拷貝過來的只是稍作修改,對(duì)其中的操作步驟做細(xì)化分析,參考文檔UG585
https://blog.csdn.net/weixin_41922484/article/details/104037513

3、串口打印FSBL中啟動(dòng)信息。
只需要在以下位置的的fsbl_debug.h中,添加一個(gè)宏定義即可。

#define FSBL_DEBUG_INFO

pYYBAGIMpOOAPp3vAAUvN8aqfnI461.png

4、新建兩個(gè)app
hello_test1.c

#include
#include "platform.h"
#include "xil_printf.h"
#include "xil_io.h"
#include "sleep.h"

#define PSS_RST_CTRL_REG 0xF8000200 //PSS_RST_CTRL寄存器,絕對(duì)地址,
#define SLCR_UNLOCK_ADDR 0xF8000008 //SLCR_UNLOCK寄存器,絕對(duì)地址,
#define UNLOCK_KEY 0xDF0D //使能碼
#define PSS_RST_MASK 0x01 //復(fù)位碼

void PsSoftwareReset(void)
{
Xil_Out32(SLCR_UNLOCK_ADDR, UNLOCK_KEY); //寫使能
Xil_Out32(PSS_RST_CTRL_REG, PSS_RST_MASK); //復(fù)位
}

#define XDCFG_MULTIBOOT_ADDR_OFFSET_REG 0xF800702C //MULTIBOOT寄存器,絕對(duì)地址,
#define XDCFG_UNLOCK_OFFSET_ADDR 0xF8007034 //XDCFG_UNLOCK_寄存器,絕對(duì)地址,
#define UNLOCK_XDCFG_KEY 0x757BDF0D //使能碼

#define APP1_LOCATION 0
#define APP2_LOCATION 128

void ModifyMultiBoot(void)
{
Xil_Out32(XDCFG_UNLOCK_OFFSET_ADDR , UNLOCK_XDCFG_KEY ); //寫使能
Xil_Out32(XDCFG_MULTIBOOT_ADDR_OFFSET_REG , APP2_LOCATION ); //更改MULTIBOOT
}

int main()
{
init_platform();
print("111111111111111111111111111111111111111\r\n");
sleep(5);
ModifyMultiBoot();
PsSoftwareReset();
cleanup_platform();
return 0;
}

hello_test2.c

#include
#include "platform.h"
#include "xil_printf.h"
#include "xil_io.h"
#include "sleep.h"

#define PSS_RST_CTRL_REG 0xF8000200 //PSS_RST_CTRL寄存器,絕對(duì)地址,
#define SLCR_UNLOCK_ADDR 0xF8000008 //SLCR_UNLOCK寄存器,絕對(duì)地址,
#define UNLOCK_KEY 0xDF0D //使能碼
#define PSS_RST_MASK 0x01 //復(fù)位碼

void PsSoftwareReset(void)
{
Xil_Out32(SLCR_UNLOCK_ADDR, UNLOCK_KEY); //寫使能
Xil_Out32(PSS_RST_CTRL_REG, PSS_RST_MASK); //復(fù)位
}

#define XDCFG_MULTIBOOT_ADDR_OFFSET_REG 0xF800702C //MULTIBOOT寄存器,絕對(duì)地址,
#define XDCFG_UNLOCK_OFFSET_ADDR 0xF8007034 //XDCFG_UNLOCK_寄存器,絕對(duì)地址,
#define UNLOCK_XDCFG_KEY 0x757BDF0D //使能碼

#define APP1_LOCATION 0
#define APP2_LOCATION 128

void ModifyMultiBoot(void)
{
Xil_Out32(XDCFG_UNLOCK_OFFSET_ADDR , UNLOCK_XDCFG_KEY ); //寫使能
Xil_Out32(XDCFG_MULTIBOOT_ADDR_OFFSET_REG , APP2_LOCATION ); //更改MULTIBOOT
}

int main()
{
init_platform();
print("222222222222222222222222222222222\r\n");
sleep(5);
ModifyMultiBoot();
PsSoftwareReset();
cleanup_platform();
return 0;
}

5、分別生成bin文件,且需要注意生成的bin文件大小,因?yàn)槭欠侄螣龑慺lash,第一個(gè)bin與第二個(gè)bin的間隔要比第一個(gè)bin的文件要大,且間隔為32KB的整數(shù)倍,此次實(shí)驗(yàn)中,生成的bin都是2.2MB,所以把第二個(gè)的bin起始地址設(shè)置為128*32KB。

6、在JTAG模式下燒寫FLASH

poYBAGIMpOeAfo3lAAZNmFyRIwU100.png

pYYBAGIMpOqAQZAVAAZYQe3Id4A946.png

7、在QSPI模式下啟動(dòng)
串口打印輸出
[15:07:38.243]收←◆
Xilinx First Stage Boot Loader
Release 2020.1 Mar 24 2021-03:07:57
Devcfg driver initialized
Silicon Version 3.1
Boot mode is QSPI
Single Flash Information
FlashID=0xEF 0x40 0x19
WINBOND 256M Bits
QSPI is in single flash connection
QSPI is in 4-bit mode
QSPI Init Done
Flash Base Address: 0xFC000000
Reboot status register: 0x60480000
Multiboot Register: 0x0000C000
Image Start Address: 0x00000000
Partition Header Offset:0x00000C80
Partition Count: 3
Partition Number: 1
Header Dump
Image Word Len: 0x0007F2E8
Data Word Len: 0x0007F2E8
Partition Word Len:0x0007F2E8
Load Addr: 0x00000000
Exec Addr: 0x00000000
Partition Start: 0x000065D0
Partition Attr: 0x00000020
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xFFE7BF06
Bitstream
In FsblHookBeforeBitstreamDload function

[15:07:38.610]收←◆P
[15:07:38.640]收←◆CAP:StatusReg = 0x40000A30
PCAP:device ready
PCAP:Clear done
Level Shifter Value = 0xA
Devcfg Status register = 0x40000A30
PCAP:Fabric is Initialized done
PCAP register dump:
PCAP CTRL 0xF8007000: 0x4C00E07F
PCAP LOCK 0xF8007004: 0x0000001A
PCAP CONFIG 0xF8007008: 0x00000508
PCAP ISR 0xF800700C: 0x0802000B
PCAP IMR 0xF8007010: 0xFFFFFFFF
PCAP STATUS 0xF8007014: 0x50000F30
PCAP DMA SRC ADDR 0xF8007018: 0x00100001
PCAP DMA DEST ADDR 0xF800701C: 0xFFFFFFFF
PCAP DMA SRC LEN 0xF8007020: 0x0007F2E8
PCAP DMA DEST LEN 0xF8007024: 0x0007F2E8
PCAP ROM SHADOW CTRL 0xF8007028: 0xFFFFFFFF
PCAP MBOOT 0xF800702C: 0x0000C000
PCAP SW ID 0xF8007030: 0x00000000
PCAP U
[15:07:38.694]收←◆NLOCK 0xF8007034: 0x757BDF0D
PCAP MCTRL 0xF8007080: 0x30800100

DMA Done !

FPGA Done !
In FsblHookAfterBitstreamDload function
Partition Number: 2
Header Dump
Image Word Len: 0x00002002
Data Word Len: 0x00002002
Partition Word Len:0x00002002
Load Addr: 0x00100000
Exec Addr: 0x00100000
Partition Start: 0x000858C0
Partition Attr: 0x00000010
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xFFD744C8
Application
Handoff Address: 0x00100000
In FsblHookBeforeHandoff function
SUCCESSFUL_HANDOFF
FSBL Status = 0x1
11111111111111111111111111111111111111111

[15:07:43.911]收←◆
Xilinx First Stage Boot Loader
Release 2020.1 Mar 24 2021-03:07:57
Devcfg driver initialized
Silicon Version 3.1
Boot mode is QSPI
Single Flash Information
FlashID=0xEF 0x40 0x19
WINBOND 256M Bits
QSPI is in single flash connection
QSPI is in 4-bit mode
QSPI Init Done
Flash Base Address: 0xFC000000
Reboot status register: 0x60480000
Multiboot Register: 0x0000C080
Image Start Address: 0x00400000
Partition Header Offset:0x00400C80
Partition Count: 3
Partition Number: 1
Header Dump
Image Word Len: 0x0007F2E8
Data Word Len: 0x0007F2E8
Partition Word Len:0x0007F2E8
Load Addr: 0x00000000
Exec Addr: 0x00000000
Partition Start: 0x000065D0
Partition Attr: 0x00000020
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xFFE7BF06
Bitstream
In FsblHookBeforeBitstreamDload function

[15:07:44.276]收←◆PCAP:StatusReg = 0x40000A30
PCAP:device ready
PCAP:Clear done
Level Shifter Value = 0xA
Devcfg Status register = 0x40000A30
PCAP:Fabric is Initialized done
PCAP register dump:
PCAP CTRL 0xF8007000: 0x4C00E07F
PCAP LOCK 0xF8007004: 0x0000001A
PCAP CONFIG 0xF8007008: 0x00000508
PCAP ISR 0xF800700C: 0x0802000B
PCAP IMR 0xF8007010: 0xFFFFFFFF
PCAP STATUS 0xF8007014: 0x50000F30
PCAP DMA SRC ADDR 0xF8007018: 0x00100001
PCAP DMA DEST ADDR 0xF800701C: 0xFFFFFFFF
PCAP DMA SRC LEN 0xF8007020: 0x0007F2E8
PCAP DMA DEST LEN 0xF8007024: 0x0007F2E8
PCAP ROM SHADOW CTRL 0xF8007028: 0xFFFFFFFF
PCAP MBOOT 0xF800702C: 0x0000C080
PCAP SW ID 0xF8007030: 0x00000000
PCAP UNLOCK 0xF8007034: 0x757BDF0D
PCAP MCTRL 0xF8007080: 0x30800100

DMA Done !

FPGA Done !
In FsblHookAfterBitstreamDload function
Partition Number: 2
Header Dump
Image Word Len: 0x00002002
Data Word Len: 0x00002002
Partition Word Len:0x00002002
Load Addr: 0x00100000
Exec Addr: 0x00100000
Partition Start: 0x000858C0
Partition Attr: 0x00000010
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xFFD744C8
Application
Handoff Address: 0x00100000
In FsblHookBeforeHandoff function
SUCCESSFUL_HANDOFF
FSBL Status = 0x1
22222222222222222222222222222222222222222

測試成功。

審核編輯:符乾江

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

    關(guān)注

    8

    文章

    4927

    瀏覽量

    125948
  • Zynq
    +關(guān)注

    關(guān)注

    9

    文章

    604

    瀏覽量

    47012
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    配置直接測試模式的低功耗藍(lán)牙器件應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《配置直接測試模式的低功耗藍(lán)牙器件應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 11:06 ?0次下載
    配置直接<b class='flag-5'>測試</b>模式的低功耗藍(lán)牙器件應(yīng)用<b class='flag-5'>說明</b>

    精密ADC系統(tǒng)EMC合規(guī)性測試應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《精密ADC系統(tǒng)EMC合規(guī)性測試應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-12 09:18 ?0次下載
    精密ADC系統(tǒng)EMC合規(guī)性<b class='flag-5'>測試</b>應(yīng)用<b class='flag-5'>說明</b>

    WL18xx Bluetopia PM藍(lán)牙射頻測試應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《WL18xx Bluetopia PM藍(lán)牙射頻測試應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:36 ?0次下載
    WL18xx Bluetopia PM藍(lán)牙射頻<b class='flag-5'>測試</b>應(yīng)用<b class='flag-5'>說明</b>

    [XILINX] 正點(diǎn)原子ZYNQ7035/7045/7100開發(fā)板發(fā)布、ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2!

    正點(diǎn)原子FPGA新品ZYNQ7035/7045/7100開發(fā)板,ZYNQ 7000系列、雙核ARM、PCIe2.0、SFPX2! 正點(diǎn)原子Z100 ZYNQ開發(fā)板,搭載Xilinx Zynq
    發(fā)表于 09-02 17:18

    ad9236+ad8331利用zynq采樣,顯示獲得的信號(hào)失真是為什么?

    有這個(gè)問題存在。(AD9236的D0-D11通過杜邦線連接ZYNQ開發(fā)板) 已經(jīng)測試的可能問題:1.更換直流電源測試,仍然出現(xiàn)這個(gè)問題。 2. 更換信號(hào)連接線為同軸線纜,仍然出現(xiàn)這個(gè)問題。3.
    發(fā)表于 05-28 06:11

    沒用過zynq今天在看解析是發(fā)現(xiàn)汽車的CID上有用這個(gè),不知道zynq有什么優(yōu)勢?

    沒用過zynq今天在看解析是發(fā)現(xiàn)汽車的CID上有用這個(gè),不知道zynq有什么優(yōu)勢?
    發(fā)表于 04-23 15:01

    AMD Xilinx 7系列FPGA的Multiboot多bit配置

    Multiboot是一種在AMD Xilinx 7系列FPGA上實(shí)現(xiàn)雙鏡像(或多鏡像)切換的方案。它允許在FPGA中加載兩個(gè)不同的配置鏡像,并在需要時(shí)切換。
    的頭像 發(fā)表于 02-25 10:54 ?1006次閱讀
    AMD Xilinx 7系列FPGA的<b class='flag-5'>Multiboot</b>多bit配置

    AN-UA-020 DA7202板測試指南應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《AN-UA-020 DA7202板測試指南應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 02-01 09:54 ?0次下載
    AN-UA-020 DA7202板<b class='flag-5'>測試</b>指南應(yīng)用<b class='flag-5'>說明</b>

    基于Zynq FPGA對(duì)雷龍SD NAND的測試

    文章目錄一、SDNAND特征1.1SD卡簡介1.2SD卡Block圖二、SD卡樣片三、Zynq測試平臺(tái)搭建3.1測試流程3.2SOC搭建四、軟件搭建五、測試結(jié)果六、總結(jié)一、SDNAND
    的頭像 發(fā)表于 12-22 17:45 ?401次閱讀
    基于<b class='flag-5'>Zynq</b> FPGA對(duì)雷龍SD NAND的<b class='flag-5'>測試</b>

    基于Zynq FPGA對(duì)雷龍SD NAND的測試

    文章目錄 一、SD NAND特征 1.1 SD卡簡介 1.2 SD卡Block圖 二、SD卡樣片 三、Zynq測試平臺(tái)搭建 3.1 測試流程 3.2 SOC搭建 四、軟件搭建 五、測試
    發(fā)表于 12-22 17:43

    GD32VW553認(rèn)證測試指南應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《GD32VW553認(rèn)證測試指南應(yīng)用說明.pdf》資料免費(fèi)下載
    發(fā)表于 12-14 10:10 ?0次下載
    GD32VW553認(rèn)證<b class='flag-5'>測試</b>指南應(yīng)用<b class='flag-5'>說明</b>

    使用 PCIE 更新 AMD ZYNQ? 的 QSPI Flash 參考設(shè)計(jì)

    簡介 AMD ZYNQ? 7000 的 S_AXI 端口提供了外設(shè)訪問 PS 內(nèi)部外設(shè)控制器的接口,這其中包括 4 個(gè) S_AXI_HP 端口以及兩個(gè) S_AXI_GP 端口。一般來說,可以訪問
    發(fā)表于 11-30 18:49

    負(fù)載瞬態(tài)測試簡化說明

    電子發(fā)燒友網(wǎng)站提供《負(fù)載瞬態(tài)測試簡化說明.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 16:11 ?0次下載
    負(fù)載瞬態(tài)<b class='flag-5'>測試</b>簡化<b class='flag-5'>說明</b>

    如何在Zynq SoC上開始使用FreeRTOS

    該項(xiàng)目演示如何在 Zynq SoC 上開始使用 FreeRTOS。
    的頭像 發(fā)表于 10-18 09:44 ?1517次閱讀
    如何在<b class='flag-5'>Zynq</b> SoC上開始使用FreeRTOS

    armbian、 hdmi、 zynq、 mpsoc、 rk3399的一一解釋

    armbian、 hdmi、 zynq、 mpsoc、 rk3399
    的頭像 發(fā)表于 10-13 18:11 ?1659次閱讀