您尚未登录。

#1 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/MQTT/物联网 » 捡了个便宜的高级ZYNQ XC7Z010 开发板玩玩 » 2020-04-28 16:13:07

metro 说:

周末花了点时间尝试走了一遍板子的开发流程,目前移植的U-Boot已经能用了,但是NAND和网络暂时还不可用。NAND的主要问题是SPL下的驱动不完善(看来没人在Zynq上用NAND启动233),网络的主要问题是还没搞定EMIO的初始化(不过应该加载.bit文件后就能用了?不确定驱动对百兆网络支持如何)。后面要是解决了这些bug就把U-Boot发上来 smile

这里记录一下中间遇到的一些问题。

入门的话,我觉得EBAZ4205 ZYNQ 7Z010 裸机程序NAND固化 JTAG调试方法这篇说得最好,按照他的做法一次就能过了。唯一想吐槽的是NAND,我从Winbond官网找到了对应的datasheet,结果一通设置之后竟然读不出NAND的信息。。反而是博客里面看起来不靠谱的这个设置是可用的,不知道是什么原因。

在熟悉了开发的流程之后,如果之后不需要从SDK生成和编译代码(比如说编译U-Boot),那么比较建议使用XSCT,这是Vivado自带的命令行下的工具,比SDK好用多了。执行的流程大概是这样的:

connect # 连接到开发板
target 2 # 指定调试目标为2,即双核中的#0核

# 初始化Zynq,如果需要初始化外设(例如SDRAM)则需要执行,如果只是要加载到OCM则可以不用执行
source xxx/ps7_init.tcl # 加载tcl文件,一般位于项目目录的yyy.sdk/zzz_wrapper/文件夹中
ps7_init # 执行初始化流程,可能需要一点时间

# 加载elf文件,由于elf文件自带执行地址,因此不需要指定载入地址,且会自动设置pc到开始位置
dow xxx.elf
# 也可以加载普通文件(包括二进制文件),但是需要指定载入地址,且需要加上-data
dow -data xxx.yyy addr1
rwr pc addr2 # 设置pc到开始位置

# 加载bitstream
fpga -file xxx.bit # 加载bitstream,一般位于项目目录的yyy.sdk/zzz_wrapper/文件夹中

# 开始执行
con

以上方法试验过,可以启动U-Boot的SPL和本体(本体可以初始化后直接丢到SDRAM执行,挺方便的),但是自己编译的lwip Echo Server似乎用不了(理论上需要分别加载bitstream和elf),可以启动但提示初始化失败,不知道是什么原因。

另外顺便吐槽一下Create Boot Image功能,在指定elf文件的时候一切正常,但在指定bin文件的时候并不会计算大小,而是直接置零,按照定义置零表示XIP,因此在SD卡上就不能正常启动了 roll 。还有就是建议使用最新的Vivado和Zynq TRM,否则对于Boot Header的定义会有出入。。


大神搞定了吗?我自己移植的uboot,不管是用的petalinux还是源码移植,网络都是不可用的,在设备树里找到了phyaddr并修改为0,但网络仍然不通,硬件bit文件是通过SDK生成镜像时一并添加进去生成了BOOT.BIN文件。还有在menuconfig里配置了saveenv选项,但是在uboot下使用此领命提示无此命令。

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn