OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4724|回复: 4

加队列收发消息后就只能运行一遍任务,无法任务切换

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-9-23
在线时间
2 小时
发表于 2019-10-4 14:13:54 | 显示全部楼层 |阅读模式
1金钱
1. 不加队列消息 收发 ,运行的没有问题
2. 加了队列消息 , 所有任务都只运行第一次,然后不运行了,任务不轮巡切换了
卡在图里的那句,

任务堆栈内存都分配到1024了,任务/队列都创建成功了

QQ图片20191004141058.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

86

帖子

0

精华

高级会员

Rank: 4

积分
567
金钱
567
注册时间
2014-12-19
在线时间
139 小时
发表于 2019-10-28 18:18:30 | 显示全部楼层
你好。我用STM32cubeMX建了一个带FreeRtos、串口、DMA、Hal库工程,,然后串口接收模式改成空闲中断接收方式,也遇到和你一样的情况。我把串口中断接收函数中的FreeRtos的API函数屏蔽,又正常了。
回复

使用道具 举报

12

主题

86

帖子

0

精华

高级会员

Rank: 4

积分
567
金钱
567
注册时间
2014-12-19
在线时间
139 小时
发表于 2019-10-28 18:28:29 | 显示全部楼层
然后我用STM32cubeMX建了带Hal库工程,自己移植FreeRTOS,用Hal库写配置串口和DMA,串口接收模式也用空闲中断接收方式。串口中断优先级设成6,受FreeRTOS管理控制。串口收发正常,任务也运行正常。我观察了还是STM32cubeMX生成工程,配置了DMA的中断优先级,是不是因为这个默认配置的原因呀?
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-9-23
在线时间
2 小时
 楼主| 发表于 2019-11-25 16:00:25 | 显示全部楼层
尤尤 发表于 2019-10-28 18:28
然后我用STM32cubeMX建了带Hal库工程,自己移植FreeRTOS,用Hal库写配置串口和DMA,串口接收模式也用空闲中 ...

我的原因是 在临界区里 收发了一波队列,然后任务切换有问题,把队列移出临界区就ok了
回复

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-11-28 17:39:10 | 显示全部楼层
帮顶                     
成功没有捷径
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 21:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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