Hi soledad, I cannot post my code, but as an example, I do have one feature that requires the LW message queue. My modbus packet assembler ISR puts assembled packets into a LW message queue:
if( g_modbus_state != FrameNotOk) {
g_modbus_state = FrameOk;
// copy message to queue
_lwmsgq_send( (void*)packet_queue, (_mqx_max_type_ptr)g_rxbuff, 0);//LWMSGQ_SEND_BLOCK_ON_FULL);
}
and a MQX task waits for it to arrive:
// get packet from message queue
_mqx_uint msg[64]; // max number of messages we'll support in message queue is 1 command packet
_mqx_uint timeout_sec = 2;
_mqx_uint timeout_ticks = timeout_sec * 200; // 200 ticks / sec
_mqx_uint ret = _lwmsgq_receive( (void*)packet_queue, msg, LWMSGQ_RECEIVE_BLOCK_ON_EMPTY, timeout_ticks, 0);
it's also initialized in the constructor of my modbus command handler class:
// initialize the message queue so we can get responses from the Modbus RTU slaves
_mqx_uint result = _lwmsgq_init( (void*)packet_queue, 1 /* number of message */, 64 /* message size */);
So I guess it is strange that TAD wouldn't recognize my usage of this feature. Any other information or ideas for diagnosing this would be appreciated!
Oh, and yes, I am using KDS 3.0 with KSDK 1.2. 