zynq晶元+linux系統搭建完成後,希望通過qspi-flash的方式來進行程式載入。
qspi-flash啟動則需要燒錄以下檔案:
boot.bin : fsbl.elf + uboot.elf準備完成之後,將這些檔案燒錄到qspi flash中有兩種方法:uimage : linux核心
zynq_board.dtb : zynq平台的裝置樹
uramdisk.image.gz : 檔案系統
design.bit : fpga程式位元流檔案(注意:在第二種燒錄方法中需要使用design.bin檔案)
1、以上5中檔案在sdk中直接製作成乙個boot.bin,通過jtag直接燒錄到flash中。本文主要記錄如何通過sdk來引導 uboot,後續章節將會詳細介紹flash如何分割槽且如何通過tftp和sf命令進行燒錄。缺點:一旦程式需要更新,尤其是其中一種程式需要更新,都要一起重新生成bin檔案,繁瑣耗時。
2、通過sdk引導啟動uboot,然後通過uboot中的tftp和sf命令將以上5個檔案分割槽燒錄到flash中。
首先將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...