在处理微控制器时,有些东西本质上是全球性的——我正在考虑诸如串行端口或其他接口之类的外围设备。还有一些外设不仅是全局的,而且只有一个(而且永远不会更多)——比如控制核心时钟或中断控制器的外设。这些外设确实具有某种全局状态(例如 - 核心时钟设置为某个值)并且反向计算这些值效率低下。
需要设置 RTOS 使用的系统定时器,需要设置其他外设的时钟(UART 波特率,SPI 比特率,...),需要为外部存储器设置正确的时钟或配置存储器等待状态。这就是为什么我认为在 main() 中创建一个对象并将其传递到任何地方会有点麻烦......
我可以编写方法,以便所有“全局”信息都来自外围寄存器(例如,可以从当前 PLL 设置反向计算核心频率),但这似乎也是一个错误的想法,更不用说创建对象了对于时钟发生器外设,到处都会看起来很有趣......
当前时钟设置可以存储在该类的静态成员中,但是从这里开始,只有一小步迈向完全静态的类(因为“this”指针对于没有状态的类将毫无用处)......
通常在非面向对象程序中找到的解决方案最接近于完全静态的类——只有对全局变量进行操作的函数。
任何人都知道如何很好地处理这种情况,或者这个问题是否值得花时间?也许我应该只使用一个全局对象并完成它?(;