扫描关注一起学嵌入式,一起学习,一起成长
本期话题
(资料图片)
嵌入式软件软件开发,进行分层架构设计的时候,一般都会将底层外设控制部分进行封装,给应用层提供控制接口。
那么,这个外设控制接口该如何进行设计呢?
聊一聊
嵌入式软件在设计的时候,经常会用到分层的思想:设备驱动层、中间层、应用层。各层之间通信,通过设计好的接口控制函数实现。
今天来简单聊一聊如何设计这个设备驱动层接口,以及应该设计哪几种外设控制接口。
对于某个外设的控制,最基本的有以下几种:
(1)设备初始化。对外设进行初始化配置,使其能够正常工作,比如初始化设备IO、时钟配置、默认参数配置等等。
(2)读取数据。从外设中读取数据,一般指定存储数据的缓冲区指针、读取数据的长度、具体设备的索引(设备句柄)、偏移地址等。根据设备类型不同,这个偏移地址可能会是设备的某个具体的寄存器。
(3)写入数据。向设备写入数据,一般包含设备索引(设备句柄),写入数据的地址,数据的缓冲区指针、写入数据的大小等。
(4)控制设备。这个接口同于实现对设备进行控制。比如修改配置参数、发送特定的控制指令等。
除了以上基本的控制接口函数外,有的外设控制,还需要实现以下接口:
(1)打开设备。在使用设备之前,需要打开具体的设备。比如打开定时器、串口等。
(2)关闭设备。当不再使用某个设备时,调用此接口关闭。比如关闭定时器、串口等。
(3)读取参数。用于获取设备的工作配置参数或者其他参数、比如获取定时器的当前值。
当然,有些外设比较复杂,还需要封装其他类型的接口函数,在此就不一一列举了。
以上各个函数接口的实现,根据具体外设的使用情况进行。接口的操作成功与否,可以通过返回值进行判断。
嵌入式软件进行分层设计的优势是,使得程序架构清晰、方便维护,以及后续的功能调整等。将底层设备控制封装好之后,如果设备有调整,只需要修改对应设备的控制函数即可,不需要再去调整应用层的程序代码。
好了,今天先说这些。加油~
觉得文章不错,点击“分享”、“赞”、“在看” 呗!