OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1474|回复: 8

[XILINX] Zynq7020通过TCP协议远程更新QSPI FLASH实验

[复制链接]

1

主题

8

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2023-7-31
在线时间
4 小时
发表于 2024-2-23 14:21:55 | 显示全部楼层 |阅读模式
2金钱
如题。在《领航者ZYNQ之嵌入式SDK开发指南》的第四十章中,将需要更新的BOOT.bin放到SD卡中,然后重启加载更新的镜像。在这个过程中,创建BOOT.bin文件时,只包含了CPU0和CPU1的程序,但是没有包含PL侧的.bit文件。我遇到的问题:当BOOT.bin不包含.bit文件时,是可以更新成功,并且重启之后可以加载新的镜像;但是,当我把.bit文件同时包含在BOOT.bin中,重新加载就起不来了。!!??
第一次我遇到的问题是:DMA Done!结束后,会进入到FPGA Done!这个阶段,但是一直卡在FPGA Done!这里。就是没有成功加载FPGA。根据对比DevC寄存器的中断状态,我把拉高FPGA状态那个位置的掩码修改了一下(见图1),然后显示是FPGA Done!加载成功了,但是在.bit中点亮的PL侧的灯,并没有亮。
第二个我遇到的问题:FPGA Done!结束后,会继续向下执行,但是又出现了一个奇怪的问题(见图2),查询故障码0xA301,说是“Undefined INT Exception”。但是程序并没有卡在这,而是继续向下执行了,估计是在寻找写一个有效镜像?但是检索失败了,又出现了故障码0xA00E,这下是彻底停住了。
有没有哪位大佬遇到过这些问题呀!!有偿有偿!



最佳答案

查看完整内容[请看2#楼]

解决了,感谢一位大佬的帮助。是因为上位机XNET在传输BOOT.bin时,在每一兆的数据前面添加了一个附加码,这个导致传输的文件有问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2023-7-31
在线时间
4 小时
 楼主| 发表于 2024-2-23 14:21:56 | 显示全部楼层
解决了,感谢一位大佬的帮助。是因为上位机XNET在传输BOOT.bin时,在每一兆的数据前面添加了一个附加码,这个导致传输的文件有问题。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2023-7-31
在线时间
4 小时
 楼主| 发表于 2024-2-23 14:30:00 | 显示全部楼层
1.PNG 2.PNG
回复

使用道具 举报

0

主题

60

帖子

0

精华

高级会员

Rank: 4

积分
688
金钱
688
注册时间
2021-3-25
在线时间
137 小时
发表于 2024-2-24 09:53:06 | 显示全部楼层
如果代码里有用到中断的话,可以先设置并打开中断异常处理功能
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2022-10-13
在线时间
0 小时
发表于 2024-2-27 16:10:37 | 显示全部楼层
这个功能应该不难吧!!我们都实现了呀!!参考正点原子或者黑金ZYNQ工程都有源码的呀!!
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2023-7-31
在线时间
4 小时
 楼主| 发表于 2024-2-28 09:21:01 | 显示全部楼层
383077599 发表于 2024-2-27 16:10
这个功能应该不难吧!!我们都实现了呀!!参考正点原子或者黑金ZYNQ工程都有源码的呀!!

正点原子那个例子中是只包含cpu0.elf、cpu1.elf,不包含PL侧的.bit文件的,如果按照这样是可以的。但是更新的话是需要在BOOT.bin中包含.bit、cpu0.elf、cpu1.elf,只要加上.bit文件,就不行了。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2023-7-31
在线时间
4 小时
 楼主| 发表于 2024-2-28 09:32:59 | 显示全部楼层
caojunye 发表于 2024-2-24 09:53
如果代码里有用到中断的话,可以先设置并打开中断异常处理功能

代码用的就是FSBL源码,里面有一个函数“RegisterHandlers()”,在这里是注册了异常处理程序,但是我也没发现这里用到了什么中断。后来我分析了一下串口输出的信息,第一次那个0xA301故障码的输出,是在所有东西都加载完之后才出现的,如果按照这个来看的话,出现问题的是在:fsbl_handoff.S中的“FsblHandoffExit:”中。但是不太清楚为什么所有东西都加载完了,还出现一个“Undefined INT Exception”的问题?
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2024-5-22
在线时间
1 小时
发表于 2024-5-22 14:52:54 | 显示全部楼层
你好,我也遇到和你一样的问题了,请问你是换了一个什么软件传输BOOT.bin,希望可以分享我一下
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2024-5-22
在线时间
1 小时
发表于 2024-5-22 14:55:36 | 显示全部楼层
而且我用手册中的网络调试助手发不出去,发送的是0bytes
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 14:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表