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源码上简单添加蓝框中的代码。可以看到粉红框中有变量的信息,现在的值是不对的,因为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
+关注
关注
1629文章
21729浏览量
603044 -
SDK
+关注
关注
3文章
1035浏览量
45907 -
Vivado
+关注
关注
19文章
812浏览量
66478
发布评论请先 登录
相关推荐
字节跳动发布豆包MarsCo智能开发工具
哪个STM8的开发工具最好用,最便捷?
瑞萨Smart Configurator支持SEGGER集成开发工具
苹果准备推出AI软件开发工具
芯圣SDK工具,让开发更方便——SDK-HC89S105A

芯圣SDK工具 让开发更方便——HC89S103K6

芯圣SDK工具----SDK-HC89S003A

评论