SPRUIG6K January 2018 – March 2024
Programs written for C7000 Host Emulation must use the C++14 language due to the underlying implementation, which relies heavily on C++14 constructs and features.
Depending on the compiler, a special flag to enable C++14 support may be required in the compilation command.
While not mandated, it is highly encouraged that you use standard integer types (such as
int32_t
) when programming using C7000 Host Emulation. Usage of built-in data types may compile and run, but these results cannot be guaranteed to be correct on all platforms. Using standard integer types in place of the corresponding built-in type will achieve correct results and will have no effect on the ability to transition the program to the C7000 compiler.
Use of C7000 compiler attributes and directives will create undefined warnings when using Host Emulation. This behavior is expected and cannot be remedied. If these attributes and directives are required for the program to run on a target chip, the warnings can typically be suppressed on the Host Emulation compiler.
The C7000 Host Emulation package does not emulate C7000 compiler pragmas. As a result, C7000 compiler pragmas will have no effect when used in code run with C7000 Host Emulation.
A full list of C7000 compiler symbols that are defined automatically when using Host Emulation are provided in Table 3-2
Defined Preprocessor Symbols | Description |
---|---|
__C7000__ | Defined if compiled for the C7000 target or any type of C7000 Host Emulation. |
__C7100__ | Defined if compiled for C7100 Host Emulation. |
__C7120__ | Defined if compiled for C7120 Host Emulation. |
__C7504__ | Defined if compiled for C7504 Host Emulation. |
__C7X_HOSTEM__ | Defined if compiled for Host Emulation. This is not defined when the target compiler (cl7x) is used. |
__little_endian__ | Defined by default. |