芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 3515|回复: 0

【AC608-7Z010】UBoot下使用网口TFTP方案烧录ZYNQ的SDMMC存储器

[复制链接]

该用户从未签到

68

主题

85

帖子

937

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
937
发表于 2023-4-5 11:16:09 | 显示全部楼层 |阅读模式
本文介绍如何使用TFTP将PC端的SD卡镜像文件写入Zynq邮票孔核心板的板载SD卡芯片
基本要求:底板必须带有以太网口,且连接到PS端的mio

第一步:将以下文件“AC608Z_Core_QSPI_Files.zip”烧写到核心板的QSPI Flash中,具体方法请参考http://www.corecourse.cn/forum.php?mod=viewthread&tid=29268

AC608Z_Core_QSPI_Files.zip (415.34 KB, 下载次数: 375)

第二步:将电脑的ip地址设置为192.168.1.99,子网掩码为255.255.255.0

image.png

第三步:下载“img分割工具.exe”和参考镜像文件“Zynq_One_DDR_Core_SD256M_Img.zip”,邮票孔核心板的板载SD卡容量为240M,我们提供的的SD卡镜像文件也为240M

img分割工具.exe (99.5 KB, 下载次数: 310)          Zynq_One_DDR_Core_SD256M_Img_V1_0.zip (14.04 MB, 下载次数: 354)

然后将“Zynq_One_DDR_Core_SD256M_Img.zip”文件解压,再将得到的SD卡镜像img文件拖到exe文件上打开,

Snipaste_2023-04-05_15-13-58.png

该程序会自动将img文件从中间切割成两个img文件,并生成一个“UserCmd.txt”文本。之所以要先切割img文件,是为了避免后续传输文件时ddr容量不够的问题。

image.png

第四步:使用Xmobaterm(或者其它串口终端软件)连接串口,用网线连接Zynq的PS端网口和电脑网口,使用QSPI启动模式(默认状态)启动Zynq,并在boot倒计时结束之前按任意键打断

image.png

第五步:下载“Tftpd64.zip”

Tftpd64.zip (490.99 KB, 下载次数: 357)

将其解压后,先运行“关闭防火墙.bat”脚本,然后使脚本窗口保持运行,不要关闭也不要输入

image.png

再运行“tftpd64.exe”程序,路径选择刚才切割的img文件的所在路径(第三步的路径),服务接口选择192.168.1.99(如果没有这个请检查第二步ip的设置和网线连接状态)

Snipaste_2023-04-05_15-16-38.png

此时点击“Show Dir”可以看到以下文件:

image.png

第六步:在第三步存放img的路径中,打开“UserCmd.txt”文本,为了叙述方便,下图标出了每条指令的编号

image.png

复制①②两条指令并输入到终端

image.png

然后复制指令③,输入到终端,Zynq会使用网口下载“切割文件1”到内存中,下载文件需要时间,请耐心等待

image.png

等到文件1读取完毕后,复制指令④将文件1写入板载SD卡内,
拷贝文件需要时间,请耐心等待

image.png

然后复制指令⑤,输入到终端,Zynq会使用网口下载“切割文件2”到内存中,下载文件需要时间,请耐心等待

image.png

等到文件2读取完毕后,复制指令⑥将文件2写入板载SD卡内,拷贝文件需要时间,请耐心等待

image.png

至此,PC端的img镜像文件已经被写入了板载SD卡内。


第七步:输入以下指令,按下回车,配置uboot的环境变量,并启动开发板运行新的SD卡内容
  1. env default -a
  2. setenv bitstream_load_address 0x100000
  3. setenv bitstream_image system.bit
  4. setenv bitstream_size 0x300000
  5. setenv kernel_image zImage
  6. setenv devicetree_image system.dtb
  7. setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait'
  8. setenv bootcmd 'run sdboot || run distro_bootcmd'
  9. setenv sdboot 'if mmcinfo; then run uenvboot; echo Copying Linux from SD to RAM... && fatload mmc 0 ${bitstream_load_address} ${bitstream_image} && fpga loadb 0 ${bitstream_load_address} ${bitstream_size} && fatload mmc 0 ${kernel_load_address} ${kernel_image} && fatload mmc 0 ${devicetree_load_address} ${devicetree_image} && bootz ${kernel_load_address} - ${devicetree_load_address}; fi'
  10. saveenv
  11. boot
复制代码


image.png

成功进入Linux界面

image.png

备注
这里解释一下为什么要先将img文件切割,然后再传输,这是因为在uboot下载文件时,是将整个文件下载到内存中,文件太大会有内存溢出的风险,所以先将240M的文件切割成两个120M的文件,然后分别下载到内存并写入到板载的240M容量的SD卡中。如果你的板载SD卡换了更大的容量,img文件也更大,即使切成两个文件依然太大,这里提供了文件切割程序的工程源码,你可以通过修改源码来将你的img切割成更多小文件。Zynq邮票孔核心板的板载SD芯片默认大小为240M,如果您需要定制带有更大容量SD芯片的核心板,请联系小梅哥。

img分割工具的工程源码.zip (1.48 MB, 下载次数: 374)



更多AC608-7Z010相关资料,请查看下述汇总贴
【AC608-7Z010】Zynq邮票孔核心板产品使用自助服务手册
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

GMT+8, 2024-11-21 18:19 , Processed in 0.157837 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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