當前位置:
首頁 > 最新 > EDK之路(2)——GPIO之SDK篇

EDK之路(2)——GPIO之SDK篇

在上篇文章中,說明了一下一個簡單的GPIO工程的XPS部分。XPS部分的建立說明我們的硬體平台已經搭好,類似已經做好單片機了。接下來就是在這個「單片機」中運行我們的軟體程序,即SDK部分的操作。

SDK部分

在導出到SDK時,最好新建一個sdk_workspace文件夾,這樣方便文件的管理。

關於bsp的建立,C工程的建立這裡就不再說明了。

建立好這些後,下面就要開始程序的編寫了,這時我們需要用到各種API函數來實現我們的預期功能(當然,直接通過寄存器地址操作寄存器也可以,但是使用API函數的話會方便許多)。API函數以及相關IP核驅動的說明和例子都可以在bsp中的.mss文件中查閱

下面我就通過一份代碼來說明一下程序如何編寫。

1,首先要include一些相關文件,include的文件可以在bsp->microblaze_0->include 中查看。

xparameters.h 是每個工程都必須要include的,裡面包含了各個IP核的相關參數,尤其是我們添加的IP的參數尤為關鍵。如下圖,可以看到DEVICE_ID 以及BASEADDR等數值,這些在使用相應GPIO時都會用到。

xgpio.h是GPIO的驅動文件,要使用GPIO的API函數的話,則需要將它include進來。

xil_printf.h。提供列印信息函數。如在程序中有兩種列印信息函數:

print("begin to initial GPIO
");

xil_printf("the num is %0x.
",led_display[i][1]);單純的只列印一行字的只需要使用print。而如果需要列印含有變數的信息,則需要使用xil_printf或者printf。又printf可以列印浮點數據,xil_printf只能列印定點數據。但xil_printf佔用的程序空間會小很多,建議使用xil_printf.

2,宏定義部分,為的是簡化程序的編寫,以及增加程序的可讀性

3, 在使用所有添加的IP核時,都需要先實例化。

4,使用IP核時,第一步操作就是初始化,具體操作以及返回值等參考相關API函數。後面的程序也是如此。

編寫完成後即可自動編譯,最後下載到板子即可。

關於下載,說明一下相關問題。如圖點擊進去。

出現下面列表,這表示各種下載方式,理論上選擇「auto detect」就好了,但是有些時候選該選項會出現下載不了的問題,這時候就需要選擇相應的下載方式了。

關於下載方式也有很多種:

1,通過SDK裡面的Program FPGA下載

2,通過xilinx的iMPACT或者digilent的Adept。選擇sdk_workspace里的硬體信息的文件夾,裡面會有個download.bit文件,按照ise下載的方法下載即可。

3,通過xps下載,有時我們在xps中修改了硬體信息,而SDK中的內容並沒有更改,這時我們就沒必要再到SDK中進行下載了。

首先,如下圖,我們要先選擇一個elf文件編譯到download.bit文件中(配置好後,以後的操作則不需要再進行這一步了),elf即軟體層的可執行文件,很多時候我們把download.bit文件下載到板子里後發現沒反應,這時候很有可能就是因為裡面沒有編譯elf文件進去,導致沒有軟體程序在運行,必須在SDK中點擊run來運行軟體程序。而如果download.bit中包含有elf文件,則板子載入完download.bit後,會自動運行軟體程序。

注意elf文件的路徑,在C工程的debug文件夾里。

編譯好的download.bit文件會出現在與SDK同級的implementation文件夾中(這裡的download.bit和第二個下載方式提到的download.bit不是同一個,前者是需要自己手動添加的,後者是已經自動包含elf文件信息了)。

之後,如下圖,先點擊updata bitstream(每次修改硬體後都需要執行該步驟),更新完畢後再點擊download bitstream,則會自動下載implementation中的download.bit文件。

在下載成功之後,我們就可以查看列印信息,以及debug操作了。

首先,我們要先進行配置,如下操作:

雙擊1,即出現下面的gpio Debug。點擊2,勾選Connect STDIO to Console, 然後點擊 run即可。

如下圖,我們可以查看到列印信息

之後如果我們只是單純修改了SDK中的程序的話,就不用再將所有硬體信息下載進去了,只需要點擊run即可。

debug操作和很多軟體的操作類似,就不再說明了。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 電子技術應用ChinaAET 的精彩文章:

一種基於雙DSP的高精度AD採集系統
基於PLC的碟式太陽能跟蹤控制系統設計
低功耗遠程煙霧報警系統設計

TAG:電子技術應用ChinaAET |

您可能感興趣

街|Viktoria Prischedko(1964年生於摩爾多瓦,現居德國)
Facebook收購以色列消息公司Redkix
Facebook 收購郵件整合初創公司 Redkix
Facebook收購辦公軟體公司Redkix
Facebook收購以色列公司Redkix 促進協同辦公
德國水彩畫家 Viktoria Prischedko ????一組水彩風景繪畫
安正熙NZEDKI家用美容儀讓護膚變得簡單