嵌入式软件设计层级划分概念

嵌入式软件设计层级划分概念

设计过程中体会的细化更新部分:

层级

描述

备注

应用层

直接控制应用,比如led_light_on(),led_light_off()

 

器件层(如果操作复杂可进一步划分为器件应用层和器件驱动层)

比如:实现led_light_on

 

封装一层led 调用I2C的专用接口,这样不同器件单字节/多字节读写,模式较清晰

 

中间控制层

比如设备的唤醒/休眠处理,单独开关某一设备,是硬件性的控制,

timer,power,gpio,led,i2c,uart,等等,之所以置于硬件驱动上一层,同时在各设备的小分立应用中,也可能被调用到;

特殊情况或设备:

很多设备的电源控制,其实是使用IO管脚控制,这类的开关可以归到IO_ctrl层(或者叫做misc_pin_ctrl 层),而power管理这种一部分由SDK给出,处于调用层级最底层,设计层级时无所谓归到哪一层。

通用接口层

比如I2C的调用,实际将SDK驱动封装一层,便于直观管理

 

驱动层

 

调用MCU SDK ,尽量避免更改,

管脚定义除外


原文部分:


I2C为例

应用层,控制键盘灯,RTC,按键信号,以实现具体的表现,这些器件都使用I2C接口

器件层,如上描述,drv_key_board_led, drv_rtc, drv_key_board, drv_xxx_sig,等等

通用接口层,bsp_i2c

驱动层,比如芯片cc2640_launchpadXXX, I2C, I2CCC26XX

 

层级

描述

备注

应用层

直接控制应用,比如led_light_on(),led_light_off()

 

器件层(如果操作复杂可进一步划分为器件应用层和器件驱动层)

比如:实现led_light_on

 

封装一层led 调用I2C的专用接口,这样不同器件单字节/多字节读写,模式较清晰

 

通用接口层

I2C的调用

 

驱动层

 

调用MCU SDK ,尽量避免更改,

管脚定义除外

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值