Article ID: 000086916 Content Type: Troubleshooting Last Reviewed: 08/11/2016

Why does my program run correctly in DS-5 but fails when it is loaded from flash?

Environment

    Intel® Quartus® Prime Pro Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Description

If your software does not run correctly from flash check the code has not been compiled with Semihosting support enabled for I/O routines such as printf. 

Semihosting routes I/O commands such as printf to the debugger via specific libraries linked in at compile time. 

The software examples within SoCEDS/examples/software are configured to use semihosting by default.  

Resolution

The Altera-SoCFPGA-HardwareLib-FPGA-CV-GNU within SoCEDS version 15.1 and later contains a #Define at the top of the Makefile to allow semihosting to be dissabaled or enabled.   If Semihosting is disabled this example adds in a driver to route printf output through the UART.

You can also manully disable C library semihosting functions by using the code below in your C or assembler modules:

#pragma import(__use_no_semihosting_swi)   //C module

IMPORT __use_no_semihosting_swi //assembler module

Related Products

This article applies to 6 products

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
Intel® Arria® 10 SX SoC FPGA

1