ADA95中的地址绑定?
我们正在使用ADA语言(ADA95)进行实时开发。我们面临的问题是 地址绑定机制。在此之前,我们使用了ADA83,其中are直接机制为ADA95中的地址绑定?,ada,memory-address,Ada,Memory Address,我们正在使用ADA语言(ADA95)进行实时开发。我们面临的问题是 地址绑定机制。在此之前,我们使用了ADA83,其中are直接机制为 在16#12345678#时用于x 将地址16#12345678#分配给变量x;但在ADA95中,不支持这种语法。另一种赋值方法是声明变量的记录。然后创建某个系统的对象 包然后传递地址。这在处理单个变量时非常麻烦。此方法仅适用于具有连续内存位置的多个变量,以便将地址分配给第一个变量,其余变量将自动对齐 TYPE SIU_Type IS
在16#12345678#时用于x 将地址16#12345678#分配给变量x;但在ADA95中,不支持这种语法。另一种赋值方法是声明变量的记录。然后创建某个系统的对象 包然后传递地址。这在处理单个变量时非常麻烦。此方法仅适用于具有连续内存位置的多个变量,以便将地址分配给第一个变量,其余变量将自动对齐
TYPE SIU_Type IS
RECORD
SIU_Reserved0 : GLOBAL_TYPE.ORDINAL;
MIDR : GLOBAL_TYPE.ORDINAL;
SIU_Reserved00 : GLOBAL_TYPE.ORDINAL;
END RECORD;
package SIU_Conv is new System.Address_To_Access_Conversions(SIU_Type);
SIU : constant SIU_Conv.Object_Pointer := SIU_Conv.To_Pointer(SIU_Address);
在我们的项目中,我们在许多需要地址分配的地方使用了变量,但第二种方法非常麻烦
使代码变得非常复杂
如果有的话,请提出其他建议 Ada95语法应为:
用于X地址使用系统。存储元素。到地址(16#12345678#)代码>
为了避免任何隐式初始化,您还应该执行:pragma导入(Ada,X)代码>Ada95语法应为:
用于X地址使用系统。存储元素。到地址(16#12345678#)代码>
为了避免任何隐式初始化,您还应该执行:pragma导入(Ada,X)代码>