zynq qspi双核xip加载运行调试记录

2016-12-22 23:33 阅读 860 次 评论 4 条

zynq无外部存储器xip加载运行分三个阶段也都写完了。日志的发布日期是11月,但实际完成时间是12月,因为中间出现了一些问题,花了一些时间解决,所以完成时间靠后。对于嵌入式开发没有折腾就没有问题,而采用开板折腾,基本不会有硬件问题,只是软件问题,相对来讲查找问题还是要快一些。

这个日志总结一下折腾过程,有些是我的失误造成的一些问题(在三个阶段的日志中已经绕开这些坑了)。

在fsbl或者应用程序存在问题时,把生成的存在问题bin文件烧写到QSPI Flash后,不能正常加载,而这时再烧写新的bin文件,可能会出现could not stop the processor after reset,而不能program flash。

clip_image002

这时的解决办法是通过一个在ocm中运行的小程序进行在线调试,只需要load proggram到main函数处,断开仿真器连接,再次program flash就可以烧写成功了。

在编写arm1核程序时,需要修改xparameters.h文件,使其在无ddr时编译通过,所以自作聪明的将arm0的xparameters.h文件拷贝过来,调试好久才发现amr1核中的XPAR_CPU_ID定义为1,还有一些其它定义也不同。

clip_image004

由于加载模式不同,bin文件中分区数也有相应的变化。

在FSBL为XIP,arm0核为ocm时为3个分区

clip_image006

arm0应用程序还包含了存在ocm中部分分区信息,而arm1则只有存储在Flash中的分区信息。

鉴于vivado2015.1版本的坑,以后就使用vivado2016.2版本了。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:zynq qspi双核xip加载运行调试记录 | 起点博客
分类:应用笔记 标签:, , , ,

发表评论


表情

  1. themebetter
    themebetter 【农民】

    只有不断折腾,才能不断成长。

  2. will
    will【站长】

    折腾长经验

  3. xiaoche18
    xiaoche18 【农民】

    博主,您的第三阶段我调试有点问题,您是把cpu1放在flash里运行了还是l2里啊?如果是l2,fsbl是不是用阶段二的就可以?我运行后,只有cpu0的工程跑起来了,cpu1感觉没有跑起来。我用的2016.2版软件,麻烦您指导一下?谢谢,我的邮箱是1987suxiaodong@163.com。

  4. will
    will【站长】

    先跑xilinx的例程,使用相同版本的vivado,一般都可以跑通,然后再按自己的理解与思路折腾,不然没有正确的方向