找回密码
 立即注册
楼主: CosyOS

全局不关总中断的 RTOS,CosyOS-III-V1.2.0, 送 擎天柱-AI8051U转89C52核心板

 火... [复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

548

积分

高级会员

积分
548
发表于 2024-5-17 14:37:35 | 显示全部楼层
本帖最后由 Yang.Lian 于 2024-5-17 16:17 编辑

在 STC32G12K128 上 使用 COSYII 2.2.1 时候 4/5 中断都可以正常中断
但是 DMA_ADC_VECTOR (48)中断,却中断不了。
用 DMA_ADC_STA |= 0x01,又可以正常进入对应的中断。


如果不使用 COSYII 操作系统,直接 main 里用同样的代码初始化又可以正常中断。

好奇怪,求解

进一步测试发现,这个跟时钟的配置有关系

如果 SYSCFG_SYSCLK 配置成 11059200
且SYSCFG_SYSTICKCYCLE 配置成 1250 就会导致 DMA_ADC_VECTOR (48)中断 进不去

如果 SYSCFG_SYSCLK 配置成 12000000
且SYSCFG_SYSTICKCYCLE 配置成 1000 就没有这个问题 DMA_ADC_VECTOR (48)中断 可以正常进


我晕了个大了,我之前问过 11059200 和 1250 的时钟配置有没有隐患,楼主回复说没有,我就没有往这个事情上想,没想到还真有问题

不知道这算不算一个bug,还是说我不应该用 11059200/1250 的搭配?


点评

从理论上来说,除了误差之外,我确实没想到会有什么隐患。 CosyOS 的 系统滴答周期 和 任务调度 等,怎么会影响到 DMA 中断? 这个问题我也不理解,想不到是什么原因。  详情 回复 发表于 2024-5-17 18:09
你下载最新的 CosyOS-II-STC32G-工程模板 试一下,在顶楼有提供下载。  详情 回复 发表于 2024-5-17 16:20
希望这个世界让我装一次B
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-17 16:20:51 | 显示全部楼层
Yang.*** 发表于 2024-5-17 14:37
在 STC32G12K128 上 使用 COSYII 2.2.1 时候 4/5 中断都可以正常中断
但是 DMA_ADC_VECTOR (48)中断,却 ...

你下载最新的 CosyOS-II-STC32G-工程模板 试一下,在顶楼有提供下载。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

548

积分

高级会员

积分
548
发表于 2024-5-17 16:56:03 | 显示全部楼层
本帖最后由 Yang.Lian 于 2024-5-17 17:00 编辑
Cos*** 发表于 2024-5-17 16:20
你下载最新的 CosyOS-II-STC32G-工程模板 试一下,在顶楼有提供下载。

非常乐意效劳

两个版本都测试了,表现是一模一样

本来想看看是什么原因,看了一下调度的代码,劝退了,楼主上,我下,我可以帮忙测试

我建了两个分支,新旧版本都有

点评

屏蔽警告: [attachimg]44313[/attachimg] 删除 285~290 行即可。  详情 回复 发表于 2024-5-17 18:27
我看你可以配置为 11059200 和 1000 ,延时误差很小的, 测试一下,DMA中断会不会正常。  详情 回复 发表于 2024-5-17 18:18
希望这个世界让我装一次B
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-17 18:09:15 | 显示全部楼层
Yang.*** 发表于 2024-5-17 14:37
在 STC32G12K128 上 使用 COSYII 2.2.1 时候 4/5 中断都可以正常中断
但是 DMA_ADC_VECTOR (48)中断,却 ...

从理论上来说,除了误差之外,我确实没想到会有什么隐患。
CosyOS 的 系统滴答周期 和 任务调度 等,怎么会影响到 DMA 中断?
这个问题我也不理解,想不到是什么原因。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

548

积分

高级会员

积分
548
发表于 2024-5-17 18:16:17 | 显示全部楼层
本帖最后由 Yang.Lian 于 2024-5-17 18:21 编辑
Cos*** 发表于 2024-5-17 18:09
从理论上来说,除了误差之外,我确实没想到会有什么隐患。
CosyOS 的 系统滴答周期 和 任务调度 等,怎么 ...

真的好奇怪啊

我现在收回我说的,即便我用12000000/1000 还是有问题

上一个帖子的时候,我只在 12000000/1000 和 11059200/1000 之间改动,确实可以表现出 ADC DMA 中断能进和不能进的问题


现在我把DEBUG调试输出到 UART1,也确实可以在串口看到 CosyOS-II 任务管理器(彩蛋新版本是中文,旧版本是英文)


此时 ADC DMA又进不了

点评

测试程序中, STC32G_UART_Isr.c ,对 UART2中断 进行了条件编译; STC32G_Exit_Isr.c ,屏蔽了 INT0中断; STC32G_Timer_Isr.c ,屏蔽了 TM1 和 TM3 中断。 其它中断,原封未动。  详情 回复 发表于 2024-5-17 18:34
我建议你把相关代码发给我,我来查找原因。  详情 回复 发表于 2024-5-17 18:20
希望这个世界让我装一次B
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-17 18:18:02 | 显示全部楼层
Yang.*** 发表于 2024-5-17 16:56
非常乐意效劳

两个版本都测试了,表现是一模一样

我看你可以配置为 11059200 和 1000 ,延时误差很小的,
测试一下,DMA中断会不会正常。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-17 18:20:53 | 显示全部楼层
本帖最后由 CosyOS 于 2024-5-17 18:22 编辑
Yang.*** 发表于 2024-5-17 18:16
真的好奇怪啊

我现在收回我说的,即便我用12000000/1000 还是有问题

我建议你把相关代码发给我,我来查找原因。
或者你把相关的地方,都好好查一遍。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-17 18:27:16 | 显示全部楼层
Yang.*** 发表于 2024-5-17 16:56
非常乐意效劳

两个版本都测试了,表现是一模一样

屏蔽警告:

截图202405171826279466.jpg

删除 285~290 行即可。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-03-28 10:25:35

4

主题

74

回帖

548

积分

高级会员

积分
548
发表于 2024-5-17 18:32:17 | 显示全部楼层
上代码

ADC_DMA测试代码.zip

378.23 KB, 下载次数: 262

点评

一开始,发现很多现象,能否进入 DMA中断 与各参数配置相关; 功夫不负有心人,最终,还是找到了根本原因。 系统空闲任务中,会进入低功耗模式,一旦进入就无法进DMA中断了。 [attachimg]44341[/attachimg] 注释掉  详情 回复 发表于 2024-5-17 22:23
希望这个世界让我装一次B
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-17 18:34:16 | 显示全部楼层
Yang.*** 发表于 2024-5-17 18:16
真的好奇怪啊

我现在收回我说的,即便我用12000000/1000 还是有问题

测试程序中,
STC32G_UART_Isr.c ,对 UART2中断 进行了条件编译;
STC32G_Exit_Isr.c ,屏蔽了 INT0中断;
STC32G_Timer_Isr.c ,屏蔽了 TM1 和 TM3 中断。
其它中断,原封未动。
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-5 04:11 , Processed in 0.200613 second(s), 112 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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