学习日记
刚拿到工程的时候发现用的是A7100t的芯片需要移植到A7200t上,如果只是PL部分还好,但是工程用了一个MicroBlaze软核,对于初次接触的我有点懵,下面记录下过程以防下次踩坑
一、第一打开设置选择需要移植的器件
操作完后需要更新一下IP
更新完后对工程进行编译 (默认IO约束都是pin to pin 如果不是改了io约束后再生成bit文件)
成功生成bit文件后,在生成csa文件,因为改变了平台软核的硬件平台需要更改
然后创建vitis工程 打开vitis
创建工程名字
选择导出的xsa文件
一路next
然后把需要需要移植的.c文件.h文件全部复制过来
然后对工程进行编译 至此工程移植完成
二、工程固化
带MicroBlaze的工程固化分两种,一种是在vitis上跟zynq固化方式相似另一种是生成elf文件导入到vivado工程里生成bin文件直接烧录到flash,本文用第二种
导入elf文件(在vitis工程里编译成功后就会自动生成elf文件)
导入成功后就会在Design Sources看到elf文件夹 然后在vivado工程里面生成bit文件就可以了 (elf文件相当于把软核里面的代码打包类似于PL的bit文件,工程编译后会把这些数据直接存到BRAM里面等到程序运行直接读出对应的数据,等于是生成的bit文件包含FPGA的和vitis里面的 只是vitis的存在了BRAM里)
问题汇总
1.更改芯片型号时MicroBlaze工程报错,删除重新添加后一直报BRAM地址冲突,最后发现是地址为配置,配置完后报错消除
2.我在编译工程时把vitis的工程删除了,导致报错检测不到elf文件,最终发现是Design Sources里面的elf忘记删除了,因为要重新生成vitis工程所以这些都需要重新加载