你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

DMA接收串口数据,跑飞

[复制链接]
ligongxiaobie 提问时间:2018-1-23 10:14 /
如题,初始化DMA和串口后,DMA对串口数据进行循环接收。

程序用CubeMX生成的,DMA必须用中断,实际使用串口空闲中断对数据进行记录的,DMA中断是空的。

问题,就是程序大约跑了9个小时,然后跑死了,当时用JTAG观察的数据,发现DMA的hdma_uart8_rx.Instance->NDTR这个量已经到达了6031105这个值,实际我设置的只有600.

串口数据基本没问题,而且我确实是对数据进行10ms一处理。

那么这个DMA跑飞究竟因为什么呢?

有什么样的原因会导致DMA的NDTR寄存器溢出呢?

其他函数越界?
收藏 评论9 发布时间:2018-1-23 10:14

举报

9个回答
ligongxiaobie 回答时间:2018-1-23 10:20:28
我用的F767,一直在想是不是cance总线出问题了,我打开了D和I总线
maxtch 回答时间:2018-1-23 11:54:55
有没有发生指针溢出?如果指针溢出了,那么内存数据是会被覆盖掉的。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

ligongxiaobie 回答时间:2018-1-23 14:18:02
maxtch 发表于 2018-1-23 11:54
有没有发生指针溢出?如果指针溢出了,那么内存数据是会被覆盖掉的。

我现在也在查是不是指针溢出了,可能性是有的,但是我还是想知道还有什么其他可能会导致NDTR直接错误
#define 回答时间:2018-1-23 17:35:29
                                             

评分

参与人数 1ST金币 -1 收起 理由
zero99 -1 不要灌水,谢谢,警告一次

查看全部评分

maxtch 回答时间:2018-1-23 23:33:07
ligongxiaobie 发表于 2018-1-23 14:18
我现在也在查是不是指针溢出了,可能性是有的,但是我还是想知道还有什么其他可能会导致NDTR直接错误 ...

如果内存使用量不大可以尝试用 CCM 代替系统 SRAM 作堆栈和程序本地数据用,把大部分的 SRAM 留给 DMA。这样既有助于性能(DMA 不占用 CCM 总线时间),又可以避免 DMA 意外抹除 CCM 数据。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

xmshao 回答时间:2018-1-24 11:06:28
NDTR是可以重载的,围绕那个数据变量再看看。。。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

ligongxiaobie 回答时间:2018-1-24 16:28:38
maxtch 发表于 2018-1-23 23:33
如果内存使用量不大可以尝试用 CCM 代替系统 SRAM 作堆栈和程序本地数据用,把大部分的 SRAM 留给 DMA。 ...

谢谢前辈提示,查了一下CCM,很好,可以用。
但是,必须查出来问题,因为低温(东北室外)确实出现这个问题了,必须先定位问题,然后再想解决方法,如果是程序逻辑问题,用CCM也会出问题。
ligongxiaobie 回答时间:2018-1-24 16:36:48
xmshao 发表于 2018-1-24 11:06
NDTR是可以重载的,围绕那个数据变量再看看。。。

查了一下内存map,发现hdma_uart8_rx地址前面,有这个DMA缓存的BUFFER地址,应该是BUFFER溢出,将hdma_uart8_rx进行了覆盖。
但是hdma_uart8_rx中NDTR是以指针形式传递的,意思是hdma_uart8_rx的地址是0x20002130,但是
hdma_uart8_rx中NDTR是存在图中DMA1的内存中。我特别想知道,如果BUFFER真的溢出了,会将DMA1中的内存覆盖吗?
应该不会吧?
那么NDTR是如何溢出的,是JTAG出现数据传输问题?
捕获.PNG
xmshao 回答时间:2018-1-25 12:18:50
ligongxiaobie 发表于 2018-1-24 16:36
查了一下内存map,发现hdma_uart8_rx地址前面,有这个DMA缓存的BUFFER地址,应该是BUFFER溢出,将hdma_ua ...

如果说溢出发生跑飞,会发生什么谁知道呢?

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版