xilinx vivado sdk的使用 debug调试技巧 c/c++ 指针记录

1.简述

       像ZYNQ这样的soc fpga期间,开发起来真的太难,能熟练开发fpga已经很难了,现在fpga硬件逻辑需要开发,还要开发arm。现在使用zynq fpga 一年多了,断断续续用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代码,看着容易懵。

扫描二维码关注公众号,回复: 12289659 查看本文章

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

3.总结

    学习过程很漫长,但是回首一看,原来自己走了这么原来,望向远方,继续迈步!!!

欢迎关注我的公众号:芯王国,有更多的FPGA&数字IC的技术分享,还可以获取开源FPGA项目!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40377195/article/details/104312377