仅对英特尔可见 — GUID: lro1418633092738
Ixiasoft
1.5.6.3. 构建和运行实例
本节介绍了构件和运行从FPGA 引导的实例所需步骤。
注: 本文档附带存档文件中有全部二进制。
为避免出现"Device Open Failed!"错误信息,请务必在以下用户模式中操作:
- Windows — "Administrator mode user"
- Linux — "sudo mode"
- 构建裸机应用样本,或直接使用已提供的hello-mkimage.bin文件。
- 编译 Quartus® Prime中提供的从 FPGHA 硬件引导的设计,以创建交付信息。
- 在编译过的硬件项目基础上生成预加载器。选择如下选项:
- 查看选项 spl.boot.BOOT_FROM_SDMMC 。
- 取消查看其他引导选项 (spl.boot.BOOT_FROM_RAM, spl.boot.BOOT_FROM_QSPI,spl.boot.BOOT_FROM_NAND)。
- 取消查看选项spl.boot.FAT_SUPPORT. 从而告知预加载器加载自定义分区中的裸机应用。
注: spl.boot.SDMMC_NEXT_BOOT_IMAGE = 0x40000。裸机应用映像需要存放在这里。
- 查看选项 spl.boot.SDRAM_SCRUBBING 和 spl.boot.SDRAM_SCRUB_REMAIN_REGION。 SDRAM将因此归零,以避免执行裸机程序时出现任何ECC错误。
- 取消查看选项spl.boot.WATCHDOG_ENABLE。因为将不在裸机应用里“喂狗”(kicking the watchdog)。
- 查看选项 spl.boot.EXE_ON_FPGA。
- 编译预加载器,从而将创建预加载器可执行文件。
- 使用预加载器文件夹中的命令把预加载器可执行转换成hex文件: arm-altera-eabi-objcopy -O ihex --adjust-vma -0xc0000000 uboot-socfpga/spl/u-boot-spl preloader.hex
- 再次编译硬件设计,把新创建的hex文件加入考虑之中。
注: hex文件需要位于<hardware_design_folder>/software/spl_bsp/preloader.hex中。以此创建文件<hardware_design_folder>/output_files/soc_system.sof。
- 使用fdisk, 或SoC EDS中的SD卡映像实例,在SD卡中手动创建一个id=A2自定义分区:
- 使用Embedded Command Shell中的 ‘tar -xzf<filename>’ 命令解压缩<SoCEDS installation folder>:\embedded\embeddedsw\socfpga\prebuilt_images\sd_card_linux_boot_image.tar.gz中的SD卡映像。以此创建文件sd_card_linux_boot_image.img。
- 使用空闲的Win32DiskImager工具写入文件sd_card_linux_boot_image.img到SD卡。
- 利用SoC EDS中的SD卡引导工具写入裸机应用映像到SD卡自定义分区:
- 启动一个Embedded Command Shell。
- 运行命令 “alt-boot-disk-util -a write -b hello-mkimage.bin -d <sd_card_drive_letter>”
- 配置Cyclone V电路板从FPGA引导,需为BOOTSEL跳线作如下配置:
- BOOTSEL0 (J28): 左
- BOOTSEL1 (J29): 右
- BOOTSEL2 (J30): 右
- 使用USB串行连接把电板连接到PC,并使用115,200-8-N-1在PC上开启一个串行终端设备。
- SD卡插入电路板。
- 上电电路板。
串行终端的电路板上无反应,因为没有配置FPGA,所以Boot ROM不会跳转到FPGA。
- 用 Quartus® PrimeProgrammer以及(.sof)文件配置FPGA。
注: (.sof)文件已包含在本卷附带的存档文件中。
- 按下HPS冷复位钮(S7)。
- 串行控制台将显示预加载器正在FPGA中运行,同时裸机应用正在SD卡中运行。
图 17. FPGA中运行的预加载器的串行控制台
相关信息