cancel
Showing results for 
Search instead for 
Did you mean: 

FreeRTOS queue size / item size

mip
Associate II

STM32H562, STM32Cube FW_H5 V1.5.0, X-CUBE-FREERTOS.1.2.0

If i want a FreeRTOS queue of size 32 and item size 12 bytes i will write 32 i Queue Size and 12 in Item Size in CubeMX. Previously it would generate init code:

osMessageQueueId_t setpoint_sendHandle;
uint8_t setpoint_send_buffer[ 32 * 12 ];
osStaticMessageQDef_t setpoint_sendControlBlock;
const osMessageQueueAttr_t setpoint_send_attributes = {
  .name = "setpoint_send",
  .cb_mem = &setpoint_sendControlBlock,
  .cb_size = sizeof(setpoint_sendControlBlock),
  .mq_mem = &setpoint_send_buffer,
  .mq_size = sizeof(setpoint_send_buffer)
};

setpoint_sendHandle = osMessageQueueNew (32, 12, &setpoint_send_attributes);

With STM32Cube FW_H5 V1.5.0, X-CUBE-FREERTOS.1.2.0 i get:

osMessageQueueId_t setpoint_sendHandle;
uint8_t setpoint_send_buffer[ 32 * sizeof(12)];
osStaticMessageQDef_t setpoint_sendControlBlock;
const osMessageQueueAttr_t setpoint_send_attributes = {
  .name = "setpoint_send",
  .cb_mem = &setpoint_sendControlBlock,
  .cb_size = sizeof(setpoint_sendControlBlock),
  .mq_mem = &setpoint_send_buffer,
  .mq_size = sizeof(setpoint_send_buffer)
};

setpoint_sendHandle = osMessageQueueNew (32, sizeof(12), &setpoint_send_attributes);

 Which does not work as expected. Should i do something differently in CubeMX with the latest FreeRTOS?

0 REPLIES 0