Vivado SDK程序无法load到SRAM中调试过程

2016-12-24 22:01 阅读 55 次 评论 0 条

正确load程序到SRAM中并运行的方法请移步zynq程序与数据在SRAM中运行软件调试。这里是将排查过程记录一下。

在load程序的过程中提示APER_CLK_CTRL的寄存器bit24未使能,所以找smc时钟问题。

smc有两个时钟

clip_image002

两个时钟的分工,cpu_1x时钟对应于控制与状态寄存器的访问,对应于APB总线接口,供ARM核访问和控制状态寄存器使用。

而smc_ref时钟对应smc控制器工作时钟,供外部SRAM芯片与SMC控制器工作使用。

clip_image003

clip_image005

APER_CLK_CTRL寄存器的bit24控制的是cpu_1x时钟。

smc_ref_clk控制寄存器

clip_image007

clip_image009

SMC_CLK_CTRL寄存器控制的smc_ref时钟。

从以上定义看出是cpu_1x时钟未使能,ARM无法访问smc控制与状态寄存器。

从而开始查询硬件的初始化,在hw_platform中找到ps7_init.c与ps7_init.tcl文件,检查其中对应APER_CLK_CTRL的寄存器的初始化值,bit24为使能。

最终查找原因应该是vivado SDK的bug,在viavdo 2016.2 SDK版本中,运行正常。

参考文档:ug585,Zynq-7000 All Programmable SoC Technical Reference Manual(V1.11 September 27,2016)

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:Vivado SDK程序无法load到SRAM中调试过程 | 起点博客
分类:应用笔记 标签:, , ,

发表评论


表情