分层搭建嵌入式系统是为了使结构更清晰,便于维护,提高复用性等等。那大家在写嵌入式程序的时候,尤其是编写设备驱动的时候,一般是怎样封装一个设备的?
类似于RTC实时时钟,比较容易一些,单独形成一个文件,在其中定义一些初始化、设置时间、读取时间、设置闹钟等等的函数,并实现它。主程序调用这几个函数就实现了这个设备的操作。
但是类似于串口这一类的,除了基本的设置,还需要交互数据等等,尤其是接收数据。如何封装才能使主程序更好的使用串口,避免全局变量的出现。
(在我的应用里,串口接收并响应指令。这些指令具有一定的格式,还有可能附带一定的参数。我希望指令的提取、校验等等都在封装好的模块里实现,主程序只关心指令的执行)。
过去的方案,在主程序与串口功能文件之间,总是不避免的出现全局变量,(也试着用过结构体、类似于windows下的句柄,效果也不好)大家有什么更好的建议?