2025-09-03 6:26 AM
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?
2025-09-03 2:40 PM
Which version is the previous?
2025-09-03 10:05 PM
STM32Cube FW_H7 V1.11.1 generates working init code with numbers in Queue Size and Item Size.
2025-09-04 1:43 PM
STM32Cube FW_H7 is just the runtime library, it does not contain anything that generates the init code. What is the version of CubeMX or CubeIDE?
2025-09-05 12:41 AM
I just checked and it is not related to different versions of STM32CubeMX and CubeIDE
I have two projects using STM32CubeMX version 6.15.0 and CubeIDE version 1.19.0. One is a STM32H5 and another a STM32H7.
With the H5, faulty init code is generated. With H7 correct init code is generated.
The way FreeRTOS is intergrated in STM32CubeMX is different in the two projects. In the H5 project it is a pack, where in H7 it is integrated some other way.