C系列怎么做基本有眉目了。
先搭建一系列通用的服务层模块,靠这些模块的组合应该能实现任何业务逻辑。这些模块与具体平台和硬件无关。每个模块是一个单独的类,有其成员和方法。
再搭建一系列HAL层模块,对硬件分类抽取共性成为一个模块,是服务层与硬件隔离的关键。这个也应该与具体硬件和平台无关。
以上两层,都不依赖具体硬件,所以可以单独开发迭代。
最下面就是具体的硬件驱动层,不同平台和器件,驱动基本都要新开发。开发的目标就是实现HAL层的接口。不过也可以利用软件做一个模拟层,模拟一个个硬件的行为,方便HAL层和服务层独立演进。