zynq 嵌入式开发总结

传统开发步骤

基础设计

# 使用Vidado 设计硬件工程,导出硬件设计 bitstream.
$ File-> Export-> Export Hardware...
# 使用SDK 生成 fsbl.elf

# 编译U-boot 
$ make CROSS_COMPILE=arm-xilinx-linux-gnueabi-  zynq_ac7020_defconfig 

# 使用SDK, Xilinx Tools->Create Boot Image 生成BOOT.BIN。
  即:  fsbl.elf + system_wrapper.bit + u-boot.elf

编译kernel

$ make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- uImage LOADADDR=0x00008000 
# 生成 /arch/arm/boot/uImage

编译device tree

$ dtc -I dts -O dtb devicetree.dtb ./arch/arm/boot/dts/AC7020.dts

制作文件系统

$ 基于RAM 的 ramdisk
$ 基于Flash 的 jffs2
$ 基于network 的 NFS

将 BOOT.bin, devicetree.dtb, uImage 拷贝至SD卡的FAT 分区。文件系统拷贝至ext 分区即可。

这是传统的嵌入式系统开发方式,后面 xilinx 出了petalinux 工具,降低了 uboot, kernel, filesystem 的系统配置工作量,可以从Vivado 导出的硬件信息自动完成相关软件的配置。