ZYNQMP Linux下快速更新FPGA程序的方法
版权申诉
![](https://csdnimg.cn/release/wenkucmsfe/public/img/starY.0159711c.png)
"这篇文章主要介绍了如何在Linux系统中对ZYNQMP的PL程序进行在线更新,无需断电重启板卡。ZYNQMP的BIT镜像文件较大,通过仿真器下载到QSPI Flash的时间较长,因此在线更新方法对于项目研发和功能调试更为便捷。更新过程涉及到对UBoot、内核以及根文件系统的脚本文件的修改,并且讲解了如何在Vivado不同版本下生成BIN格式的PL程序文件。"
在基于ZYNQMP的嵌入式系统中,PL(Programmable Logic)部分的更新通常需要重新编程整个BOOT.bin文件,这会消耗大量时间。然而,通过Linux系统内部的在线更新机制,我们可以直接修改PL部分的bit文件,从而减少更新时间和提高效率。这个方法的关键在于理解ZYNQMP的存储介质镜像文件空间分配,如表1所示:
1. QSPI NorFlash:存放FSBL(FPGA System Boot Loader)、PMU固件、BL31(TrustZone相关固件)和U-Boot固件。
2. EMMC(SD0):
- mmcblk0p1:内核Image、设备树devicetree.dtb以及用于PL在线更新的pl_system.bit.bin。
- mmcblk0p2:根文件系统rootfs.ext4。
- mmcblk0p3:其他应用参数,可按需挂载。
在更新过程中,我们只需关注emmc的mmcblk0p1分区,即pl_system.bit.bin文件。一旦生成新的PL配置,可以直接在Linux环境中挂载emmc分区并替换旧的bin文件,从而实现PL程序的即时更新。
为了生成适应在线更新的bin格式PL文件,Vivado 2018.3之前需要使用bootgen工具进行转换,而从Vivado 2018.3版本开始,可以直接在Vivado中生成bin文件。
更新流程包括以下几个步骤:
1. UBoot源码修改:在UBoot的arm架构目录下,可能需要修改源码以支持新的PL更新机制。这可能涉及到添加或调整与PL更新相关的命令或函数。
2. 内核修改:可能需要更新内核驱动以识别和处理新的PL程序,确保在加载时能正确读取和应用更新的bin文件。
3. 根文件系统脚本修改:创建或修改启动脚本来执行PL更新过程,包括卸载和安装新的PL程序,以及处理可能的权限和校验问题。
基于ZYNQMP的Linux系统通过这种方式实现了PL程序的灵活更新,大大提高了开发和调试的效率。理解并掌握这一方法,对于从事ZYNQMP平台的开发人员来说,能够有效提升工作效率并简化系统维护。
2019-07-16 上传
2018-02-04 上传
2023-08-17 上传
2023-05-15 上传
2023-07-02 上传
2023-09-16 上传
2023-09-02 上传
2023-05-20 上传
![](https://profile-avatar.csdnimg.cn/dbf48a46d7964323a2abed847d6f05fc_q544344318.jpg!1)
少林and叔叔
- 粉丝: 7445
- 资源: 128
最新资源
- 解决Eclipse配置与导入Java工程常见问题
- 真空发生器:工作原理与抽吸性能分析
- 爱立信RBS6201开站流程详解
- 电脑开机声音解析:故障诊断指南
- JAVA实现贪吃蛇游戏
- 模糊神经网络实现与自学习能力探索
- PID型模糊神经网络控制器设计与学习算法
- 模糊神经网络在自适应PID控制器中的应用
- C++实现的学生成绩管理系统设计
- 802.1D STP 实现与优化:二层交换机中的生成树协议
- 解决Windows无法完成SD卡格式化的九种方法
- 软件测试方法:Beta与Alpha测试详解
- 软件测试周期详解:从需求分析到维护测试
- CMMI模型详解:软件企业能力提升的关键
- 移动Web开发框架选择:jQueryMobile、jQTouch、SenchaTouch对比
- Java程序设计试题与复习指南