首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LPC1343中的FreeRTOS

LPC1343中的FreeRTOS
EN

Stack Overflow用户
提问于 2016-11-28 15:01:18
回答 2查看 259关注 0票数 0

我正在尝试将我的项目配置到用于LPC1343的FreeRTOS。但是我得到了以下错误

代码语言:javascript
复制
Error[Pe020]: identifier "configMAX_SYSCALL_INTERRUPT_PRIORITY" is undefined C:\Users\IAR Embedded Workbench\FreeRTOS\Source\queue.c 952 


Fatal Error[Pe035]: #error directive: configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to 0.  See  C:\Users\IAR Embedded Workbench\FreeRTOS\Source\portable\IAR\ARM_CM3\port.c 82

你能帮我解决这些错误吗?我还想知道当我将FreeRTOS配置到我的LPC1343时,我必须采取哪些步骤。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2016-11-28 19:02:17

显然,当第一次遇到队列c的952行时,没有定义configMAX_SYSCALL_INTERRUPT_PRIORITY

当显式测试值而不是是否存在时,未定义的宏的值为零;因此#error指令输出。也就是说,如果ABC未定义,则#if defined ABC为false,但#if ABC==0将为true。

configMAX_SYSCALL_INTERRUPT_PRIORITY应该按照here的描述在FreeRTOSConfig.h中定义,并且不能为零。请务必阅读有关设置此值的所有说明- Cortex-M3端口有特殊注意事项。

票数 0
EN

Stack Overflow用户

发布于 2016-11-30 03:43:43

所需的值取决于微控制器系列。这有点棘手,这就是为什么要在这里解释它的原因:http://www.freertos.org/RTOS-Cortex-M3-M4.html你需要知道在你的LPC设备上实现了多少中断优先级位(在硬件中),然后设置常量来匹配它。如果您使用的是最先进的FreeRTOS版本,并且定义了configASSERT(),那么如果您弄错了,它会告诉您。也可以通过将0xFF写入中断优先级寄存器,然后读回寄存器值来手动计算出8位中有多少位“卡住”。如上所述,这些比特将是最高有效比特,而不是最初可能期望的最低有效比特。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40838736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档