I have code that the number of entries is not known at compile time.
Using a pointer to a structure that is assigned at run time the data is not read correctly that is shared between the C28x and the CLA
typedef struct _tConfig
{
uint16 NoOfVal_Type1;
uint16 NoOfVal_Type2;
uint16 NoOfVal_Type3;
uint16 NoOfVal_Type4;
void* FirstEntry; /**< Start of the measurement data, this is used to get the start address of the table since 64bit would actually be 64bits instead of the 32bits that INCA uses */
} tConfig;
uint32 CLA_EventList[10]; //This contains a list of addresses to read for events that is filled out by the C28x
uint32 config = CLA_EventList[0]; //Get an event in the CLA
tConfig* eventConfig = (tConfig*)(config ); //Assign a structure to the event in CLA
uint32 no_of_val_4 = eventConfig->NoOfVal_Type2; //This fails in CLA <<<<<<<<<<<<
/* pointer to first first address to work on*/
void* const* src_addr_ptr = &(eventConfig->FirstEntry); //This also fails in CLA<<<<<<<<<<<<<
The code runs correctly if it is run from the C28x instead.