硬汉嵌入式论坛

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

[技术讨论] 使用J-link进行程序调试的时候,DMA是否会在断点处停下来

[复制链接]

2

主题

18

回帖

24

积分

新手上路

积分
24
发表于 2024-11-23 16:48:06 | 显示全部楼层 |阅读模式
本帖最后由 gjl 于 2024-11-23 16:49 编辑

如果我的程序使用到了DMA功能,比如ADC采集数据使用DMA搬运到指定的数组a中。


如果我想在half 传输完成中断里面打断点,那么此时DMA是否会停止工作呢?

经过我的测试,我发现,我在half传输完成中断里面打断点,而此时数组a里面的值已经全部被改变了。。。。
1.png

这是否说明了DMA在调试打断点的时候,并不会停止工作呢?

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-11-24 10:25:39 | 显示全部楼层
这个只是CPU停止了,DMA,定时器等外设在没有冻结的情况下,是继续运行的。
回复

使用道具 举报

2

主题

18

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2024-11-24 11:29:29 | 显示全部楼层
eric2013 发表于 2024-11-24 10:25
这个只是CPU停止了,DMA,定时器等外设在没有冻结的情况下,是继续运行的。

那如果程序中心使用到了DMA和定时器的话,如何进行程序调试呢? 只能采用printf方式了吗?
回复

使用道具 举报

16

主题

76

回帖

124

积分

初级会员

积分
124
发表于 2024-11-24 22:31:38 | 显示全部楼层
gjl 发表于 2024-11-24 11:29
那如果程序中心使用到了DMA和定时器的话,如何进行程序调试呢? 只能采用printf方式了吗?

STM32 HAL 库有对应的调试开关,有相关寄存器, 你在参考手册搜索 DBG 然后去 HAL 库内搜索操作这些寄存器的函数就可以了(有可能是 LL 库的宏定义)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 02:47 , Processed in 0.041957 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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