Hi all,
About the smmqt example that can be downloaded at:
http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/MQT/index.html
Customer is asking about the filler at the end of the message structure:
I'm trying to understand the MSGQ object and how to send messages
between multiple cores.
My question is specific on how to generate a structure to hold our
specific data and the filler bytes that are appended at the end.
Looking at the examples provided by TI, it seems that you are using
a filler to align the structures to the cash line boundary !
mqtciv_1_21\packages\ti\bios\drivers\examples\smmqt\evmTCI6486\smmqtest.pjt
mqtciv_1_21\packages\ti\bios\drivers\examples\smmqt\evmTCI6486\smmqtest.c
typedef struct MyMsg {
MSGQ_MsgHeader header;
Int numMsgs;
Int seqNum;
char filler[_CACHELINE_SIZE - sizeof(MSGQ_MsgHeader) - 2 *
sizeof(Int)];
} MyMsg;
The Application Program Interface.pdf page 2-276 does not specify
the need for a filler!
"Messages in a message queue can be of variable length. The
*ONLY *requirement is that the first field in the definition of
a message must be a MSGQ_MsgHeader element."
* My question:*
Do we have to have the filler or not?
and if we DO need that filler, how should we determine its size if
we have large arrays?
I know that it is probably to improve cache performance, bus is it strictly necessary?