1.背景说明
本人有zynq7020和7100开发经验,复旦微FMQL系列只是PS部分的ARM由zynq的A9双核魔改成了A7四核心,其他基本都可对标。本篇文章先简述复旦微的开发流程,如有需要请留言,本人再更新细节。
2.开发流程
- 环境准备(硬件、软件)
- PL部分设计
- 生成boot.bin
- 内核、文件系统
- 整板调试
1.环境准备
复旦微有一个下载器可以下载复旦微的全部资料,可以通过技术支持申请账号密码,这里强烈建议大家下载完整的资料,大概200G左右,里面包含例程、最新BSP、虚拟机镜像等。
安装的软件有和Vivado对标的Procise;对标SDK的IAR;还得装2018.3版本的Vivado(因为Procise提供的IP核非常少,很多需要先用Vivado建立工程,然后再导入到Procise);最后得装虚拟机及ubuntu18,然后把最新的BSP包在ubuntu里面建立好(注意BSP包需要打补丁)。
准备的硬件就是贴装好的板子,最好有一块开发板用来对比验证。如果是QSPI+EMMC开发则需要Jlink,连接在PL的JTAG口,然后选择JTAG模式启动,同时选级联而非独立模式,就可以进行QSPI的烧录了。如果是SD卡启动方式,则不需要用JTAG烧录QSPI,直接把生成的BOOT.bin和内核文件系统都放在SD中,就可以启动了。
2.PL部分设计
PL部分设计其实就是FPGA设计,可以自己写逻辑或者使用IP核,这部分就自由发挥了,如果是简单的一些逻辑可以在Procise里面直接搞定,如果比较复杂或者需要用到Vivado里面的IP核,就需要对Vivado打补丁,不然Procise导入Vivado工程的时候,这些IP核或者Vivado的逻辑会报问题。
3.生成boot.bin
Boot.bin文件由三部分组成,分别是FPGA的加载文件.bit、用于Boot的最初的引导程序FSBL以及U-Boot。其中,.bit文件如果是vivado生成的然后导入Procise工程的,则直接使用vivado生成的.bit,否则则正常使用Procise工程生成的.bit,FSBL文件是Procise工程加载IAR后make得到,最后一个文件U-Boot文件是最费事的,需要将Procise生成的DeviceTree文件传到ubuntu的环境中,同时如果是用Vivado建立的工程,这时候也需要将Vivado生成的.hdf硬件描述文件传到ubuntu的环境中,调用petalinux来编译新的设备树dtb文件,再编译uboot。
4.内核、文件系统
内核文件系统相对独立,接着uboot编译即可,如果需要配置相应的驱动或者服务,则可以通过make menuconfig 交互菜单实现,特殊的功能可以直接编辑源码。生成的内核、文件系统最终可以放置再eMMC或者SD卡内,由U-Boot引导。
5.整板调试
整板调试,主要就是通过调试串口的打印观察各阶段报错信息,然后进行代码、功能调试。关于U-Boot、内核、文件系统,可以结合ChatGPT进行调试,效率非常高。
3.备注说明
这是一篇简要的关于复旦微FMQL系列SOC的开发流程说明,也是自己的一点笔记,内容比较简练,如对细节有疑问,可以留言私信。