文档

代码生成假设的验证

在软件在环(SIL)或处理器在环(PIL)模拟开始时,软件会参照目标硬件验证一些配置参数设置。

例如,在“配置参数”对话框中硬件实现设置指定目标行为,这将导致在生成的代码中实现隐式假设。不正确的设置可能导致:

  • 次优的代码

  • 代码执行失败、不正确的代码输出和不确定的代码行为

软件检查:

  • 设置的正确性。中的整数位长度比特数:int字段。

  • 设置是否优化。中有符号整数除法的舍入有符号整数除法舍入到字段。

模拟生成一个编码器假设页面对于代码生成报告,它提供了以下列表:

  • 检查的代码生成假设

  • 假设检查的预期结果

该表显示了何时进行检查,以及当代码生成假设不正确时的结果。

阶段 检查什么 结果

预处理器

比特数/:

  • 字符ProdBitPerChar

  • ProdBitPerShort

  • intProdBitPerInt

  • ProdBitPerLong

如果金宝app支持很久很久ProdLongLongMode)被选中,每个比特数很久很久

对于每种数据类型,如果比特数超过目标C预处理器的这些设置,则不执行预处理器检查:

  • 对于有符号整数数学,TargetPreprocMaxBitsSint

  • 对于无符号整数数学,TargetPreprocMaxBitsUint

如果模型和目标硬件的数据类型大小不匹配,则错误。

运行时

比特数/:

  • 字符ProdBitPerChar

  • ProdBitPerShort

  • intProdBitPerInt

  • ProdBitPerLong

如果模型和目标硬件的数据类型大小不匹配,则错误。

如果金宝app支持很久很久ProdLongLongMode)被选中,每个比特数很久很久

错误,如果:

  • 目标硬件不支持金宝app很久很久

  • 模型和目标硬件的数据类型大小不匹配。

大小:

  • 浮动

方法配置这些数据类型大小硬件实现窗格。只有当金宝app支持:浮点数被选中。

如果模型和目标硬件的数据类型大小不匹配,则发出警告。

,如果目标硬件数据类型的大小不是32位或64位,则产生警告。

比特数/:

  • 指针ProdBitPerPointer

  • size_tProdBitPerSizeT

  • ptrdiff_tProdBitPerPtrDiffT

如果模型和目标硬件的数据类型大小不匹配,则错误。

有符号整数除法舍入到ProdIntDivRoundTo)设置

模型参数设置为时警告未定义的

如果目标硬件行为未定义且模型参数设置未定义,则错误未定义的

如果定义了目标硬件行为,但模型和目标硬件的设置不匹配,则错误。

字节次序ProdEndianess)设置

如果设置为未指明的.否则,如果模型和目标硬件的设置不匹配,将出错。

对有符号整数右移作为算术移位ProdShiftRightIntArith)设置

如果模型和目标硬件的设置不匹配,则错误。

删除根级I/O零初始化ZeroExternalMemoryAtStartup)设置

警告如果ZeroExternalMemoryAtStartup“关闭”并且目标应用程序中全局变量的初始值不为零。

删除内部数据零初始化ZeroInternalMemoryAtStartup)设置

警告如果ZeroInternalMemoryAtStartup“关闭”并且目标应用程序中全局变量的初始值不为零。

另请参阅

相关的话题