3、Vitis工程创建与管理:创建Vitis应用工程、理解workspace与project结构、导入与导出工程设置
说实话,很多刚接触Vitis的朋友,第一反应就是——这玩意儿跟SDK有啥区别?
我当年从SDK切换到Vitis时,也懵了好一阵。界面变了,工程结构也变了。但用久了你会发现,Vitis其实更灵活,也更贴近现代嵌入式开发流程。
这一章,咱们就聊聊Vitis工程的那些事儿。怎么创建、怎么管理、怎么迁移。嗯,都是实战中绕不开的坑。
3.1 理解Workspace与Project结构
先搞清楚两个概念:Workspace 和 Project。
Workspace,说白了就是一个工作目录。你所有的工程、配置文件、编译产物,都放在这里面。我习惯把每个项目单独建一个Workspace,比如 D:/workspace/vitis/uart_demo。这样不同项目之间不会互相干扰。
Project呢,就是具体的应用工程。一个Workspace里可以放多个Project。比如你做一个摄像头项目,可能有 camera_app、camera_test、camera_boot 三个工程。
核心结构:
workspace/— 根目录workspace/.metadata/— Eclipse配置信息,别手欠去删workspace/project_name/— 你的应用工程workspace/project_name/src/— 源代码workspace/project_name/_ide/— IDE自动生成的编译脚本workspace/project_name/Debug/— 编译产物
我曾经有个同事,把.metadata文件夹删了,结果整个Workspace打不开。嗯,血的教训。
3.2 创建Vitis应用工程
创建工程其实不难,但有几个关键点要注意。
3.2.1 从硬件平台创建
你首先得有一个硬件平台文件(.xsa)。这个文件是Vivado导出的,包含了PS配置、DDR信息、外设地址映射等。
操作步骤:
- 打开Vitis,选择Workspace路径
- 点击 File → New → Application Project
- 选择 Create a new platform from hardware (XSA)
- 导入你的.xsa文件
- 给工程起个名字,比如
led_control - 选择模板(Hello World、Empty Application等)
- 点击Finish
小技巧: 我一般选Empty Application,然后自己加源文件。模板工程里有很多冗余代码,清理起来反而麻烦。
3.2.2 理解BSP与平台
创建工程时,Vitis会自动生成一个 Board Support Package (BSP)。这个BSP其实就是底层驱动库的集合。你想想看,如果没有BSP,你得自己写UART、GPIO、IIC的驱动,那得多累。
BSP的结构:
ps7_cortexa9_0/— 处理器相关的驱动standalone_*/— 板级支持包配置include/— 头文件lib/— 编译好的库文件
我个人习惯在BSP设置里把 stdin 和 stdout 指向UART,这样printf就能直接输出到串口终端。调试起来方便很多。
3.3 导入与导出工程设置
实际项目中,你不可能一个人开发。团队协作时,工程设置的一致性就特别重要。
3.3.1 导出工程
Vitis支持导出为 Archive 格式(.zip)。
操作:
- 右键工程 → Export → Archive File
- 勾选你要导出的文件
- 选择保存路径
导出的zip里包含了源码、BSP配置、链接脚本、编译选项。别人拿到后直接导入就能编译。
注意: 导出时记得勾选 Resolve project dependencies。否则导入后可能找不到依赖的库。
3.3.2 导入工程
导入就更简单了:
- File → Import → Existing Projects into Workspace
- 选择 Select archive file
- 浏览到你的.zip文件
- 点击Finish
导入后,Vitis会自动解压并重建工程结构。如果一切顺利,你直接点Build就能编译通过。
但这里有个坑——路径问题。我曾经导入一个工程,编译报错说找不到链接脚本。查了半天,发现是工程里引用了路径 C:/Users/xxx/workspace/...。换到另一台电脑上,路径变了,自然就找不到。
所以我的建议是:所有路径都用相对路径。在工程设置里,把 Library search path 和 Include path 都改成 ${workspace_loc:/...} 这种形式。
3.4 工程管理实战经验
最后分享几个我踩过的坑,希望能帮你少走弯路。
- 不要手动修改 .metadata — 那是Vitis的配置缓存,改了容易出问题
- 定期清理工程 — 右键 → Clean,能解决很多莫名其妙的编译错误
- 版本控制 — 我习惯把
src/、BSP/、.project、.cproject提交到Git,其他自动生成的文件忽略掉 - 多工程管理 — 如果Workspace里工程太多,可以建文件夹分类。比如
app/、test/、boot/
避坑指南: 我曾经在导入工程后直接编译,结果报错说找不到 xparameters.h。后来发现是BSP没有重新生成。解决办法:右键BSP → Regenerate BSP Sources。嗯,这个操作我至少教过三个新人。
好了,关于Vitis工程创建与管理,就聊这么多。说白了,就是三个字——熟能生巧。多建几个工程,多导几次,自然就顺手了。
可可精品资料库