ZYNQ Linux下不重启更新PL镜像程序的技巧
版权申诉
5星 · 超过95%的资源 176 浏览量
更新于2024-08-11
3
收藏 495KB PDF 举报
本文主要介绍了如何在基于ZYNQ架构的Linux系统中更新PL(Programmable Logic)镜像程序,这种方法无需重启板卡,直接在Linux系统内部就能完成更新。这种方法适用于ZYNQ045平台,使用的是SDK2018.2版本进行编译开发,并且在Ubuntu 16.4环境下测试通过。更新过程涉及到uboot源码的修改、内核以及根文件系统的调整。
在ZYNQ系统中,通常PL镜像文件较大,例如超过10MB,如果通过仿真器下载到QSPI Flash,可能需要3至10分钟时间,这在项目研发和功能调试时非常不便。因此,实现PL端在线更新程序变得尤为重要。这个程序允许在Linux系统运行时,直接向FPGA设备写入新的PL配置,避免了断电重启。
参考Xilinx官网教程,ZYNQ的存储介质通常有如下的空间分配(用于在线更新程序):
1. QSPI NorFlash:存储ZYNQ的FSBL (First Stage Boot Loader) 和 u-boot。
2. EMMC (SD0):
- mmcblk0p1:存放内核镜像(uImage)、设备树(devicetree.dtb)以及Boot启动文件(uEnv.txt)。
- mmcblk0p2:根文件系统(rootfs.ext4)。
- mmcblk0p3:用于其他应用参数,可以通过脚本挂载。
在升级过程中,只需更新emmc的mmcblk0p1分区中的`pl_system.bit.bin`文件。为了完成这个更新,可以在Linux系统内部挂载emmc分区,然后执行删除旧的PL镜像、更新新的PL镜像等操作。
这个流程涉及以下步骤:
- 修改uboot源码,以支持在Linux运行时加载新的PL程序。
- 调整Linux内核,确保它能够识别并处理新的PL配置。
- 修改根文件系统的脚本,以配合在线更新的流程。
在生成bin格式的PL镜像文件时,需要注意Vivado工具的版本。在Vivado 2018.3之前,需要使用bootgen工具将bit文件转换为bin格式;而从Vivado 2018.3开始,可以直接通过Vivado工具生成bin文件。
总结来说,基于ZYNQ的Linux系统在线更新PL镜像是一个高效的方法,它优化了开发流程,减少了调试时间。实现这一功能需要对uboot、内核以及根文件系统有深入理解,并且熟悉Vivado和相关脚本的编写。
2023-11-22 上传
2022-02-17 上传
2022-02-17 上传
2018-12-07 上传
2021-09-30 上传
2021-09-06 上传
2019-05-25 上传
2021-09-21 上传
少林and叔叔
- 粉丝: 7459
- 资源: 128
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建