器件型号:MSP432P4111
工具/软件:TI C/C++编译器
您好!
工具:
MSP432P4111
CCS 10.1.0.00010
TI ARM V20.2.1.LTS
概述:
我有一种设计为常量的结构(在程序存储器中)、这样我可以通过结构组进行迭代、并根据局部变量的地址确定局部变量的值、以便通过数据包网络对该变量和变量组进行流式传输。
我有一个项目条目:
/**用于定义变量的单个项目条目*/
typedef struct
{/**
用户希望实现的变量类型*/
TE_RVAR_variableType 可变类型;
/**用户将其设置为其项目所独有的枚举用户类型*/
LUint32 u32UserType;
/**指向变量地址的指针*/
void *vpData;
}TS_RVAR_item_entry;
然后、我有几组项目:
/**可在数组中使用的变量组*/
typedef 结构
{/**
指向当前组的变量项数组的指针。 //
const TS_RVAR_ITEM_Entry *tsEntryArray;
}TS_RVAR_PARAM_GROUP;
实施:
我创建一个变量项的常量结构、例如:
// LTE
const TS_RVAR_ITEM_Entry tsRVAR_GROUP_0[]=
{
.eVariableType = RVAR_TYPE_U8、
.u32UserType = AX_RVAR_USER_LTTE_STAT_STATEMACHVAR、
.vpData =(void *) sSARA.em_END_
={_ANT_AFR_END_= 0.32_END_={_END_=.UST_ANT_ANT_ANT_END_ ANT_ANT_ANT_END_ ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_ANT_
// WiFi
const TS_RVAR_ITEM_Entry tsRVAR_GROUP_1[]=
{
.eVariableType = RVAR_TYPE_U32、
.u32UserType = AX_RVAR_USER_WIFI_MAIN_STATEMACHINE、
.vpData =(void *)&sCC3XUserType = AX_ENTR_END_
、{.ipt_ENT_V64_ENTR_END_、{=.xr&s_ENTR_END_ 64_END_、{&s_ENTREST_}{&}{&}{&}{&}{&}{&}{&}{&}{Var_IP_ENTRUST_}{&}{Var_ENT_}{&}{&}{&}{&}{&&}{&&}{Var_}{&&}{Var_}{&&}{&&}{&&}{&&}{&
然后创建一个我的应用程序迭代的整体组:
const TS_RVAR_PARAM_GROUP tsRVAR_ITEMS [C_LOCALDEF_LCCM1133__NUM_GROUS]= { //组0 - LTE */ &tsRVAR_GROU_0[0]、 //组1 - wifi */ &tsRVAR_GROU_1_[0]、 };
结果:
随机地、编译器似乎不会插入变量的正确地址。 随机表示变量的某些地址是正确的、有些地址是错误的。 在我看来、编译器似乎不知道结构中的一个象 Estate 这样的变量只有一个字节、我认为它假定它是4个字节。 或者、它可能需要一些对齐。
例如、在组1中、项目0我指向位于 RAM 中0x200355C3的状态机变量的地址
但是、编译器会将错误的地址 ox 0x2003559B 插入到程序存储器中的常量指针中。 地址甚至不会关闭0xC3 v 的0x9B。
想知道是否有人可以看到我的代码有任何明显的错误、或者这是否是编译器中的异常?
我已经完全擦除了器件、清理了项目并创建了一个新的工作区、结果没有任何变化。
谢谢
太棒了!


