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

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

层级

描述

备注

应用层

直接控制应用,比如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 ,尽量避免更改,

管脚定义除外

 

 

 

相关文章:

  • 2021-11-28
  • 2021-11-26
  • 2021-10-13
  • 2021-08-29
  • 2021-07-08
  • 2022-12-23
  • 2021-08-18
  • 2021-06-27
猜你喜欢
  • 2021-10-23
  • 2022-12-23
  • 2022-01-19
  • 2021-07-30
  • 2021-12-09
  • 2021-12-15
  • 2021-05-17
相关资源
相似解决方案