首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于FIFO,Keil调试器会改变STM32H7的硬件状态

对于FIFO,Keil调试器会改变STM32H7的硬件状态
EN

Stack Overflow用户
提问于 2020-06-29 08:08:10
回答 2查看 229关注 0票数 0

在为STM32H743使用Keil 5时,我遇到了以下问题。

我的SPI代码出现了通信问题,过了一段时间,我发现这是由于周期性的Windows更新。

当它被激活时,调试器似乎定期读取SPI数据寄存器,该寄存器读取FIFO (因此改变FIFO的状态)。因此,当软件读取FIFO时,一些字节已经“丢失”(或由调试器消耗)。

这是一种预期的行为吗?你知道它是由基尔还是STM32造成的?

我不完全理解从调试器到寄存器的访问是如何工作的:我猜是有一个通过SWD发送的read命令,但是在内部,对内存的访问是否像在CPU上执行代码一样通过AHB / APB?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-29 11:51:40

任何通过读取来修改行为的寄存器(例如清除状态位)在调试时都会出现问题,并且寄存器显示在调试窗口中。

最好的选择是,只在停止时查看寄存器(关闭DR窗口,用于外围设备),并且始终注意您可能清除状态位等。

这是处理器的工作方式,与调试器无关。

这是一个非常常见的调试问题,与串行通信等。

票数 1
EN

Stack Overflow用户

发布于 2020-06-29 08:21:15

如果您在手表窗口(或调试器屏幕上的任何其他类似窗口)中显示DR,并且每次步骤(或通常是中断)时,您都会遍历代码,则会读取数据。

这是唯一可能的原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62633741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档