首先定义硬件:
调用zynq ip核,Re-customize IP,配置关键参数信息:
生成比特流文件后,导出xsa文件。
之后进入vitis,使用xsa文件,按步骤处理并导出相关的文件(下图的fsbl.elf、pmufw.elf、system_wrapper.bit),文件将会用于SD卡开发环境制作。
将相关文件存入虚拟机对应位置,进入虚拟机终端,输入指令,制作开发环境,并将开发环境烧录到SD卡中:
source scripts/mzuxcfg.sh # 配置环境变量
make_uboot.sh # 制作uboot程序作为引导程序
make_kernel.sh # 制作Linux系统内核
create_image.sh # 制作镜像
make_parted.sh # 格式化SD卡
deploy_image.sh # 完成SD卡系统的拷贝
此后,将编写好的C++程序以及对应的Makefile文件上传虚拟机Linux系统中,交叉编译获得ko编译驱动程序,再将编译驱动程序上传开发板的Linux系统并执行。
整体流程:
Vivado 中配置 PS 硬件(引脚、时钟、DDR 等)→ 导出硬件描述文件(HDF)→ SDK 中创建工程、编写代码→ 编译生成 .elf 并上传到 PS 运行。
目前更多是熟悉了PS端开发流程,但是实际如何进行PS端开发,如何通过PS端开发完成预期目标还有一些疑问。另外,PS端的C程序,理解上还有一些问题,目前教程的C程序内容还没有完全明白。准备找个类似题目的实训,自己上手完整进行一整段流程。
本文章使用limfx的vscode插件快速发布