当前位置:  开发笔记 > 编程语言 > 正文

STMicro是否会错误地解释“影子寄存器”一词?

如何解决《STMicro是否会错误地解释“影子寄存器”一词?》经验,为你挑选了1个好方法。

我使用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_BUFREGX从上图中。

通常,寄存器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

这个数字使我感到困惑。我是否对“影子寄存器”一词有错误的解释,或者是STMicroelectronics在编写本参考手册时出错了?



1> skrrgwasme..:

问题在于术语“影子寄存器”没有特定的且与体系结构无关的含义。

例如,ARM体系结构具有一组通用寄存器,您可以对其进行读写操作(R0-R12)。但是,如果输入中断处理程序上下文,则R8-R12会切换到“影子寄存器”。这意味着您仍然像在普通程序中一样对它们进行寻址,但是所访问的寄存器与在普通程序中使用的R8-R12完全不同。它们是专用的中断处理资源,因此您不必像通常那样处理保存和恢复寄存器。

某些PIC单片机允许您写入和读取引脚I / O的相同地址,但实际上,您写入的是与读取的地址不同的缓冲区,因为写入引脚不一定会立即更改其状态。这种配置使体系结构可以在等待写请求改变状态之前缓冲您的写请求。这些额外的缓冲区有时也称为影子寄存器,看起来与您的示例相似。使用您的示例中给出的术语,我想这将被称为“预加载寄存器”。

通常,该术语用于指代可以以相同方式寻址的多个硬件资源。其中哪一个是“真实”寄存器,哪个是“影子”寄存器在体系结构和供应商之间并不统一,最后可能也不是很重要。

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有