PetaLinux工程更新HDF文件的脚本

参考:PetaLinux工程更新HDF文件的脚本

工程师可能同时使用多个Vivado工程,以便测试不同的硬件配置。如果能够让一个PetaLinux工程支持多个Vivado工程,那对开发来说是非常方便的。

Vivado工程更改后,PetaLinux工程需要更新HDF文件。另外最好在PetaLinux工程里记录使用的所有硬件相关文件,比如bit、HDF文件等。以便将来检查对应的硬件设计。

下面是一个脚本,可以自动备份以前的硬件相关文件,再从Hareware Description(由Vivado导出)工程取得最新的硬件相关文件;并且执行命令,让PetaLinux工程更新HDF文件。

用法:

需要两个参数,第一个是PetaLinux工程的名字,第二个是Hareware Description工程的目录。

使用这个脚本,可以更方便地让一个PetaLinux工程,支持多个Hareware Description。

##
# Copyright By Schips, All Rights Reserved
# https://gitee.com/schips/
#
# File Name: update_petalinux_project_with_hw
# Created : 2020-08-05 08:55:56
#
##
# Engineer may have several Vivado project that has same name.
# But each project may have different configuration.
# So each project is located in different directory.
# For example, there are three hardware Description directory:
# hardwareDescription_v1;
# hardwareDescription_v2;
# vivado_project/xx.sdk;
# You can use following command to swith the hardware platform for petalinx project:
# peta-update-hdf.sh petalinux_Project hardwareDescription_v1
# peta-update-hdf.sh petalinux_Project hardwareDescription_v2
# ...
# peta-update-hdf.sh petalinux_Project vivado_project/xx.sdk
#!/bin/sh help () {
echo "ERROR : Invalid arguments"
echo " eg:"
echo " $0 VivadoProject HdfDirectory"
exit
} if [ ! -d "$1" ]; then
help
fi
if [ ! -d "$2" ]; then
help
fi command -v petalinux-config >/dev/null 2>&1 || { echo >&2 "Aborted : Require \"petalinux-config\" but not found."; exit 1; } #BASE=`pwd`
PETALINUX_PROJECT=`cd $1 && pwd`
HDF_DIR=`cd $2 && pwd`
date_time=`date +%0k%0M-%0m:%0d`
BACKUPDIR=${PETALINUX_PROJECT}/backup/hdf-$date_time ## 打印操作信息
echo "========================================================"
echo "Date-Time : $date_time"
echo -e "Vivado Project : $PETALINUX_PROJECT"
echo -e "HDF Directory : $HDF_DIR"
echo -e "Backup files to directory: ${BACKUPDIR}" ## 对原工程创建 备份的目录
mkdir -p ${BACKUPDIR} ## 备份
echo "========================================================"
echo 'Backupping {hdf,bit}'
cp $PETALINUX_PROJECT/project-spec/hw-description/*.hdf ${BACKUPDIR} -v
#mv -f *.hdf ${BACKUPDIR}/
cp $PETALINUX_PROJECT/project-spec/hw-description/*.bit ${BACKUPDIR} -v
#mv -f *.bit ${BACKUPDIR}/
## 不需要(也没有)
#mv -f *.ltx ${BACKUPDIR}/
## 打印备份结果
echo 'Backupped {hdf,bit} '
echo ${BACKUPDIR}
ls -l ${BACKUPDIR} #ls -l ${HDF_DIR}/*.hdf
echo "========================================================"
echo "Updating HDF"
echo "petalinux-config --oldconfig --get-hw-description=${HDF_DIR}/"
#cp ${HDF_DIR}/*.hdf /tmp/PETALINUX_PROJECT -v
#cp ${HDF_DIR}/*.bit /tmp/PETALINUX_PROJECT -v cd ${PETALINUX_PROJECT} && petalinux-config --oldconfig --get-hw-description=${HDF_DIR}/
ret=$?
#cd $BASE exit $ret

ZYNQ:PetaLinux工程更新HDF文件的脚本的更多相关文章

  1. 〖Linux〗实时更新 hosts 文件的脚本

    适用场景: 下载了一个smarthosts的hosts文件,但hosts文件过旧导致一些ip地址已失效无法访问网络. 脚本使用: ./hostsupdate # 直接从 /etc/hosts 中获得需 ...

  2. shell小脚本--从laod博客更新hosts文件

    #!/bin/bash #-------------------------------------------- # name: change-hosts.sh #----------------- ...

  3. 【Xilinx-Petalinux学习】-02-建立PetaLinux工程

    前面我已经把PetaLinux成功安装到了Ubuntu虚拟机当中了,接下来就要实际操作,将PetaLinux移植到我们自己的硬件平台当中去. step1:硬件描述文件 有两种PetaLinux工程建立 ...

  4. 🙈 如何隐藏你的热更新 bundle 文件?

    如果你喜欢我写的文章,可以把我的公众号设为星标 ,这样每次有更新就可以及时推送给你啦. 前段时间我们公司的一个大佬从一些渠道得知了一些小道消息,某国民级 APP 因为 Apple App Store ...

  5. Wix 安装部署教程(十二) -- 自动更新WXS文件

    上一篇分享了一个QuickWIX,用来对比两个工程前后的差异,但是这样还是很繁琐,而且昨天发现有Bug,目录对比有问题.这次改变做法,完全让程序自动去更新WXS文件,然后再用CCNet去自动编译,这样 ...

  6. ios外包公司—北京动点软件分享:IOS工程自动打包并发布脚本实现

    前言 IOS的开发过程中,当需要给测试人员发布测试包的时候,直接使用xcode来做的效率是非常低下的.尤其是当有一点小改动需要重新出包时,那简直是个折磨的人的工作.通过一番研究后,遂决定写一系列脚本, ...

  7. cocos2dx中android下动态更新.so文件

    作者:HU 转载请注明,原文链接:http://www.cnblogs.com/xioapingguo/p/4037595.html  因为没用lua脚本写游戏,所以每次发布出去后,发现在bug,需要 ...

  8. xilinx Vivado的使用详细介绍(2):创建工程、添加文件、综合、实现、管脚约束、产生比特流文件、烧写程序、硬件验证

    xilinx Vivado的使用详细介绍(2):创建工程.添加文件.综合.实现.管脚约束.产生比特流文件.烧写程序.硬件验证 Author:zhangxianhe 新建工程 打开Vivado软件,直接 ...

  9. IOS工程自动打包并发布脚本实现

    http://blog.csdn.net/ccf0703/article/details/8588667 文章首发地址:http://webfrogs.me/2013/02/18/ios-automa ...

  10. 一个python的文件对比脚本

    脚本主要用来给游戏客户端做热更的. 处理方式就是针对每个文件求其MD5值,再根据文件的目录和名字对比两个版本的MD5值,如果不一样,则这次热更就需要更新这个文件. 用法很简单. 1,生成MD5码列表 ...

随机推荐

  1. 一分钟部署 Llama3 中文大模型,没别的,就是快

    前段时间百度创始人李彦宏信誓旦旦地说开源大模型会越来越落后,闭源模型会持续领先.随后小扎同学就给了他当头一棒,向他展示了什么叫做顶级开源大模型. 美国当地时间4月18日,Meta 在官网上发布了两款开 ...

  2. 题解:CF1941G Rudolf and Subway

    原题链接 简化题意 一个无向连通图中将边分成了不同颜色(保证同种颜色联通),问从 \(b\) 到 \(e\) 最短需要经过几种颜色 思路 考虑因为同种颜色联通,可直接在读入的时候开两个 vector ...

  3. 命令行创建vue项目

    vue -h vue create learn-vue ❯ Manually select features 选择下面的组件(空格为选中/取消)回车确认 使用 history mode 使用node ...

  4. AI 编译器CINN中的OpLowering优化Pass

    一.Lower 主逻辑 在 OpLower::Lower() 接口中,主要分为两大类: Elementwise类,主要涉及的 OpPattern 包括:kElementwise .kBroadcast ...

  5. d3d12龙书阅读----绘制几何体(下)

    d3d12龙书阅读----绘制几何体(下) 本节在上一节的基础上,对整个绘制过程进行优化,将绘制单个几何体的内容拓展到了多个几何体,同时对根签名进行了进一步地探索. 帧资源 在之前绘制每帧的结尾,我们 ...

  6. C语言:++ --优先级的深入理解

    #include <stdio.h> int main() { int num = 11; int result = ++num > 11 && --num < ...

  7. JDK源码阅读-------自学笔记(十八)(java.lang.Enum枚举类)

    枚举类简介 如果有必要定义一组常量的时候使用 所有的枚举类型隐性地继承自 java.lang.Enum,枚举实质上还是类. 每一个枚举中的成员,就相当于枚举的一个对象,默认都是public stati ...

  8. Hello Laravel! 准备

    Hello Laravel! 准备 目录 Hello Laravel! 准备 什么是 Laravel? 为什么选择 Laravel? 优雅的语法 丰富的功能 强大的社区支持 安全性 易于扩展 Lara ...

  9. QtCreator 跨平台开发添加动态库教程(以OpenCV库举例)- Windows篇

      Qt具有跨平台的特性,即Qt数据结构与算法库本身跨平台和编译脚本(.pro)跨平台.在同时具有Windows下和Linux开发的需求时,最好的建议是使用QtCreator来开发,虽然也可以使用其他 ...

  10. springcloud整合geteway网关服务

    geteway网关 1. 什么是 API 网关(API Gateway)分布式服务架构.微服务架构与 API 网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计.开发.测试.部署 ...