本发明专利技术公开了一种创建设备节点的方法及装置,所述方法包括下述步骤:在设备文件存储器中以文本文件形式存储设备驱动文件列表;判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点,;若有,将存储于设备文件存储器中、与待加载的设备驱动相对应的设备节点拷贝至内存中;若无,根据列表内容加载设备驱动,获取设备节点号,然后根据设备节点号和列表内容新创建设备节点,并将创建的设备节点存储到设备文件存储器中。利用本发明专利技术,可以实现快速、动态的设备节点创建。
【技术实现步骤摘要】
本专利技术涉及嵌入式系统应用
,具体地说,是涉及一种创建设备节点的方法及装置。
技术介绍
嵌入式系统、如Linux系统里的设备驱动都是以设备节点(设备文件)的形式存在,以便于应用层的用户与底层的内核进行交互。Iinux对于设备驱动的加载方式有两种一种方式是将设备驱动直接静态编译到内核中去,在系统启动的时候就会自动加载设备驱动和创建设备节点;另一种方式是设备驱动以模块的方式独立于内核存在,可以在内核启动后动态地加载驱动和创建设备节点,以及动态地卸载设备驱动和删除设备节点。其中,第一种方式的优点是使用简单,加载驱动快,设备节点一旦创建完成,在设备驱动未重新编辑的情况下不需要再次创建,进而使得系统启动快。缺点是不灵活,增减设备驱动需要重新编译内核,而内核对于系统来说是相对稳定的,不宜频繁变动;而且这种方式对于即插即用的设备而言无法满足要求,因为这种设备的节点是需要动态创建的。还有,这种方式随着驱动的增多,内核的体积也会不断变大,这也是嵌入式系统不希望看到的。因此,现有嵌入式系统设计中一般将系统基本的、通用的驱动采用第一种方式来加载,而对于有个性的驱动采用第二种方式来加载。但是,第二种方式虽然存在着使用灵活、可以动态地进行加载的优点,减小了内核的体积,节省了系统的内存。但其缺点也极为明显使用麻烦,每次系统启动时均需要从外部加载驱动,造成系统启动较慢。而且,每次开机均需要重新创建设备节点,创建设备节点占用了较多的开机启动时间,导致系统启动更加缓慢。这一点在机顶盒、手机等使用嵌入式Iinux系统的电子产品中表现尤为突出,因为这些电子产品功能越来越多,需要的个性化设备驱动越来越多,因而在加载设备驱动和创建设备节点所花时间越来越多,而系统启动时间(开机时间)又是这类产品的一个非常重要的技术指标,因此,极容易制约产品性能的提升。
技术实现思路
本专利技术针对现有技术中设备节点创建存在的上述问题而提供了一种创建设备节点的方法和装置,实现了快速、动态的设备节点的创建。为实现上述专利技术目的,本专利技术提供的方法采用下述技术方案予以实现 一种创建设备节点的方法,所述方法包括下述步骤 a、在设备文件存储器中以文本文件形式存储包括有设备驱动名称、设备节点名称和相关参数的设备驱动文件列表; b、判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点,若有,执行下述步骤C,若无,执行下述步骤d和e ;C、将存储于设备文件存储器中、与待加载的设备驱动相对应的设备节点拷贝至内存中; d、读取设备驱动文件列表,根据列表内容加载设备驱动,获取设备节点号; e、根据设备驱动文件列表内容和设备节点号创建与加载的设备驱动相对应的设备节点,并将创建的设备节点存储到设备文件存储器中。如上所述的方法,在所述步骤b中,根据下述步骤判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点 bOl、查找设备文件存储器中的设备节点存储目录中是否存在设备节点;b02、在存在设备节点时,读取设备文件存储器中存储的、该设备节点创建时对应的设备驱动文件列表的编辑时间Tl ; b03、获取待加载的设备驱动对应的设备驱动文件列表的编辑时间T2 ;b04、在Tl与T2相同时,判定设备文件存储器中存有与待加载的设备驱动相对应的设备节点,在两者不同时,判定设备文件存储器中存储的设备节点与加载的设备驱动不对应。如上所述的方法,为避免资源冲突而导致系统启动异常,在设备文件存储器中的设备节点存储目录中存在设备节点、且设备节点与待加载的设备驱动不对应时,先删除所有设备节点,然后再执行所述步骤d和e。如上所述的方法,为便于循环使用,在所述步骤e之后还包括下述步骤 f、在设备文件存储器中存储该设备节点创建时所对应的设备驱动文件列表的编辑时间。如上所述的方法,为避免重复创建设备节点、进一步提高创建速度,在所述步骤e中,根据下述子步骤创建设备节点 eOl、从设备驱动文件列表中获取待创建的设备节点的设备节点名称;e02、获取加载该设备节点对应的设备驱动后系统所分配的设备节点号;e03、判断内存中是否存在相同名称的设备节点,在不存在时,执行步骤e05,在存在时,执行步骤e04 ; e04、判断内存中相同名称的设备节点的设备节点号与待创建的设备节点的设备节点号是否相同,若不同,执行步骤e05,若相同,放弃设备节点的创建;e05、根据设备节点名称和设备节点号创建设备节点。如上所述的方法,所述设备节点号包括有主设备号和从设备号,所述步骤e04中,内存中相同名称的设备节点的主设备号和从设备号与待创建的设备节点的主设备号和从设备号均相同时,判定两个设备节点的设备节点号相同,放弃设备节点的创建。如上所述的方法,所述设备文件存储器尤指flash存储器。为实现前述专利技术目的,本专利技术提供的装置采用下述技术方案来实现 一种创建设备节点的装置,该装置包括有设备文件存储器和设备节点创建模块,设备节点存储器包括 设备驱动文件列表存储单元,以文本文件形式存储包括有设备驱动名称、设备节点名称和相关参数的设备驱动文件列表; 设备节点存储单元,用来存储系统内核创建的设备节点; 设备节点创建模块包括 设备驱动文件列表读取单元,用来从设备文件存储器中读取设备驱动文件列表;设备节点判定单元,用于判定设备文件存储器中存储的设备节点是否与待加载的设备驱动相对应; 设备节点加载单元,与设备节点判定单元相连接,根据判定结果从设备文件存储器中加载设备节点至系统内存中; 设备驱动加载单元,用于加载设备驱动;以及 设备节点创建单元,与设备节点判定单元及设备驱动文件列表读取单元相连接,用于创建与加载的设备驱动相对应的设备节点。如上所述的方法,所述设备文件存储器中还包括有列表 编辑时间存储单元,用于存储外置存储设备中所存储的设备节点创建时对应的设备驱动文件列表的编辑时间Tl ; 所述设备节点创建模块还包括有 列表编辑时间获取单元,用于获取加载的设备驱动对应的设备驱动文件列表的编辑时间T2及列表编辑时间存储单元中存储的Tl ; 编辑时间比较单元,与列表编辑时间获取单元及设备节点判定单元相连接,用于比较Tl和T2是否相同,并将比较结果输出至所述设备节点判定单元。如上所述的方法,其特征在于,所述设备节点创建模块还包括 设备节点输出单元,用于将创建的设备节点写入至所述设备文件存储器的设备节点存储单元;以及 设备节点重复判定单元,用于判定系统内存中是否存在与待创建的设备节点重复的节点。与现有技术相比,本专利技术的优点和积极效果是本专利技术将设备驱动文件列表以文本文件形式存储在设备文件存储器上,通过读取列表实现设备节点的动态创建,使得设备驱动的管理更加简便、高效;在创建设备节点时采用创建一次后存储在设备文件存储器中、以后使用时直接从设备文件存储器中拷贝至内存中的拷贝方法,有效缩短了创建设备节点所消耗的时间,提高了系统开机启动速度。结合附图阅读本专利技术的具体实施方式后,本专利技术的其他特点和优点将变得更加清λ·Μ/E. ο附图说明图1是本专利技术创建设备节点的装置一个实施例的结构示意 图2是本专利技术创建设备节点的方法一个实施例的主流程 图3是图2实施例中判断是否需要重建设备节点的子流程 图4是图2实施例中创建设备节点的子流本文档来自技高网...
【技术保护点】
一种创建设备节点的方法,其特征在于,所述方法包括下述步骤:a、在设备文件存储器中以文本文件形式存储包括有设备驱动名称、设备节点名称和相关参数的设备驱动文件列表;b、判断设备文件存储器中是否存有与待加载的设备驱动相对应的设备节点,若有,执行下述步骤c,若无,执行下述步骤d和e;c、将存储于设备文件存储器中、与待加载的设备驱动相对应的设备节点拷贝至内存中;d、读取设备驱动文件列表,根据列表内容加载设备驱动,获取设备节点号;e、根据设备驱动文件列表内容和设备节点号创建与加载的设备驱动相对应的设备节点,并将创建的设备节点存储到设备文件存储器中。
【技术特征摘要】
【专利技术属性】
技术研发人员:刘庆彬,
申请(专利权)人:青岛海信宽带多媒体技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。