在学习移植freertos到stm32F1过程中,编译时报错:
(觉得有用的朋友麻烦点个关注~~~ 后期还会进行持续更新)
..\FreeRTOS\queue.c(2762): error: #268: declaration may not appear after executable statement in block
QueueRegistryItem_t * pxEntryToWrite = NULL;
分析问题:
这个错误的原因是对于变量的声明不能放在可执行语句后面,必须在主函数开头声明变量。在程序中声明一个变量时,需要在可执行语句之前声明,否则会出现以上错误。
解决方法是双击错误自动定位到报错的文件中,找到报错中的代码字段
如图所示,我报错的是:QueueRegistryItem_t * pxEntryToWrite = NULL;这一代码句,因此我在文件中找到一样的代码
然后将其复制并往上粘贴
如图所示操作完成,重新编译即可