描述
此示例设计显示了如何使用以下Linux指令和原始二进制比特流对PL进行编程。
mknod / dev / xdevcfg c 259 0> / dev / null
cat system.bit.bin> / dev / xdevcfg
注意:示例设计是一个答案记录,提供了测试Zynq-7000特定功能的技术提示。
提示可以是代码片段,快照,图表或使用特定版本的Xilinx工具实现的完整设计。
用户可以将这些提示“更新”到未来的Xilinx工具版本,并“修改”示例设计以满足他们的需求。
Xilinx在这些示例设计中提供了有限的支持。
实施细节 | |
---|---|
设计类型 | PS和PL |
SW类型 | Bootgen / Linux |
CPU的 | 单CPU |
PS功能 | DEVCFG |
PL核心 | – |
电路板/工具 | ZC702 |
Xilinx工具版 | Vivado / SDK 2015.1 |
其他详情 | – |
解
说明:
为了使用devcfg的Linux驱动程序对PL进行编程,需要将比特流转换为二进制。
BootGen工具用于此操作。
BootGen工具使用一个名为“BIF”的输入文件,该文件概述了启动映像的结构。
BIF文件的示例是:
the_ROM_image:
{
[引导程序] <fsbl_name> .elf
<pl_bitstream_name>。位
<u型boot_name> .elf
}
请注意,需要[bootloader]标记来表示哪个ELF二进制文件是此设计的第一阶段引导加载程序。
此外,请注意,如果在引导过程中不需要PL编程,则.BIT PL比特流线是可选的。
打开命令行shell(例如,Windows上的cmd.exe或Linux中的shell终端)并获取Xilinx工具环境。
Bootgen以下列方式执行:
bootgen -image <bootimage> .bif -split bin -oi BOOT.BIN
在上面的示例中,指定的.BIF是上面创建的.BIF。
使用带有“-split”选项的BootGen将从.BIF创建每个输入文件的二进制版本,并将它们全部作为独立文件输出,而不是通常的单片启动映像文件。
创建以下文件:
<pl_bitstream_name> .bit.bin
Linux可以使用此二进制输出文件直接对Zynq PL进行编程。
将.BIT.BIN放在SD卡上,然后启动进入Linux。
启动Linux后,安装SD卡,然后为Zynq devcfg块创建器件节点:
mknod / dev / xdevcfg c 259 0> / dev / null
接下来,使用Linux“cat”命令在Zynq PL中流式传输PL比特流:
cat <path_to_storage_media> / <pl_bitstream_name> .bit.bin> / dev / xdevcfg
PL现在已编程。
这可以通过观察电路板上的“DONE”LED或DEVCFG.INT_STS(PCFG_DONE_INT)寄存器值来验证。
注1: -split选项已在2013.2版本中从Bootgen中删除,并在2013.3版本中添加。
要为DEVICECFG生成bin格式的单独位交换位文件,可以使用ISE安装中的promgen命令行。
promgen -p bin -data_width 32 -b -u 0x0 <design_name> .bit
注2 :从2014.1开始.Bootgen有一个名为“ process_bitstream”的选项,它将生成BIN文件,该文件可用于PL通过Devcfg从PS配置。
例:
bootgen -image all.bif -w -process_bitstream bin
BIF文件:
所有:
{
system.bit
}
输出:
文件system.bit.bin在当前工作目录中生成。
注3 :在更高版本的Linux内核中,可能会自动生成/ dev / xdevcfg。
运行“运行”后遇到“mknod:/ dev / xdevcfg:文件存在”警告消息 mknod / dev / xdevcfg c 259 0> / dev / null“命令你可以运行下一个命令。
没有回复内容