小梅哥的ZYNQ裸机(无操作系统)教程

参考视频:09_Zynq SoC ARM裸机程序调试方法_哔哩哔哩_bilibili

一、搭建ZYNQ系统

打开mio

配置DDR

另外,视频里面说,一块DDR的数据位宽是16,pcb上面把两块DDR串起来用了,所以数据位宽到了32

自动系统配置

导出的FIXED_IO里面有需要的MIO

关闭不必要的端口,避免报错

 使用检查工具,查看设计是否错误

生成输入的代码generate output product

如果有端口,但是不用,就会存在报错。

综合布局布线之后,导出硬件,用来给SDK使用

二、写GPIO 从MIO7引出

找到GPIO的bank 

如下所示,要找到MIO7,引到GPIO bank 0里面

所以

或者是不找bank,直接用函数去解决

三、查看示例工程

打开示例工程

在赛灵思的sdk

示例工程的位置

四、赛灵思的SDK调试

怎么进入debug模式

选择system debug,因为效果更好更强大

配置

选择调试0号cpu,点击debug就可以进入调试状态

如果出现询问

重要按键解析

单步执行等

1是全速运行完毕

2是进入函数内部

3是单步执行

4是step return 即返回主函数

添加断点

在图中蓝色条的地方,双击设置断点即可。

查看和删除断点

可以在如图所示位置查看断点的位置

可以单击方框或者ctrl 或者shift选中,然后删除断点。

断点调试

如果断点在一个可能不会执行的到的地方,那么使用“全速运行”不会触发断点。

添加全局变量

如下图,veriable变量处是没有值的,需要手动添加。

选中变量i之后,选择Add Watch Expression

变量的值就会出现在expressions

注意:如果板子断联了,那么会不能显示添加变量选项

添加局部变量

step_in 函数之后,局部变量会自动在veriable中显示出来。

强行赋值,进入原本进不到的函数进行调试

这个方式有点modelsim的,force  赋值的感觉

原本

修改之后,就能调试原本进不了的循环

设置断点属性,限定全速运行时条件

双击确认断点位置

设置断点属性

设置进入断点的条件

memory查看GPIO外设寄存器的值

找到基地址

参考在赛灵思的SDK寻找GPIO,SPI,I2C等寄存器的基址-CSDN博客

添加memory,查看相关基址的寄存器地址(没看懂,后面再说)

查看DDR3里面的内容

确认DDR的基地址

所以DDR的基地址DDR_BASEARDDR = 0x10000000..

添加监视器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值