1.簡述
使用像ZYNQ這樣的SOC架構的FPGA,開發難度比較大的,能熟練開發FPGA已經很難了,ZYNQ需要硬件邏輯開發,然后還要開發ARM。在學校使用ZYNQ一年多的時間里了,斷斷續續用ZYNQ做了很多項目,總的使用體驗就是:很爽,同時也很酸爽。今天專門記一下c/c++ 的指針,這也不難,就是容易迷糊,一周不寫c代碼,指針就不會用了,每次都要花點時間重新撿起來,為了提高效率,還是總結一下,結合vivado 的sdk開發工具記錄。
2.正文
1)準備
vivado搭建一個簡單PS 的工程(記得勾選uart),生成bit,導出硬件,啟動sdk,新建helloworld的工程就行。然后跑一下,看串口是否能打印helloworld。如果可以,這就成功搭建工程了。
2)開始
(1)進入debug模式,頁面如下,黃框是現在代碼運行的位置,我們要點擊紅框中的按鈕進行單步調試(這個對熟悉單片機或者arm開發的來說很熟悉),我們簡單在hello world源碼上簡單添加藍框中的代碼??梢钥吹椒奂t框中有變量的信息,現在的值是不對的,因為data那行代碼還沒運行,點擊紅框,值就會變成我們代碼賦的值。

(2)點擊后,可以看到data值變了,這是十進制的數,可以用計算器轉成16進制數,是一樣的。把鼠標放到data上面會顯示data信息,可以知道data地址,如紅框中的。在右下角,點擊進入memory ,點擊加號,填入data的地址,就可以知道現在data在memory中的值了。這些是sdk簡單調試技巧。

(3)添加如下指針代碼,運行,查看memory中0x01000000地址中的值,因為是char型,是一個字節,arm都是32位的,所以這個數據占低8位,數值正確。

(4)把鼠標放到srcDPtr上,如下圖顯示信息。他的值是0x01000000,而他的地址是0x10c020,這兒還是挺疑惑的??梢赃@么理解,我們給srcDPtr賦0x01000000,這是srcDPtr是變量,那么也應該有對應的memory地址。這兒就可以完全理解指針了,指針變量的值是對應地址的值,指針變量的值本身也需要memory存儲,所以他也有地址。挺繞的,所以隔幾天不寫c代碼,看著容易懵。

(5)添加如下代碼,按之前方法求證。

3.總結
學習過程很漫長,現在回首一看,原來自己走了這么遠了,望向遠方,繼續前進?。?!
審核編輯 :李倩
-
FPGA
+關注
關注
1660文章
22410瀏覽量
636260 -
SDK
+關注
關注
3文章
1101瀏覽量
51714 -
Vivado
+關注
關注
19文章
857瀏覽量
71106
發布評論請先 登錄
入門宇樹機器人開發:從SDK源碼探索到實戰操作
恩智浦嵌入式HMI應用開發工具GUI Guider 1.10.1全新上線
PYQT 應用程序框架及開發工具
三種開發工具的功能和優勢
eForce無線通信軟件開發工具包兼容WLAN模塊WKR612AA1
IAR開發工具鏈有什么優勢
IQM 宣布 Resonance 量子云平臺重大升級,推出全新軟件開發工具包
在IAR Arm開發工具鏈中--function_sections編譯選項的使用
IAR開發平臺升級Arm和RISC-V開發工具鏈,加速現代嵌入式系統開發
AI開發工具分類與功能
鴻蒙北向開發OpenHarmony5.0 DevEco Studio開發工具安裝與配置
結合vivado的sdk開發工具記錄
評論