Question about lightweight message queue:

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Question about lightweight message queue:

1,220件の閲覧回数
dcooper
Contributor II

I am trying to use _lwmsgq_init(location, num_messages, msg_size) to setup a message queue.

In this case I only need the queue to hold one message at a time and the messages may be a 100+ bytes.

I am using the following to setup the queue:

#define UARTQ_NUM_MESSAGES      1

#define UARTQ_MSG_SIZE                50        //In uint32s, allow for 200 byte messages

#define UARTQ_SIZE                          ((sizeof(LWMSGQ_STRUCT)/sizeof(_mqx_max_type)) + (UARTQ_NUM_MESSAGES * UARTQ_MSG_SIZE))

uint32_t g_uart_tx_msgq[UARTQ_SIZE];

result = _lwmsgq_init((void*)g_uart_tx_msgq, UARTQ_NUM_MESSAGES, UARTQ_MSG_SIZE);

I seem to have some confusion around the msg_size parameter.

If I use the code above code, it does not work.  After receiving a message from the queue the code ends up in the __boot_exception() while(1).

If I set UARTQ_MSG_SIZE to some smaller number (<= 25) and simply allocate the message queue as uint32_t g_uart_tx_msgq[1000], the code runs as expected for messages much larger than 8 bytes.

Is there a limit on the message size for lightweight message queues, or does anyone have other insight into what I am seeing.

Thanks

David

0 件の賞賛
返信
3 返答(返信)

867件の閲覧回数
soledad
NXP Employee
NXP Employee

Hello David,

Which MQX version are you using?

Regards

Soledad

0 件の賞賛
返信

867件の閲覧回数
dcooper
Contributor II

Soledad

Can you provide any insight on this issue?

Thanks

David

0 件の賞賛
返信

867件の閲覧回数
dcooper
Contributor II

The Release Notes in the MQX/doc folder indicate 4.1.0.

Thanks

0 件の賞賛
返信