首页 > 系统相关 >在PetaLinux工程中导出所有关键模块代码

在PetaLinux工程中导出所有关键模块代码

时间:2022-11-04 11:33:23浏览次数:53  
标签:echo petalinux log devtool 导出 模块 tee file PetaLinux

PetaLinux工程会自动下载代码并编译。很多时候,工程师需要修改代码,加入调试信息。使用下列脚本,可以一次性导出所有关键模块的代码。
脚本中,为了保持兼容性,导出了MPSoC和Versal的模块。有些模块不存在,不会导致其它副作用,请忽略不存在的模块错误信息。

#!/bin/bash
# [email protected]

date_time=`date +%0m%0d-%0k%0M` 
current_dir=`pwd`
log_file=$current_dir/petalinux-devtool-modify-$date_time-log.txt
echo "Date-Time is $date_time"    2>&1   | tee -a $log_file
echo "Current directory is $current_dir"    2>&1   | tee -a $log_file
echo "Log file is $log_file"    2>&1   | tee -a $log_file

# check petalinux tool
which petalinux-build
which petalinux-devtool

petalinux_devtool=`which petalinux-devtool` 
echo "petalinux devtool 1:  $petalinux_devtool"    2>&1   | tee -a $log_file

# PetaLinux 2020.1: no petalinux-devtool
if [ "$petalinux_devtool" = "" ]; then
	echo "Source yocto environment"    2>&1   | tee -a $log_file

	if [ -f ./components/yocto/environment-setup-aarch64-xilinx-linux ]; then 
		echo "Source yocto environment: aarch64"    2>&1   | tee -a $log_file
		source ./components/yocto/environment-setup-aarch64-xilinx-linux 		
	elif [ -f ./components/yocto/environment-setup-cortexa72-cortexa53-xilinx-linux ]; then
		echo "Source yocto environment: cortexa72"    2>&1   | tee -a $log_file
		source ./components/yocto/environment-setup-cortexa72-cortexa53-xilinx-linux 		
	fi 

	source components/yocto/layers/core/oe-init-build-env    
	if [ -d ../components/yocto/ ]; then 
		cd .. 
	fi 

	petalinux_devtool=`which devtool`
	echo "petalinux devtool 2:  $petalinux_devtool"    2>&1   | tee -a $log_file
	# devtool create-workspace ./components/yocto/workspace/    2>&1   | tee -a $log_file
fi

if [ "$petalinux_devtool" = "" ]; then
	echo "Error: petalinux devtool is invalid"    2>&1   | tee -a $log_file
	exit
fi

# 
# Get the source code from git url specifi ed  in meta-layers:
#     petalinux-devtool modify <recipe-name>
# 
# Creates a patch for the committed  changes in recipe sources directory.
#     petalinux-devtool finish <recipe-name> <destination layer path>

echo -e "\nTry to modify linux-xlnx"      2>&1   | tee -a $log_file
$petalinux_devtool modify linux-xlnx       2>&1   | tee -a $log_file

echo -e "\nTry to modify u-boot-xlnx"      2>&1   | tee -a $log_file
$petalinux_devtool modify u-boot-xlnx       2>&1   | tee -a $log_file

echo -e "\nTry to modify arm-trusted-firmware"      2>&1   | tee -a $log_file
$petalinux_devtool modify arm-trusted-firmware       2>&1   | tee -a $log_file

echo -e "\nTry to modify fsbl-firmware"      2>&1   | tee -a $log_file
$petalinux_devtool modify fsbl-firmware       2>&1   | tee -a $log_file

echo -e "\nTry to modify pmu-firmware"      2>&1   | tee -a $log_file
$petalinux_devtool modify pmu-firmware       2>&1   | tee -a $log_file

echo -e "\nTry to modify plm-firmware"      2>&1   | tee -a $log_file
$petalinux_devtool modify plm-firmware       2>&1   | tee -a $log_file

echo -e "\nTry to modify psm-firmware"      2>&1   | tee -a $log_file
$petalinux_devtool modify psm-firmware       2>&1   | tee -a $log_file

echo -e "\nShow current directory: "     2>&1   | tee -a $log_file
pwd                                      2>&1   | tee -a $log_file

echo -e "\nShow components that can be modified in ./components/yocto/workspace/sources/"     2>&1   | tee -a $log_file
if [ -d ./components/yocto/workspace/sources/ ]; then 
	ls -l ./components/yocto/workspace/sources/            2>&1   | tee -a $log_file
fi 
if [ -d ../components/yocto/workspace/sources/ ]; then 
	ls -l ../components/yocto/workspace/sources/            2>&1   | tee -a $log_file
fi 

# petalinux-devtool finish <recipe-name> <destination layer path>
# petalinux-devtool reset <recipe-name> to remove the source directory for the recipe from workspace.

调试完成后,使用命令“petalinux-devtool reset ”, 可以使PetaLinux工程恢复自动下载代码和编译。

测试环境

工具
X86 Ubuntu 18.04
PetaLinux 2022.1
PetaLinux 2020.1

测试单板
KR260
zcu102
vck190

付汉杰 [email protected]

标签:echo,petalinux,log,devtool,导出,模块,tee,file,PetaLinux
From: https://www.cnblogs.com/hankfu/p/16857175.html

相关文章

  • Python内置模块FTPLIb的 STORLINES方法运行出错解决过程
    FTPLIbSTORLINES方法出错解决过程错误现象importftplibimportoptparseimportsysclassFTPWebpageDetect:def__init__(self)->None:self.target......
  • 振弦采集模块传感器接口(智能振弦传感器)
    振弦采集模块传感器接口(智能振弦传感器)传感器线圈接口传感器线圈接口由SEN+和SEN-管脚组成,分别连接到振弦传感器线圈两端。通常情况下,传感器线圈不区分正负极,直接连接......
  • 8路编码器脉冲计数器或16路DI高速计数器Modbus RTU模块YL69
    特点:●编码器解码转换成标准ModbusRTU协议●可用作编码器计数器或者转速测量●支持8个编码器同时计数,可识别正反转●也可以设置作为16路独立DI高速计数器● 编码器计......
  • python之sys模块
    python之sys模块详解之前用过sys模块的一种用法,今天总结一下。sys.argv功能:在外部向程序内部传递参数eg:#!/usr/bin/envpythonimportsysprint(sys.argv[0])print(sys.arg......
  • 【HMS Core】华为分析SDK如何申请数据导出功能?
    1、问题描述项目中集成了华为分析SDK,现在有一个需求,想要申请数据导出功能,申请页面提示数据导出功能目前仅对部分邀请伙伴开放,需要通过在线提单的方式申请开通此功能,那么具体......
  • golang 离线使用模块
    修改go.modmoduletcpgo1.17require( gitlab.xxx.test/dto/appv0.0.0-20220929075345-361eddc7a846 gitlab.xxx.test/dto/gatewayv0.0.0-20221012065303-c57......
  • 从生产环境中导出 dml 语句
    在使用数据库的时候,想生产环境的数据导出为dml,无奈网上没有找到合适的方案,一水儿说的都是导出dump关键是这不是我想要的啊,我要的是dml啊。没办法,只能曲线救国般地,拼接s......
  • 纯前端实现后端给数据进行文件导出——angular里面的使用
    interfacedataList{cmd_cnt:number;risk_name:string;user_cnt:number;risk_type:string;}listOfData:dataList[]=[];dataObj:any={title:['风险名称',......
  • springboot多模块配置nginx
    1.后端有8088、8089两个端口不同的模块2.在nginx里配置地址。监听端口:9001,转发端口:8088、8099#usernobody;worker_processes1;#error_loglogs/error.log;#er......
  • 如何写一个给自己的框架写一个优雅的Java Config模块
    发博词工作时间长一点的工程师,平时的“工作生活”中肯定免不了写一些大大小小的框架和中间件。最近在看SpringSecurity的源码,由于这个框架要解决的问题比较多、复杂且零碎,......