Question
osMailQDef error in cmsis_os.h
Posted on March 10, 2015 at 19:09
The definition of the osMailQDef macro is incorrect in cmsis_os.h; it is missing a semicolon. Here is the original version:
#if defined (osObjectsExternal) // object is external #define osMailQDef(name, queue_sz, type) \ extern struct os_mailQ_cb *os_mailQ_cb_##name \ extern osMailQDef_t os_mailQ_def_##name #else // define the object #define osMailQDef(name, queue_sz, type) \ struct os_mailQ_cb *os_mailQ_cb_##name \ const osMailQDef_t os_mailQ_def_##name = \ { (queue_sz), sizeof (type), (&os_mailQ_cb_##name) } #endif Here is the corrected version: #if defined (osObjectsExternal) // object is external #define osMailQDef(name, queue_sz, type) \ extern struct os_mailQ_cb *os_mailQ_cb_##name; \ extern osMailQDef_t os_mailQ_def_##name #else // define the object #define osMailQDef(name, queue_sz, type) \ struct os_mailQ_cb *os_mailQ_cb_##name; \ const osMailQDef_t os_mailQ_def_##name = \ { (queue_sz), sizeof (type), (&os_mailQ_cb_##name) } #endif