一种驱动设备管理方法及嵌入式系统的制作方法

文档序号:9349730阅读:366来源:国知局
一种驱动设备管理方法及嵌入式系统的制作方法
【技术领域】
[0001]本发明涉及嵌入式系统技术领域,尤其涉及一种驱动设备管理方法及嵌入式系统。
【背景技术】
[0002]现有技术中,嵌入式系统往往连接数量众多的驱动设备,驱动设备的功能不同决定了嵌入式系统所应用的技术领域的不同。对于没有移植操作系统(Operating System,OS)的嵌入式系统而言,对于驱动设备的管理可能会比较混乱,特别是在驱动设备数量较多的情况下,因此可能会在管理过程中浪费系统资源,降低管理效率,为使用者管理驱动设备造成了许多不必要的麻烦。

【发明内容】

[0003]根据现有技术中存在的问题,现提供一种驱动设备管理方法及嵌入式系统的技术方案,旨在实现嵌入式系统的驱动设备的统一管理。
[0004]上述技术方案具体包括:
[0005]—种驱动设备管理方法,适用于嵌入式系统;其中,于所述嵌入式系统中预先设定一设备链表,所述设备链表中包括对应每个驱动设备的驱动结构信息,每个所述驱动结构信息中包括对应的所述驱动设备的序号;
[0006]于所述嵌入式系统中预先划定一存储区域,并于所述存储区域内预先保存针对不同的所述驱动设备的设备信息,所述设备信息中包括所述驱动设备的序号以及相应的具体实现信息;
[0007]所述驱动设备管理方法具体包括:
[0008]步骤SI,分别根据所述设备链表中的每个所述驱动结构信息对应的所述驱动设备的序号,匹配得到相应的所述设备信息;
[0009]步骤S2,将相匹配的所述设备信息中的所述具体实现信息填充入所述驱动结构信息中;
[0010]步骤S3,提供一接口供外部调用所述设备链表,以根据经过填充的所述驱动结构信息,对相应的所述驱动设备进行读写控制。
[0011 ] 优选的,该驱动设备管理方法,其中,每个所述驱动结构信息中包括:
[0012]用于指示不同的所述具体实现信息的指针函数;以及
[0013]用于指示对应于所述设备链表中的下一个所述驱动设备的所述驱动结构信息的指针函数。
[0014]优选的,该驱动设备管理方法,其中,所述具体实现信息包括:
[0015]相应的设备初始化函数于所述嵌入式系统中的存储地址;和/或
[0016]相应的设备开启函数于所述嵌入式系统中的存储地址;和/或
[0017]相应的设备读取函数于所述嵌入式系统中的存储地址;和/或
[0018]相应的设备写入函数于所述嵌入式系统中的存储地址。
[0019]优选的,该驱动设备管理方法,其中,所述步骤SI中,若所述存储区域中存在有所述设备信息不匹配于任何一个所述驱动结构信息,则将所述设备信息从所述存储区域中删除。
[0020]优选的,该驱动设备管理方法,其中,通过向所述嵌入式系统中注册相应的所述驱动设备,以在所述设备链表中设置相应的所述驱动结构信息。
[0021]优选的,该驱动设备管理方法,其中,所述步骤S3具体包括:
[0022]步骤S31,通过所述接口获取外部输入的调用请求;
[0023]步骤S32,根据所述调用请求中包括的所述驱动设备的序号,查找并提取所述驱动链表中的相应的所述驱动结构信息;
[0024]步骤S33,根据被提取的所述驱动结构信息,调用被填充的相应的所述设备信息,并进而调用相应的所述具体实现信息,以实现对所述驱动设备的相应的读写控制。
[0025]优选的,该驱动设备管理方法,其中,所述嵌入式系统中未移植相应的操作系统。
[0026]一种嵌入式系统,其中,采用上述的驱动设备管理方法。
[0027]上述技术方案的有益效果是:提供一种驱动设备管理方法,能够实现嵌入式系统的驱动设备的统一管理,节省系统资源,避免驱动设备混乱管理造成的各种不便。
【附图说明】
[0028]图1是本发明的较佳的实施例中,设备链表的示意图;
[0029]图2是本发明的较佳的实施例中,存储区域的示意图;
[0030]图3是本发明的较佳的实施例中,一种驱动设备管理方法的总体流程示意图;
[0031]图4是本发明的较佳的实施例中,于上述图3的基础上,其中步骤S4的流程示意图。
【具体实施方式】
[0032]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033]需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0034]下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0035]本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种驱动设备管理方法,其适用于嵌入式系统。进一步地,本发明的较佳的实施例中,上述驱动设备管理方法适用于没有移植OS的嵌入式系统。
[0036]本发明的较佳的实施例中,于上述嵌入式系统中,预先设定一设备链表,设备链表中包括对应每个驱动设备的驱动结构信息,每个驱动结构信息中包括对应的驱动设备的序号。
[0037]具体地,本发明的较佳的实施例中,如图1所示,上述嵌入式系统中,预先设定一设备链表。所谓链表,其为一种在物理存储单元上非连续、非顺序的存储结构,在链表中,数据元素的逻辑顺序通过链表中的指针链接次序实现。因此,如图1所示,在嵌入式系统中预先设定的设备链表中,包括多个预先注册的驱动设备的相关信息。即使用者预先通过向嵌入式系统注册相应的驱动设备的信息的方式将其放入设备链表中包括。
[0038]本发明的较佳的实施例中,在设备链表中,包括对应每个驱动设备的驱动结构信息,每个驱动结构信息中包括对应的驱动设备的序号。换言之,如图1所示,在设备链表中,包括对应设备I的驱动结构信息、对应设备2的驱动结构信息、直至对应设备N的驱动结构?目息O
[0039]本发明的较佳的实施例中,所谓驱动结构信息,即对应于每个驱动设备的驱动结构体变量信息。具体地,本发明的较佳的实施例中,一个驱动结构体变量信息以函数形式表达,可以为:
[0040]struct device{
[0041 ] int device_id ;
[0042]void (氺init) (struct device氺dev);
[0043]void (*open)(struct device*dev);
[0044]void(氺read)(struct device氺dev,
[0045]int offset,
[0046]void*buffer,
[0047]int size);
[0048]......
[0049]struct device*next ;
[0050]}
[0051]则可以从上述驱动结构体变量信息中看到,每个驱动结构信息中可以包括:
[0052]对应的驱动设备的序号(device_id);
[0053]用于指示不同的具体实现信息的指针函数:例如*init表示指示初始化函数的指针,*open表示指示开启驱动设备的函数的指针,*read表示指示对驱动设备进行读控制的函数的指针等。因此,本发明的其他实施例中,可以对上述函数形式进行进一步扩展,以容纳更多的指向不同类型的函数的指针;以及
[0054]用于指示对应于设备链表中的下一个驱动设备的驱动结构信息的指针函数(*next)ο
[0055]本发明的较佳的实施例中,依照上文中所述的指向下一个驱动结构信息的指针函数依次进行,可以串起整个设备链表,即形成设备链表。
[0056]本发明的较佳的实施例中,上述嵌入式系统中,还可以包括一存储区域。进一步地,本发明的较佳的实施例中,上述存储区域可以为嵌入式系统的存储单元中划分出的一个存储段(Sect1n)。本发明的较佳的实施例中,在上述存储区域内预先保
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1