【发布时间】:2019-03-30 19:30:59
【问题描述】:
我刚从 Terasic (Atlas-SoC) 购买了一个新的 Cyclone V 板,并计划构建一个裸机应用程序。起初,我使用了 Terasic 提供的 GSRD。示例项目来自 14.0 版本,我的 17.1 Quartus 要求我启动对那些 14.0 IP 的更新,但我看到他们已经编译了所有内容并且我有一个切换文件夹。我需要做的只是做一个预加载器和uboot。然后我按照这些步骤(从火箭板和其他许多地方):
- 生成 .rbf 文件。
- 我使用 EDS-SoC 的 bsp-editor 工具制作了一个预加载器。
- 成功编译预加载器并获得 preloader-mkpimage.bin。
- 生成 uboot 和 uboot 脚本文件。
- 使用 alt-boot-disk-util 将预加载器加载到 SD 卡中。
- 将所有 rbf 文件、uboot 和 uboot 脚本复制到 SD 卡。此时我没有做任何应用程序,因为我想检查预加载器是否加载。
- 将SD卡插入板子,然后上电 8.在Putty中,我看到U-boot spl和Uboot工作正常。
随着第一次成功,我尝试制作自己的 HPS-FPGA 设计。我基于 HPS 配置制作自己的 HPS(初始化 I2C、UART、无 sdram 等)。对于 FPGA 部分,我放了一些 LED PIO、JTAG UART、System ID 外设等。
完成我的平台设计器(Qsys)后,我制作了一个 VHDL 顶层文件并连接所有节点(就像 GSRD 设计一样)。此时,我没有添加任何 IP,例如 HPS 重置、去抖动等,因为我只是想看看预加载器是否工作。
然后我完全按照我在 GSRD 设计中所做的这些步骤进行操作,但是这次在 Putty 上我什么也没收到。 U-Boot SPL 甚至没有出现。感觉怪怪的,就回GSRD查了。我复制了 GSRD 设计的整个文件夹,并将其作为我自己的新项目。然后我为这些 IP 启动了更新并再次编译了整个内容。之后,preloader 和 uboot 都是用同样的步骤制作的,结果让我吃惊:在 Putty 终端上,我只有这一行
U-Boot SPL 2013.01.01 (Mar 08 2019 - 10:28:04)
然后什么也没发生。我认为预加载器有问题,它与我的 Quartus 设计不匹配,或者我在构建预加载器时犯了错误。
我搜索了很多地方,提出了很多假设,并试图解决这个问题。我什至联系了 Terasic 并访问了 Intel 社区论坛,但仍然没有得到答复。
【问题讨论】:
标签: preloader intel-fpga bare-metal