硬汉嵌入式论坛

 找回密码
 立即注册
查看: 608|回复: 5
收起左侧

[μCOS-II] UCOS进入os_taskidle出不来

[复制链接]

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
发表于 2023-2-27 12:46:04 | 显示全部楼层 |阅读模式
使用UCOS2操作系统,STM32H7的I2S速度提高后,再操作按键,UCOS容易进入os_taskidle出不来,请教如何解决?谢谢。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-2-27 13:27:34 | 显示全部楼层
一直在空闲任务里面,主要是下面两个问题
1、程序没有崩溃,一直有中断霸占CPU,而你高优先级任务也一直在等待中断发送消息通知。
2、系统已经崩溃,着重检测下任务栈和系统栈大小是否够。
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
 楼主| 发表于 2023-2-27 16:01:18 | 显示全部楼层
eric2013 发表于 2023-2-27 13:27
一直在空闲任务里面,主要是下面两个问题
1、程序没有崩溃,一直有中断霸占CPU,而你高优先级任务也一直在 ...

程序没有崩溃,系统还能操作。感觉有按键操作后,I2S的DMA传输已经乱了,变成单声道了。
I2S速度提高到1.4Mbps左右后,每次传输32KB,DMA中断会频繁很多。
不操作按键一切正常。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-2-27 16:18:30 | 显示全部楼层
pnhywyb 发表于 2023-2-27 16:01
程序没有崩溃,系统还能操作。感觉有按键操作后,I2S的DMA传输已经乱了,变成单声道了。
I2S速度提高到1 ...

是1.4Mbsp还是1.4MBsp

1.4Mbps / 8 = 175KB,DMA中断速度175/32 = 5.4次中断
1.4MBps / 32K = 43.7,DMA中断速度43.7次中断
回复

使用道具 举报

25

主题

68

回帖

143

积分

初级会员

积分
143
QQ
 楼主| 发表于 2023-2-28 16:11:12 | 显示全部楼层
eric2013 发表于 2023-2-27 16:18
是1.4Mbsp还是1.4MBsp

1.4Mbps / 8 = 175KB,DMA中断速度175/32 = 5.4次中断

应该是这样:有2个I2S同时在工作,每个I2S相当于32倍的44.1KB/S。
这样2个I2S的DMA中断就很频繁了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2023-3-1 17:23:53 | 显示全部楼层
pnhywyb 发表于 2023-2-28 16:11
应该是这样:有2个I2S同时在工作,每个I2S相当于32倍的44.1KB/S。
这样2个I2S的DMA中断就很频繁了。

中断速度还是很低,如果你的DMA缓冲确实是32KB,你的中断速度远低于1KHz
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-28 12:05 , Processed in 0.175256 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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