STM32CubeMX默认支持Freertos。
/* USER CODE BEGIN Variables */ osMailQDef(mail, 6, uint8_t); /* USER CODE END Variables */
cmsis-rtos文档中有对邮件队列管理的描述,按照定义后,编译总是报错:
..\Src\freertos.c(52): error: #151: a typedef name may not be redeclared as a parameter
osMailQDef(mail, 6, uint8_t);
..\Src\freertos.c(52): error: #260-D: explicit type is missing ("int" assumed)
osMailQDef(mail, 6, uint8_t);
..\Src\freertos.c(52): error: #92: identifier-list parameters may only be used in a function definition
osMailQDef(mail, 6, uint8_t);
翻阅Freertos的文档,看它没明确说是否支持Mailbox。
查看cmsis.h,发现macro定义有个if条件:
#if 0 /* Mail Queue Management Functions are not supported in this cmsis_os version, will be added in the next release */
写的很清楚,当前版本不支持邮件队列管理。
但是在文件前头却有:
#define osFeature_MailQ 1 ///< Mail Queues: 1=available, 0=not available
前后矛盾。
另外,这里宏是多个语句声明,落了个‘;‘。
struct os_mailQ_cb *os_mailQ_cb_##name; \
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-08-03 12:24:05