ZYNQ平台在SDK下引導啟動UBOOT

2021-09-02 08:14:58 字數 1518 閱讀 4115

zynq晶元+linux系統搭建完成後,希望通過qspi-flash的方式來進行程式載入。

qspi-flash啟動則需要燒錄以下檔案:

boot.bin : fsbl.elf + uboot.elf

uimage : linux核心

zynq_board.dtb : zynq平台的裝置樹

uramdisk.image.gz : 檔案系統

design.bit : fpga程式位元流檔案(注意:在第二種燒錄方法中需要使用design.bin檔案

準備完成之後,將這些檔案燒錄到qspi flash中有兩種方法:

1、以上5中檔案在sdk中直接製作成乙個boot.bin,通過jtag直接燒錄到flash中。

缺點:一旦程式需要更新,尤其是其中一種程式需要更新,都要一起重新生成bin檔案,繁瑣耗時。

2、通過sdk引導啟動uboot,然後通過uboot中的tftp和sf命令將以上5個檔案分割槽燒錄到flash中。

本文主要記錄如何通過sdk來引導 uboot,後續章節將會詳細介紹flash如何分割槽且如何通過tftp和sf命令進行燒錄。

首先將vivado生成的bit檔案匯入到sdk中如下圖所示

啟動sdk後,在sdk中啟動xmd控制中心

然後將開發平台串列埠接入pc,因為在sdk中引導uboot後,在uboot啟動過程中將會把列印資訊通過串列埠輸出。

完成以上操作之後,在xmd控制中心輸入一下命令:

connect arm hw

cd d:/project_1/project_1.sdk/top_hw_platform_0(根據自己生成的檔案目錄)

fpga -f fpga.bit(**根據自己實際情況,如果你的串列埠使用了emio則必須要首先啟動fpga程式,否則後續無法進行串列埠列印**)

source ps7_init.tcl

ps7_init

dow u-boot.elf

con

之後可以看到uboot開始啟動,並在串列埠進行列印。

#除錯中的問題記錄:

1、通過第2中方法將程式燒錄到flash中需要注意fpga程式需要使用bin檔案。

2、出現過串列埠不列印的現象是由於使用emio則必須要在xmd控制中心載入fpga程式

3、出現過網口不通的現象是由於zynq的硬體配置時沒有將網路的相關管腳全部勾選。

4、在ps_init過程中出現mmu section translation fault 主要是由於自己已經燒錄的linux核心已經啟動,應該將原來燒錄的停在uboot階段即可。

SDK在VC下的設定

1.sdk和api的概念 請參考 2.visual studio的sdk visual studio 6.0自帶的sdk是1998年的,目錄為c program files microsoft visual studio vc98 這裡簡記為vs6sdkdir。以下為開啟vc6選單tools opt...

在Linux下啟動Oracle

一 在 linux 下啟動oracle 切換到oracle 使用者許可權 su oracle 接著輸入 sqlplus as sysdba 原本的畫面會變為 sql 金智虛擬機器截圖如下 接著請輸入 sql startup 就可以正常的啟動資料庫了。另外停止資料庫的指令如下 sql shutdown...

在win下啟動linux

在windows me下 首先 啟動windows me,假定光碟機為g linux安裝在 dev hda3,將linux安裝光碟放入光碟機,在視窗dos提示符下執行以下幾條命令 注意核心檔案vmlinuz可能是以vmlinuz開始的其它名字 c md linux cd linux g cd dos...