文章 ID: 000086916 内容类型: 故障排除 上次审核日期: 2021 年 08 月 27 日

为什么我的程序在 DS-5 中正确运行,但是当它从闪存中加载时失败?

环境

  • 英特尔® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    如果您的软件无法从闪存中正确运行,则未使用针对 I/O 例程(如 printf)启用的半托管支持编译代码。

    半托管通过编译时间中链接的特定库将 I/O 命令(例如 printf)路由至调试器。

    SoCEDS/示例/软件中的软件示例被配置为默认使用半托管。

    解决方法

    SoCEDS 版本 15.1 及更高版本中的 Altera-SoCFPGA-HardwareLib-FPGA-CV-GNU 包含在 Makefile 顶部包含一个#Define,以允许使用半托管或启用。  如果半托管被禁用,此示例添加了一个驱动程序,以通过 UART 路由 printf 输出。

    您还可以通过在 C 或组装模块中使用下面的代码来管理禁用 C 库半托管功能:

    #pragma导入(__use_no_semihosting_swi)/C 模块

    导入__use_no_semihosting_swi//组装器模块

    相关产品

    本文适用于 6 产品

    Cyclone® V SX SoC FPGA
    Cyclone® V ST SoC FPGA
    Cyclone® V SE SoC FPGA
    Arria® V SX SoC FPGA
    Arria® V ST SoC FPGA
    英特尔® Arria® 10 SX SoC FPGA

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。