野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8155|回复: 12

在中断服务函数中调到IAP函数xQueueSendFromISR后报错

[复制链接]
发表于 2019-10-21 19:22:04 | 显示全部楼层 |阅读模式

1.中断优先级分组:4
232.png

2.中断服务函数中调用消息队列发送函数xQueueSendFromISR。
3.报错Error:..\..\FreeRTOS\port\RVDS\ARM_CM7\r0p1\port.c,770
224.png




回复

使用道具 举报

发表于 2019-10-21 20:09:58 | 显示全部楼层
帮顶
回复

使用道具 举报

发表于 2019-10-22 08:46:53 | 显示全部楼层

无标题.png
回复

使用道具 举报

 楼主| 发表于 2019-10-22 09:06:58 | 显示全部楼层

RT1050不支持无子优先级的中断分组
那么设置中断优先级分组4: 主优先级8,子优先级2,这个有问题吗?
回复 支持 反对

使用道具 举报

发表于 2019-10-22 11:56:35 | 显示全部楼层
本帖最后由 995346855 于 2019-10-22 12:04 编辑
xieyoub 发表于 2019-10-22 09:06
RT1050不支持无子优先级的中断分组
那么设置中断优先级分组4: 主优先级8,子优先级2,这个有问题吗?

参考一下770行上面的注释
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-22 14:08:08 | 显示全部楼层
995346855 发表于 2019-10-22 11:56
参考一下770行上面的注释

道行太浅了,不能理解其中的意思,还需指点指点呀。 比如:  only uses CMSIS libraries for interrupt configuration 这个到底是什么意思呢?
回复 支持 反对

使用道具 举报

发表于 2019-10-22 17:00:31 | 显示全部楼层
xieyoub 发表于 2019-10-22 14:08
道行太浅了,不能理解其中的意思,还需指点指点呀。 比如:  only uses CMSIS libraries for interrupt c ...

就是如果你的库里面能找到NVIC_SetPriorityGrouping()这个函数的话,直接调用NVIC_SetPriorityGrouping(0)就可以了(机智如我
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-22 17:05:50 | 显示全部楼层
995346855 发表于 2019-10-22 17:00
就是如果你的库里面能找到NVIC_SetPriorityGrouping()这个函数的话,直接调用NVIC_SetPriorityGrouping(0 ...

中断优先级分组为0的话, 主优先级和子优先级的级数分别是多少呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-22 17:13:03 | 显示全部楼层
995346855 发表于 2019-10-22 17:00
就是如果你的库里面能找到NVIC_SetPriorityGrouping()这个函数的话,直接调用NVIC_SetPriorityGrouping(0 ...

。。。。 。。。。。。。。。。。。

回归主题:  为什么分组4会报错, 偏偏就要是0才行呢!
分组0不就是缺省值。
分组0: 主优先级 0-15,子优先级 0 ,对吗???
那么为什么又说RT1050不支持无子优先级的中断分组呢?  
回复 支持 反对

使用道具 举报

发表于 2019-10-22 19:07:55 | 显示全部楼层
xieyoub 发表于 2019-10-22 17:13
。。。。 。。。。。。。。。。。。

回归主题:  为什么分组4会报错, 偏偏就要是0才行呢!

1052太强了,我也没玩过。我只知道用freeRTOS的时候,中断分组只能是0,为什么不能是其他的,我也不知道。
回复 支持 反对

使用道具 举报

发表于 2019-10-23 09:15:26 | 显示全部楼层
你先看一下FreeRTOSConfig.h文件中的宏定义----configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY是多少。
这个宏定义规定了能调用FreeRTOS中断API的最低中断优先级,
中断优先级高于configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY规定的优先级才可调用FreeRTOS的API,而且
在中断中调用FreeRTOS的API名一定要以ISR结尾
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-23 09:43:59 | 显示全部楼层
huohua1991 发表于 2019-10-23 09:15
你先看一下FreeRTOSConfig.h文件中的宏定义----configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY是多少。
这 ...

configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY   为2呢?
回复 支持 反对

使用道具 举报

发表于 2019-10-26 10:45:06 | 显示全部楼层
你要重复造轮子么
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-25 13:16 , Processed in 0.040707 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表