背景:
使用对象:linux开发人员。如果只是开发linux端的应用或者内核,其实是可不用xilinx SDK软件的。
1. xilinx SDK 软件的有些功能不能用,在创建Application的时候出错。
2. 没有JTAG调试器
从QSPI Flash booting
参考:ug1165-zynq-embedded-design-tutorial.pdf
查找:Booting Linux from QSPI Flash
-
cd
-
petalinux-config
-
Select Subsystem AUTO Hardware Settings
- Select Advanced Bootable Images Storage Settings.
- Select boot image settings.
- Select Image Storage Media.
- Select boot device as primary flash.
- Select Advanced Bootable Images Storage Settings
- Select kernel image settings.
- Select Image Storage Media.
- Select the storage device as primary flash.
- Select Advanced Bootable Images Storage Settings.
-
保存配置,petalinux-build
-
petalinux-package --boot --format BIN --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot --force
生成BOOT.BIN文件
-
烧写linux系统到QSPI flash
生成BOOT.BIN文件
petalinux-package --boot --format BIN --fsbl images/linux/zynq_fsbl.elf --fpga images/linux/system.bit --u-boot --force
生成BOOT.BIN文件
烧写linux系统到QSPI flash
擦除 QSPI flash
sf probe 0 0 0
sf erase 0 0x01000000 //从0地址开始,擦除16M或者
eraseall /dev/mtd0 //linux命令
写QSPI flash
写QSPI flash有三种方式:
-
使用xilinx SDK软件来擦除,需要JTAG调试器,SDK软件安装出问题几率很大,所以不喜欢用这种方式。
-
使用flashcp命令来写QSPI flash
-
把生成的新的BOOT.BIN 重新起个名字 BOOT_QSPI.BIN,然后考到sd卡里
-
JP2连接,JP3打开,从SD卡启动,进入linux系统
-
df -h,查看sd卡在哪
-
flashcp /run/media/mmcblk0p1/BOOT_QSPI.BIN /dev/mtd0,
- 写到分区0,也可以使用dd命令:dd if= /run/media/mmcblk0p1/BOOT_QSPI.BIN of=/dev/mtd0
-
flashcp /run/media/mmcblk0p1/image_QSPI.ub /dev/mtd2,写到分区2
- 写到分区0,也可以使用dd命令:dd if=/run/media/mmcblk0p1/image_QSPI.ub of=/dev/mtd2
-
-
使用u-boot命令sf来写QSPI flash
- JP2连接,JP3打开:进入SD卡模式启动
- 进入U-boot
- 使用sf命令写QSPI flash