如何在Zynq-7000上烧写PL Image
在Zynq-7000上编程PL大致有3种方法:
1. 用FSBL,将bitstream集成到boot.bin中
2. 用U-BOOT命令
3. 在Linux下用xdevcfg驱动。
步骤:
1. 去掉bitstream的文件头
用FSBL烧写PL Images没有什么好说的,用Xilinx SDK的Create Boot Image工具即可完成,不再赘述。用后两种方法需要把bitstream文件的文件头用bootgen工
一个典型的bif文件如下所示:
the_ROM_image:
{
[bootloader]<fsbl_name>.elf
<pl_bitstream_name>.bit
<u-boot_name>.elf
}
bif文件可以用文本编辑器写,也可以用Xilinx SDK的Create Boot Image工具生成。然后在命令行下用以下命令即可去掉bitstream文件的文件头。
bootgen -image <bootimage>.bif -split bin -o i BOOT.BIN
"-split”参数可以生成以下文件:
<pl_bitstream_name>.bit.bin
2. 在U-BOOT下烧写PL Image
命令”fpga load”和”fpga loadb”都可以。区别是前一个命令接受去掉了文件头的bitstream文件,后一个命令接受含有文件
在OSL 2014.2上,缺省编译就可以完整支持写入PL Image的功能。但是在Petalinux 2013.10下,尽管可以在U-BOOT下看到命令”fpga”,还需要在文件
<PROJ>/subsystems/linux/configs/u-boot/platform-to
/* Enable the PL to be downloaded */
#define CONFIG_FPGA
#define CONFIG_FPGA_XILINX
#define CONFIG_FPGA_ZYNQPL
#define CONFIG_CMD_FPGA
#define CONFIG_FPGA_LOADFS
在OSL 2014.2 U-BOOT中,具体的功能是在zynqpl.c的zynq_load()中实现的。
3. 在Linux下烧写PL Image
OSL Linux 2014.2.01中已经含有xdevcfg驱动了(之前就有,不过本文是在这个版本上验证的),直接用以
cat <path_to_storage_media>/<pl_bitstream_name>.bit.bin > /dev/xdevcfg
Linux驱动的源代码在xilinx_devcfg.c中。因为驱动的编号是通过alloc_chrde
在Linux驱动中,每次往DevCfg中写入4096字节,直到全部写完。
4. 在用户程序中烧写PL Image
目前没有现成的源码来完成这个功能,不过可以用mmap()把DevCfg的寄存器映射到用户程序的虚地址
* FSBL中的pcap.c
* U-BOOT中的zynqpl.c
* Linux中的xilinx_devcfg.c
* Xilinx SDK中的例子。例子位于以下位置,随SDK的版本会有变化。
C:\Xilinx\SDK\2014.1\data\embeddedsw\XilinxProcess
小结:
DevCfg外设内部有自己的DMA,只需要简单的配置PL Image的基地址和长度到DevCfg寄存器,就可以完成Zynq-7000 PL Image的加载。Xilinx已经提供了灵活的解决方案,如果开发者要把这个功能集成在自己的应用程序中
如何在Zynq-7000上烧写PL Image相关推荐
- 嵌入式:利用TF卡给4412开发板的emmc上烧写安卓系统
系统: 主机:64位windows10主机,vmware player15虚拟机,64位debian9.8宿主机. 开发板: 迅为4412开发板,核心板是scp 1G的. 步骤: 1,有一个TF卡,至 ...
- linux/windows上STM32固件烧写工具的开发demo
1.主要实现功能:完成对HEX和DFU文件的烧写,显示烧写的进度等功能 2.开发工具:Qt creator4.9.0 3.开发系统平台:windows系统和linux系统两套平台 4.具体开发步骤: ...
- ZYNQ 7000 PS和PL 信号、接口、管脚分布
1.ZYNQ 7000 PS端和PL端都有自己独立的电源引脚(Power Pin) 2.PS端接口和信号: PS_CLK(System reference clock) POR_RST_N(Power ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发流程(六)烧写整个系统或更新部分系统
文章目录 1.烧写整个系统或更新部分系统 1.1 100ASK_IMX6ULL启动开关 1.2 在Windows使用USB烧写工具 1.2.1 烧写工具目录详解 1.2.2 连接USB OTG线 1. ...
- Hi3520烧写flash失败问题分析
背景 CPU芯片型号:Hi3520 DRQCV300 CP3091820 1820-CHINA flash型号:MX25L12835FM2I-10G [spi nor flash] 工厂生产的样板回来 ...
- 嵌入式系统 - Nand Flash 烧写问题排查
问题背景 板卡:SOM-TL437x-A1 事件:生产了 410 PCS 需要测试.烧写系统,部分板卡烧写出货系统异常. 现象:其中 78 PCS 由于 BTB 问题未测试.332 PCS 功能测试后 ...
- 烧写整个系统或更新部分系统到STM32MP157开发板
在线课堂:https://www.100ask.net/index(课程观看) 论 坛:http://bbs.100ask.net/(学术答疑) 开 发 板:https://100ask.taoba ...
- micropython8266ota_[Micropython]TPYBoardV102 Dfu固件烧写教程
TPYBoardv10x固件烧写一直是大家比较关心的问题,上次教大家用SWD接口烧写TPYBoard的固件,这次教大家用另一种方式烧写我们TPYBoardv10x的固件,直接用dfu模式烧写固件. 用 ...
- ZYNQ开发系列——把PS和PL程序烧写到FLASH中
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 ZYNQ开发系列--把PS和PL程序烧写到FLASH中 生成 fsbl.elf 生成 BOOT.bin 下载 BOOT.bin 文件到 ...
最新文章
- 颠覆性技术的兴起及其影响
- java 二叉树_二叉树实现java
- boost::sort模块实现跨并行线程的整数排序速度基准的测试程序
- maven构建scala工程并最终运行的所有细节(scala maven helloworld)
- Leetcode--994. 腐烂的橘子(java)
- 【英语学习】【WOTD】minion 释义/词源/示例
- 合众朱光林:借O2O模式反馈企业才有价值
- UEditor(四)——表情包
- 中控考勤机Java二次开发(附Demo)
- 部署新浪云静态页面和服务器步骤
- 君莫笑系列视频学习(2)
- Maye v1.3.4.0 类似Rolan简洁小巧易用的快速启动工具
- subplots用法详解
- 天问: 量子力学中的波函数到底表示什么?
- windows更换壁纸cmd命令,window修改注册表更换壁纸,已设壁纸缓存地址
- 分享两个靠谱的微信跳转浏览器打开网页/下载app的接口
- 慧眼舆情热词分析架构简述
- Pandas库离线安装总结
- Google电面狂出难题,春招比秋招难多了……
- 根据汉字获得它的拼音
热门文章
- 第十六届智能车竞赛 | 单车拉力组浅析
- Review: Maximum Energy Efficiency Tracking for Wireless Power Transfer Systems
- 双轴机械臂串口控制命令开发与测试:STM32F103控制板,简易调试命令集合
- installshield 安装文件属性的原始文件名 如何修改_iPhone修改微信提示音,iOS12可用,无需越狱详细教程...
- 轻量级web api_10个很棒的JavaScript库,提升Web开发效率
- python实现数据库连接池_Python实现Mysql数据库连接池
- 影响生产计划制定的因素_石料生产线选砂石原骨料时的技巧及影响破碎的因素...
- Hyperbola(双曲线)
- 【 C 】初识函数指针
- 解决Adobe Reader安装错误150120