-
Bug
-
Resolution: Fixed
-
High
-
MCAL
-
MCAL-23487
-
MCUSW_J7_09.01.00
-
MCUSW_J7_09.02.00
-
The MCAL IPC library goes into the ASIL-D MCU R5F core. Customer is using GHS Safety Certified Compiler which generates a number of errors and warnings, which do not show up with TI ARM Clang Compiler.
mcal/CddIpc/ipc_baremetal_hw/src/ipc_api.c", line 143 (col. 26): error #1029: type containing an unknown-size array is not allowedError line marked ith ==>
/** * \brief Element to hold payload copied onto receiver's queue. */ typedef struct RPMessage_MsgElem_s { IpcUtils_QElem elem; /**< Allow list linking. */ uint32 len; /**< Length of data */ uint32 src; /**< Src address/endPt of the msg */ uint32 procId; /**< Processor sending the msg */ ==> uint8 data[]; /**< payload begins here */ } RPMessage_MsgElem;/* The RPMessage Object */ typedef struct RPMessage_Object_s { uint32 endPt; /**< Unique id (procId | queueIndex) */ void *semHandle; /**< I/O Completion */ RPMessage_Callback cb; /**< RPMessage Callback */ void* arg; /**< Callback argument */ IpcUtils_QHandle queue; /**< Queue of pending messages */ uint8 unblocked; /**< Use with signal to unblock _receive() */ IpcUtils_HeapParams heapParams; /* Save the heapBuf params to delete Heap */ IpcUtils_HeapHandle heap; /* Heap from which to allocate free messages */ RPMessage_EndptPool *pool; /**< track associated pool for cleanup */ void* recv_buffer; /**< Application buffer from RPMessage_recv() */ RPMessage_MsgElem payload; /**< Message info for RPMessage_recv() */ } RPMessage_Object;
Analysis
GHS doesn't like any structure or variable that has zero size. Given that this is data generated by TI, Customer insists TI fix the issues.