我使用 STM32 系列微控制器,更具体地说是该STM32F7
系列。目前我正在研究通用计时器的使用。
关于双缓冲寄存器。
微控制器有时会使用双缓冲寄存器。这样,软件就可以对寄存器进行写入和读取,而不会造成麻烦。下图说明:
buffered register: active register:
-------------- --------------
| REGX_BUF | <-------> | REGX |
-------------- --------------
| |
| |
SOFTWARE HARDWARE
The software interacts Updates to and from the
only with the buffered active register take place
register. at specific moments (when it
is 'safe').
synonyms: synonyms:
- buffered register - active register
- preload register
- shadow register (?)
两者都有几个术语REGX_BUF
,REGX
从上图中可以看出。
- 通常寄存器
REGX
被称为“活动寄存器”。 - 寄存器
REGX_BUF
有时被称为“缓冲寄存器”。其他术语是“预加载寄存器”和“影子寄存器 (?)”。
混乱解释了。
不幸的是,“影子寄存器”一词令人困惑。根据我从互联网上的几个来源阅读的内容,它指的是REGX_BUF
. 但在 STM32F746 微控制器的参考手册 RM0385 和 STM32F767 微控制器的 RM0410 中,我偶然发现了对“影子寄存器”这个术语的完全相反的解释。它不会指代REGX_BUF
,而是指代REGX
。
这是参考手册中的图片:
RM0385 -> chapter 23 General-purpose timers -> 23.3.2 Counter modes -> Fig 199
或者
RM0410 -> Chapter 26 General-purpose timers -> 26.3.2 Counter modes -> Fig 244
这个数字让我很困惑。是我对“影子寄存器”一词的错误解释,还是意法半导体在编写本参考手册时犯了错误?