We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I find one problem (maybe bug) in CMSIS working with FreeRTOS. Working on the STMCubeIDE and programing F103RB (NUCLEO). I create the Queues. Properties "Item Size" set it to "20" (number). I want to convey a structure of this size. Default propertis is "uint16_t" (character string).
During operation, only the first 4 bytes of the structure are transferred.I debug program and find problem and repear this.
In the file cmsis.os.c replase line 766with
const osMessageQDef_t os_messageQ_def_##name = \ { (queue_sz), sizeof (type), NULL, NULL }
to
const osMessageQDef_t os_messageQ_def_##name = \ { (queue_sz), type, NULL, NULL }
Delete "sizeof()"After the change, program work good.Is this actually some library bug? I'm not a specialist and maybe I'm doing something wrong.
I don't know whose side the problem is, MCSI or FreeRTOS. Maybe FreeRTOS is using the wrong function. It is partially covered here forums.freertos.org/.../7597
So, read the thread you mention again. It explains it.
Aleksander said:I don't know whose side the problem is
Usually, each source file has a comment at the top with copyright & licence details - this will tell you whose file it is.