不枉初心,砥砺前行

皮皮祥的博客

欢迎留言,评论

导航

ZYNQ:从SDK到Vitis(二):工程开发中的一些差异

一、官方示例代码的导入

        在SDK中,开发人员导出硬件平台,启动SDK,创建相应的应用工程后,在project explorer会产生一个板级支持包文件夹,双击里面的system.mss文件可以看到里面提供了一些外设驱动的文档和示例,包括了所有你在硬件设计时用到了的外设。

        而在Vitis当中,情况将有所不同。

        首先,当开发人员导出硬件平台,启动Vitis后,需要手动创建平台工程(Platform project),在平台工程里你会发现一个名为platform.spr的文件,双击它,会出现如下画面:

        之后再单击standalone on ps7_cortexa9_0下的Board Support Package,会出现外设驱动的文档和示例,如下图所示:

 二、工程的构建

        在SDK中,构建工程的一般操作为单击选中应用工程(Application Project),然后右键选择Build Project ,或者单击上方按钮

         而在Vitis中,创建完成一个应用工程后会同时创建一个系统工程(System Project),对应用工程和系统工程进行Build会产生不同的效果,主要差异个人认为在程序固化方面。构建的操作方式与SDK相同。

        对应用工程进行Build不会产生固化文件,即BOOT.BIN文件,但会产生ELF文件,可用于带电下载和调试。构建后的结果如下:

        对系统工程进行build时,首先它会对应用工程进行build,之后再生成BOOT.BIN文件用于程序固化。构建后的结果如下:

         同时在控制台上会打印出如下信息,表示其在完成应用工程构建后的额外操作:

         此外,右键系统工程,单击Create Boot Image,会出现如下画面:

        你没看错,软件已经帮你完成了所有文件的选择、添加工作,通常来说你只需要点击Create Image就可以生成镜像文件,如果有其他需求可以在此基础上修改。完成此步操作后的结果如下所示:

         会生成一个叫_ide的文件夹和一个叫bootimage的子文件夹,里面包括了启动镜像文件。

三、下载与调试

        在SDK中,全编译工程后,右键单击应用工程文件夹 -> Run As -> Launch on Hardware , 即可将程序在线下载进ZYNQ中,如需在线调试,可选择Debug As -> Launch on Hardware

        在Vitis中类似,既可以右键单击系统工程也可以右键单击应用工程,选择Run As -> Launch on Hardware或者Debug As -> Launch on Hardware

四、固化

       如果需要固化程序,首先在系统硬件设计时就需要选中SPI外设或者SDcard外设,在板级支持包设置中选中xilffs以使用FAT文件系统,调整板子启动模式设置使板子可以从外部FLASH或SDcard中启动。

        在SDK中,首先需要创建FSBL工程,生成FSBL.elf文件,然后创建启动镜像,最后将生成的BOOT.bin文件拷贝进SDcard或者Xilinx->Program Flash将程序固化到FLASH中。

        需要注意的是,FLASH方式需要先将板子启动模式设置为JTAG模式,然后将程序固化进FLASH中,最后再将启动模式设置为FLASH启动模式。

        在Vitis中,对系统工程全编译后,会在系统工程文件夹下 -> Debug文件夹下生成BOOT.bin文件。右键系统工程,单击Create Boot Image,生成镜像文件,此后在系统工程文件夹下 -> _ide文件夹 -> bootimage文件夹下也会有一个一样的BOOT.bin文件。选择任意一个BOOT.bin文件,将文件存入SDcard或者FLASH即可,这步操作与SDK中一样。

posted on 2022-11-03 16:12  皮皮祥  阅读(719)  评论(0编辑  收藏  举报