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

Embedded 如何使用从SD卡加载的HPS在Altera Cyclone V SoC上运行裸机应用程序,embedded,fpga,intel-fpga,bare-metal,cyclone,Embedded,Fpga,Intel Fpga,Bare Metal,Cyclone,我有一个Terasic DE1 SoC板,我想用HPS运行一个简单的led闪烁裸金属应用程序 我学习了HPS技术参考、HPS引导指南、SoC EDS指南,并按照所有说明运行我的应用程序 下面是我的步骤的简要列表 使用HPS组件和一些PIO(用于车载LED和按钮)在QSYS中创建一个系统 运行bsp编辑器以创建预加载程序。我想从SD卡运行,所以我选中了从SDMMC启动选项。此外,我希望我的应用程序位于FAT分区(检查FAT分区支持、FAT分区启动1、FAT分区加载负载负载名称test.img(或者

我有一个Terasic DE1 SoC板,我想用HPS运行一个简单的led闪烁裸金属应用程序

我学习了HPS技术参考、HPS引导指南、SoC EDS指南,并按照所有说明运行我的应用程序

下面是我的步骤的简要列表

  • 使用HPS组件和一些PIO(用于车载LED和按钮)在QSYS中创建一个系统
  • 运行bsp编辑器以创建预加载程序。我想从SD卡运行,所以我选中了从SDMMC启动选项。此外,我希望我的应用程序位于FAT分区(检查FAT分区支持、FAT分区启动1、FAT分区加载负载负载名称test.img(或者应该是test.bin?)取消选中WATCHDOG启用。我想在串行连接中看到预加载进程的引导,所以我检查了串行接口的支持。其他设置保持不变
  • 在SOC EDS 15.0命令外壳中键入“make”以获取preload-mkpimage.bin
  • 在具有FAT32分区和自定义分区A2的sd卡上键入alt boot disk util,写入PRELOER-mkpimage.bin
  • 在DS-5中创建简单应用程序,编译并获取test.axf,然后使用fromelf命令将其转换为test.bin,然后使用mkimage工具在test.img中转换
  • sd卡FAT32分区上的Drag-n-drop test.img
  • 将其插入电路板并通电
  • 车载软件(我的系统FPGA-HPS)
  • 按重置按钮重置HPS
  • 所以问题是,并没有发生任何事情在串行连接,所以我的东西,预加载是不工作的,在所有的HPS复位并没有帮助

    在终端中我甚至看不到“”,只有空白页。 我尝试过使用Terasic提供的linux预构建图像,他们正在100%地使用。 我按照altera的文件做每件事,但什么都不起作用。 即使是官方示例
    altera socfpga硬件配置文件unosted
    也不起作用。我试着使用示例中的预加载程序,但在终端窗口中,我在重置HPS时只看到“”符号

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

    请帮忙

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


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

    看看电路板的引导选择是否适合您的情况。并阅读如何编译托管或半托管应用程序。查看主板的引导选择是否适合您的情况。并阅读如何编译托管或半托管应用程序。