我正在使用C++为基于Cortex-M4的微控制器编写软件。我有很多高度依赖机器的代码(驱动程序等)。而且,我有更高级别的代码,通过直接使用驱动程序与低级别代码密切相关。例如:低级部分是例如UART驱动程序,它非常硬件特定,而高级部分是基于UART的通信协议。(此软件在“裸机”上运行,即底层没有操作系统。)
目前,这些代码紧密耦合,因此无法进行单元测试。
我想让它可测试。
因此,我想创建低级部分的抽象,并使高级部分仅依赖于该抽象。然后,我可以创建抽象的模拟,用于单元测试,并创建一个真实的实现,可在微控制器上运行。
目前,这些代码紧密耦合,因此无法进行单元测试。
我想让它可测试。
因此,我想创建低级部分的抽象,并使高级部分仅依赖于该抽象。然后,我可以创建抽象的模拟,用于单元测试,并创建一个真实的实现,可在微控制器上运行。
所以,总之,我想创建一个硬件抽象层(HAL),但我想知道怎么做?我应该在C++中使用虚继承
,还是有其他更好的方法?