使用vitis tcl脚本构建vitis app工程

一:最近重新学习了zynq系列开发,想着使用tcl创建工程,因此分享一下脚本例子

#!/bin/bashsource /tools/Xilinx/Vitis/2022.2/settings64.sh
cd ../../
. ./script/project.sh
cd app/script
#tcl脚本只能在虚拟机桌面执行
xsct  build_vitis.tcl -tclargs ${hardware_xsa_name} ${app_name}

puts "pwd= [pwd]"
cd ../
#set projpath [pwd]/project
set projpath [pwd]/project
puts "Current workspace is $projpath"
setws $projpath
getws# 设置硬件和应用程序名称
set xsaName [lindex $argv 1]
set appName [lindex $argv 2]
cd [pwd]
cd ../
puts "pwd= [pwd]"
puts "xsa name = [pwd]/hardware/$xsaName.xsa"# 创建平台
platform create -name $xsaName -hw [pwd]/hardware/$xsaName.xsa -proc ps7_cortexa9_0 -os standalone -arch 32-bit -out $projpath
importprojects $projpath/$xsaNameplatform active $xsaName
#repo -add-platforms $xsaName   #bug
domain active standalone_domain
puts "toolchain = [toolchain]"app create -name $appName -platform $xsaName -domain standalone_domain -template "Empty Application" -lang c++importsources -name $appName -path [pwd]/app/src -target-path src -soft-link
importsources -name $appName -path [pwd]/app/common -target-path common -soft-link
importsources -name $appName -path [pwd]/app/drivers  -target-path drivers -soft-linkapp config -name $appName define-compiler-symbols _POSIX_THREADS   
app config -name $appName include-path [pwd]/app/include           #指定要包含的头文件路径app config -name $appName library-search-path [pwd]/app/lib  #添加链接时要添加的库,以及xx位置查找库。 这个需要在添加库指令前面
app config -name $appName libraries eventapp config -name $appName -add compiler-misc {-std=c++11 -pthread}
app config -name $appName -add linker-misc {-WL,-Map,-stdc++}
app config -name $appName -add linker-misc {-WL,-Map,${ProjName.map}}
# 生成平台和应用程序项目
platform generate
append appName "_system"
sysproj build -name $app0Name#-target-path src  指定要将源文件放到工程的某个位置(src) 
#-soft-link  指定将源文件链接进应用工程,而不是复制源文件到工程(不指定-soft-link,应用工程修改的内容不会反应到源文件代码,只会修改工作空间的文件,当工程删除就不见了)

        有点缺陷是再vitis打开工程后,在工程中手动添加源文件是只能存在此工程的工作空间中,即project目录下的app工程下,所以在删除工程后,自己源码就不存在了,需要在源码的目录创建源文件,使用importsource的方式导入才行,如操作:

        在本地目录先创建文件,再工程中要导入的文件夹中右键选择import source 导入文件,才行。advanced下面的三个方框都选中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/84711.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/84711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑商城--购物车

加入购物车 1 购物车-创建数据表 1.使用use命令先选中store数据库。 USE store; 2.在store数据库中创建t_cart用户数据表。 CREATE TABLE t_cart (cid INT AUTO_INCREMENT COMMENT 购物车数据id,uid INT NOT NULL COMMENT 用户id,pid INT NOT NULL COMMENT 商品id,price BIG…

2024-2025学年度下期《网页设计》期末模拟测试

一、 单选题 1. HTML文档的根标签是( ) A. <html> B. <head> C. <body> D. <!DOCTYPE> 2. 用于定义段落内容的标签是&#xff1a;( ) A. <div> B. <p> C. <span> D. <br> 3. 网以下哪个属性用于定义CSS内联样式…

搭建加解密网站遇到的问

本机向云服务器传输文件 用winscp 服务器在安装 SSH 服务时自动生成密钥对&#xff08;公钥私钥&#xff09; 为什么要有指纹验证&#xff1f; 防止中间人攻击&#xff08;Man-in-the-Middle&#xff09; 指纹验证打破这个攻击链&#xff1a; 小问题 安装python时 ./confi…

CSS 制作学成在线网页

1 项目结构 1.1 总结 2 网页制作思路 3 header 区域 - 布局 3.1 通栏 3.2 logo 3.3 导航 3.4 搜索区域 3.5 用户区域 4 banner 区域 4.1 左侧侧导航 4.2 右侧课程表 5 精品推荐 6 推荐课程区域 参考链接&#xff1a; 82-准备工作-项目目录与版心_哔哩哔哩_bilibili

图灵完备之路(数电学习三分钟)----门的多路化

上一章中我们学习了如何用与非门实现其他逻辑门&#xff0c;但上节中的输入信号始终为2&#xff0c;但在现实中&#xff0c;输入的信号数量是不确定的&#xff0c;所以我们需要设计多输入的门&#xff1a; 1.三路与非门&#xff08;卡诺图法&#xff09; 我们还是从与非门开始…

【前端】二进制文件流下载(get、post)再谈一次

最近二进制文件流下载可谓是又出幺蛾子&#xff0c;翻阅以前的文章也找不到解决方案&#xff0c;感觉还是没用完全理解&#xff0c;这次再整理一遍。 先说一个通用场景&#xff0c;就是无论get还是post在接口请求的时候设定好 headers: { Content-Type: application/json;cha…

uv功能介绍和完整使用示例总结

以下是关于 UV 工具的完整使用示例总结,结合其核心功能与典型场景,帮助用户快速上手并高效管理 Python 项目: 一、安装与配置 快速安装 macOS/Linux:curl -LsSf https://astral.sh/uv/install.sh | shWindows:powershell -ExecutionPolicy ByPass -c "irm https://as…

MySQL启动报错“mysqld_safe Directory ‘/var/lib/mysql‘ don‘t exists“终极解决方案!从入门到高阶全攻略

在MySQL的使用过程中&#xff0c;启动报错mysqld_safe Directory /var/lib/mysql dont exists是开发者经常遇到的问题。这个错误看似简单&#xff0c;实则可能涉及目录权限、系统配置、文件系统等多个方面。本文将结合官方文档与实际经验&#xff0c;从基础到高级&#xff0c;为…

python 常见数学公式函数使用详解

Python 数学公式与函数大全 Python 提供了丰富的数学计算支持&#xff0c;包括内置函数、标准库&#xff08;math、cmath、numpy&#xff09;和第三方库&#xff08;sympy、scipy&#xff09;。以下是常用数学公式和函数的分类整理&#xff1a; 1. 基本数学运算 1.1 算术运算…

阿里云服务器+宝塔面板发布网站

一、租用服务器 &#xff08;1&#xff09;、进入官网 阿里云-计算&#xff0c;为了无法计算的价值阿里云——阿里巴巴集团旗下公司&#xff0c;是全球领先的云计算及人工智能科技公司之一。提供免费试用、云服务器、云数据库、云安全、云企业应用等云计算服务&#xff0c;以…

langchain框架中各种Agent(LLMSingleAgent ReactAgent Plan-and-Execute Agent)原理方式对比

在LangChain框架中&#xff0c;LLMSingleActionAgent与ReAct Agent及其他Agent类型在内部原理上存在显著差异&#xff0c;主要体现在推理机制、行动策略、动态性等方面。以下结合实例进行详细说明&#xff1a; 1. LLMSingleActionAgent的内部原理 LLMSingleActionAgent是LangC…

AI+预测3D新模型百十个定位预测+胆码预测+去和尾2025年6月22日第116弹

从今天开始&#xff0c;咱们还是暂时基于旧的模型进行预测&#xff0c;好了&#xff0c;废话不多说&#xff0c;按照老办法&#xff0c;重点8-9码定位&#xff0c;配合三胆下1或下2&#xff0c;杀1-2个和尾&#xff0c;再杀4-5个和值&#xff0c;可以做到100-300注左右。 (1)定…

电池模块仿真 - 线性时不变降阶模型

电池模块热设计挑战 针对使用周期设计电池模块存在几个独特的热工程挑战。 使用循环&#xff08;例如驾驶循环&#xff09;涉及可变的负载、速度和环境条件&#xff0c;要求电池在动态压力下提供一致的性能。管理热行为至关重要&#xff0c;因为波动的电流会产生热量&#xf…

408第二季 - 组成原理 - IO方式II

继续中断 中断优先级包括响应优先级和处理优先级 注意下面的&#xff0c;很多都是之前说的 这里的中断向量的地址&#xff0c;就是下面的很粗的箭头 一个很复杂的图 然后记一下很复杂的东西 关中断&#xff0c;保存断点和中断服务程序寻址都是之前讲过的 继续推进&#xff01;…

Spring AOP:横切关注点的优雅解决方案

目录 概要 和面向对象编程的区别 优点 AOP的底层原理 JDK动态代理技术 AOP七大术语 切点表达式 AOP实现方式 Spring对AOP的实现包括以下3种方式&#xff1a; 在本篇文章中&#xff0c;我们主要讲解前两种方式。 基于AspectJ的AOP注解式开发 定义目标类以及目标方法…

开源 Arkts 鸿蒙应用 开发(三)Arkts语言的介绍

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发&#xff0c;公司安排开发app&#xff0c;临时学习&#xff0c;完成app的开发。开发流程和要点有些记忆模糊&#xff0c;赶紧记录&#xff0c;防止忘记。 相关链接&#xff1a; 开源 Arkts …

hot100 -- 16.多维动态规划

1.不同路径 问题&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条…

优先级继承和优先级天花板(pthread_mutexattr_setprotocol)

优先级继承和优先级天花板&#xff0c;均可以解决优先级翻转问题。 优先级翻转&#xff1a; 实例观察优先级翻转和优先级继承现象-CSDN博客 如果有两个线程A和B&#xff0c;A的优先级大于B的优先级。在B获取锁之后&#xff0c;释放锁之前&#xff0c;A想要获取锁&#xff0c…

Spark on Hive表结构变更

Spark on Hive表结构变更 1、表结构变更概述1、表结构变更概述 在Spark on Hive架构中,表结构(Schema)变更是一个常见且重要的操作。理解其背景、使用场景以及具体方式对于大数据平台管理至关重要 1.1、Spark on Hive元数据管理 Hive Metastore(HMS): 核心组件。它是一个…

NotePad++ 怎么没有找到插件管理?

今天想使用NotePad阅读markdown文档&#xff0c;却发现未安装插件&#xff0c;本想通过插件管理安装一下&#xff0c;结果没有插件管理&#xff01;&#xff01;&#xff01;&#xff01; 我发现帮助菜单里面有一个入口 可惜的是网页无法打开。。。 只能自己下载插件了。 将插件…