[STM32] 通用嵌入式驱动框架,大神们讨论下这方面的思路

[复制链接]
1743|3
 楼主| s1j2h3 发表于 2014-10-7 19:54 | 显示全部楼层 |阅读模式
最近在做一个项目,用到了多个I2C,RS232,SPI等总线的外设,当然,对每个设备都得编写一个设备硬件驱动,然后是设备应用层程序,再在其上加一个系统层程序。当然,这只是一个层次较低的嵌入式程序框架。

某日,突然在网上看到一篇**,《嵌入式实时操作系统μC/OS-II下通用驱动框架的设计与实现》,其中提到了两个数据结构
typedef struct {
  INT8U deviceName[UDF_MAX_NAME];    //设备名
  INT8U deviceType;      //1—块设备, 2—字符设备;
  INT8U canShared;       //0---不可共享使用, 1—可共享使用
  INT16U openCount;      //对于共享设备,此字段为打开次数计数;
  UDFOperations op;       //设备驱动模块提供的设备操作函数表;
  } UDFFramework;

typedef struct {
  INT32S (*devOpen)(void *pd);
  INT32S (*devRead)(INT8S *buffer, INT32U blen, INT32U lenToRead, INT8U waitType);
  INT32S (*devWrite)(INT8S *buffer, INT32U lenToWrite, INT8U waitType);
  INT32S (*devIoctl)(INT32U too, void *pd);
  INT32S (*devClose)(void *pd);
  } UDFOperations;

用这两个数据结构来屏蔽不同的设备驱动之间的差异,这个思路很好。但具体怎么操作?**中没有细说,所以在此希望有高手能提供此相应的资料,为大家作贡献!!
 楼主| s1j2h3 发表于 2014-10-20 17:00 | 显示全部楼层
没人知道么? 自己顶一下
yamato2011 发表于 2014-10-29 12:42 来自手机 | 显示全部楼层
参考Linux的驱动架构吧。
 楼主| s1j2h3 发表于 2015-12-24 16:41 | 显示全部楼层
Linux的驱动架构太复杂了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

112

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部