如何使用SD卡上的HPS加载在Altera Cyclone V SoC上运行裸机应用程序

时间:2017-01-23 12:19:56

标签: embedded fpga intel-fpga bare-metal cyclone

我有一个Terasic DE1-SoC板,我想使用HPS运行一个简单的LED闪烁裸机应用程序。

我已经学习了HPS技术参考,HPS启动指南,SoC EDS指南,并按照所有说明运行我的应用程序。

这是我的步骤的简要列表。

  1. 使用HPS组件和一些PIO(用于板载LED和按钮)在QSYS中创建系统
  2. 运行bsp-editor以创建预加载器。我想从SD卡运行所以我检查BOOT_FROM_SDMMC选项。此外,我希望我的应用程序在FAT分区(检查FAT_SUPPORT,FAT_BOOT PARTITION 1,FAT_LOAD_PAYLOAD_NAME test.img(或者它应该是test.bin?))取消选中WATCHDOG_ENABLE。我想看到串行连接启动预加载器进程,所以我检查SERIAL_SUPPORT。其他设置保持不变。
  3. 键入" make"在SOC EDS 15.0命令shell中获取preloader-mkpimage.bin
  4. 通过在带有FAT32分区和自定义分区A2的SD卡上键入alt-boot-disk-util来编写preloader-mkpimage.bin。
  5. 在DS-5中创建简单的应用程序,编译它并获取test.axf然后使用fromelf命令将其转换为test.bin,然后使用mkimage工具将其转换为test.img。
  6. 在SD卡FAT32分区上拖放测试.img。
  7. 将其插入电路板并打开电源
  8. 在板上加载.sof(我的系统FPGA-HPS)
  9. 按重置按钮
  10. 重置HPS

    所以问题是串行连接没有任何进展,所以我认为预加载器根本不起作用,HPS重置没有帮助。

    我甚至看不到"< 0>"在终端,只是空白页。 我已经尝试过使用Terasic提供的Linux预建图像,他们正在100%工作。 我根据altera docs做了一切,但没有任何工作。 即使是官方的例子altera-socfpga-hardwarelib-unhosted也不起作用。我试图从示例中使用他们的预加载器,但在终端窗口中我只看到"< 0>"我重置HPS时的符号。

    顺便说一下App只在调试器DS5中工作,插入SD卡并加载了.sof文件。我不清楚地了解.scat文件的含义和编写方式。当我在转换test.bin-> test.img时使用mkimage工具时,我不应该理解我应该使用什么加载地址和入口点(我应该这样做转换还是在BSP设置中使用test.bin ???)我认为主要问题是预加载器不正确。有什么问题?

    请帮忙!

    UPD:在QSYS中编辑HPS部件(添加UART模块)并重新生成系统并重新构建预加载器(其他先前的设置未更改)后,我开始在终端中收到正确的消息关于成功加载U-boot SPL。但仍然无法运行test.img。正在努力。

    UPD2:好的,我解决了这个问题,现在它工作正常

0 个答案:

没有答案