结合vivado的sdk开发工具记录

描述

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那行代码还没运行,点击红框,值就会变成我们代码赋的值。

SDK

(2)点击后,可以看到data值变了,这是十进制的数,可以用计算器转成16进制数,是一样的。把鼠标放到data上面会显示data信息,可以知道data地址,如红框中的。在右下角,点击进入memory ,点击加号,填入data的地址,就可以知道现在data在memory中的值了。这些是sdk简单调试技巧。

SDK

(3)添加如下指针代码,运行,查看memory中0x01000000地址中的值,因为是char型,是一个字节,arm都是32位的,所以这个数据占低8位,数值正确。

SDK

(4)把鼠标放到srcDPtr上,如下图显示信息。他的值是0x01000000,而他的地址是0x10c020,这儿还是挺疑惑的。可以这么理解,我们给srcDPtr赋0x01000000,这是srcDPtr是变量,那么也应该有对应的memory地址。这儿就可以完全理解指针了,指针变量的值是对应地址的值,指针变量的值本身也需要memory存储,所以他也有地址。挺绕的,所以隔几天不写c代码,看着容易懵。

SDK

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

SDK

3.总结

学习过程很漫长,现在回首一看,原来自己走了这么远了,望向远方,继续前进!!!

审核编辑 :李倩

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分