ZHCUBL2L January 2018 – March 2025
由于底层实现高度依赖于 C++14 结构和功能,因此为 C7000 主机仿真编写的程序必须使用 C++14 语言。
根据编译器的不同,编译命令中可能需要一个用于启用 C++14 支持的特殊标志。
虽然并非强制要求,但强烈建议在使用 C7000 主机仿真进行编程时使用标准整数类型(例如 int32_t )。使用内置数据类型可以编译和运行,但不能保证这些结果在所有平台上都是正确的。使用标准整数类型代替相应的内置类型将实现正确的结果,并且不会影响将程序转换到 C7000 编译器的能力。
使用主机仿真时,使用 C7000 编译器属性和指令将产生未定义的警告。这种行为是预期行为,无法纠正。如果程序在目标芯片上运行需要这些属性和指令,则通常可以在主机仿真编译器上抑制警告。
C7000 主机仿真包不仿真 C7000 编译器 pragma。因此,与 C7000 主机仿真一同运行的代码中使用时,C7000 编译器 pragma 将不起作用。
表 3-2 中提供了使用主机仿真时自动定义的 C7000 编译器符号的列表。
| 定义的预处理器符号 | 说明 |
|---|---|
| __C7000__ | 如果针对 C7000 目标或任何类型的 C7000 主机仿真进行编译,则为已定义。 |
| __C7100__ | 如果针对 C7100 主机仿真进行编译,则为已定义。 |
| __C7120__ | 如果针对 C7120 主机仿真进行编译,则为已定义。 |
| __C7504__ | 如果针对 C7504 主机仿真进行编译,则为已定义。 |
| __C7524__ | 如果针对 C7524 主机仿真进行编译,则为已定义。 |
| __C7X_HOSTEM__ | 如果针对主机仿真进行编译,则为已定义。在使用目标编译器 (cl7x) 时未定义此参数。 |
| __C7X_MMA__ | 默认情况下,已定义。 |
| __C7X_MMA_1__ | 如果针对支持 MMA 1 的主机仿真进行编译,则为已定义。 |
| __C7X_MMA_2__ | 如果针对支持 MMA 2 的主机仿真进行编译,则为已定义。 |
| __C7X_MMA_2_256__ | 如果针对支持 MMA 2_256 的主机仿真进行编译,则为已定义。 |
| __C7X_MMA_2_256F__ | 如果针对支持 MMA 2_256F 的主机仿真进行编译,则为已定义。 |
| __C7X_NUM_SE__ | 定义为可用流引擎数量。当前始终为 2。 |
| __C7X_NUM_SA__ | 定义为可用的流地址生成器数量。当前始终为 4。 |
| __little_endian__ | 默认情况下,已定义。 |