zynq7020不使用xSDK的簡單開發

2021-10-03 02:47:13 字數 2495 閱讀 3809

本文主要介紹如何在不使用sdk的情況下進行zynq7020的程式設計。本實驗為點亮一盞led燈,使用mio0引腳。
廢話不多說,開始正題。

本文使用正點原子啟明星zynq7020開發板進行開發。

開發環境為ubuntu。

要使用gpio點亮led燈,第一步當然是設定gpio的引腳。將mio0對映到gpio上。因此要對slcr暫存器程式設計。程式設計之前先要對slcr進行寫使能。

把0xdf0d寫入slcr_unlock暫存器中,位址為0xf8000008。

引腳輸出屬性設定,在本實驗中gpio為輸出模式,故輸入緩衝使能(disablercvr位置1),不使用上拉電阻(pullup位置0),led電壓為3.3v(io_type位設定001),緩的cmos邊沿(speed位置0),mio0對映到gpio上(7-1位設定為0000000),三態使能(tri_enable位置0)。

把0x2600寫入mio_pin_00暫存器中,位址為0xf8000700。

該暫存器控制輸出的高低電平,0為低電平,1為高電平。本實驗led點亮為高電平,因此將第0位(mio0)設定為1。

該暫存器0為輸入,1為輸出。mio0用作gpio輸出。第0位(mio0)設定為1,。

該暫存器控制輸出是否使能,0為不是能,1為使能。因此將第0位(mio0)設定為1。

在ubuntu下新建資料夾test。在資料夾裡新建檔案start.s。

敲入**:

.text

.global _start

_start:

//設定堆疊指標

ldr sp,

=0x30000

/* 解鎖slcr暫存器為

*/ ldr r0,

=0xf8000008

ldr r1,

=0xdf0d

str r1,

[r0]

/* 設定mio0為gpio輸出

*/ ldr r0,

=0xf8000700

ldr r1,

=0x2600

str r1,

[r0]

/* 設定gpio0為輸出模式

*/ ldr r0,

=0xe000a204

ldr r1,=1

str r1,

[r0]

/* 設定gpio0輸出使能

*/ ldr r0,

=0xe000a208

ldr r1,=1

str r1,

[r0]

/* 設定gpio0輸出高電平

*/ ldr r0,

=0xe000a040

ldr r1,=1

str r1,

[r0]

loop:

b loop

新建檔案zynq.lds,此檔案為連線指令碼。

sections

}

編譯start.s,ubuntu下預先裝了xsdk,這裡使用xsdk自帶的交叉編譯器。設定環境變數。在shell執行如下命令

source /opt/sdk/sdk/2018.3/settings64.sh

arm-none-eabi-gcc -c start

.sarm-none-eabi-ld -o led.elf -tzynq.lds start

.o

至此,可執行檔案led.elf檔案已經生成,接下來使用bootgen工具把他轉換為bin檔案放入sd卡中。

新建檔案zynq.bif,內容為

myboot:

在shell執行如下命令

bootgen -image zynq.bif -o boot.bin
最後把boot.bin檔案放進sd卡中,開發板設定為sd卡啟動,插入sd卡,上電,大功告成,led亮了。

Zynq7020核心板燒寫方法

宣告 與本文件環境保持一致,能夠保證燒寫成功,專家們和使用者提出寶貴的修改意見,避免該文件成為網路垃圾。軟體環境 vivado 2017.4 操作 1.先將拷貝的源程式的.sdk資料夾刪除 2.包含bit檔案,開啟sdk順序選擇以下按鈕file export export hardware,勾選in...

zynq7020開發板 Z turn除錯計畫

參加公尺爾zynq7020開發板試用活動。收到公尺爾z turn板子後,焊接了乙個jtag轉接板,以方便除錯pl部分,對於後面的除錯部分,主要分三個部分走 1 除錯fpga部分,實現邏輯控制外圍簡單的裝置,比如點個燈什麼的,用verilog語言實現,後期需要實現外部ad板卡的資料採集,並分析相關邏輯...

ZYNQ 7020 網口測試 iperf3移植

在接觸到zynq7020開發板後,需要對網口的速率進行測試。上網查了下資料,發現iperf是個好工具,於是就想著用它來測試。然後就開始查資料 進行各種嘗試。我在嘗試的過程中遇到了各種各樣的問題,比如交叉編譯的時候出錯 移植後無法執行等。由於本人是個小白,對這種問題束手無策 只想能簡簡單單跟著步驟 輸...