专利名称:一种智能加载手机硬件驱动程序的方法
技术领域:
本发明涉及一种加载手机硬件驱动程序的方法,特别涉及一种智能加载手机硬件驱动程序的方法。
背景技术:
智能手机按操作系统可分为Symbian系统、WinCE系统以及Linux系统。目前各手机操作系统对相关的手机硬件驱动程序的加载实现,仍然主要采用传统方式,具体有两种加载方法。
一、把驱动程序模块和手机操作系统内核做成一个整体。这种方法的主要缺点是耗费存储空间,手机本身的存储空间容量有限,而且随着手机功能日渐强大,硬件外设种类繁多,如果都采用这种方式,那存储空间就会非常紧张。同时,一旦器件升级就必须重新生成新的软件版本,非常复杂,也不便于维护版本。
二、把驱动程序单独加载。这种方法虽然可以解决存储空间问题,但是如果硬件一旦需要升级,就要根据不同硬件加载不同的驱动程序,这样就需要维护多个版本,导致了使用、维护起来很不方便。
目前的使用这些手机操作系统的手机还不能解决节约手机存储空间问题,同时也不能自动兼容多种同类型硬件并存的状况,对系统进行升级和扩充十分不方便。
发明内容
本发明解决的技术问题在于提供了一种智能加载手机硬件驱动程序的方法,以解决节约手机存储空间问题,同时能自动兼容多种同类型硬件并存的状况,方便的对系统进行升级和扩充。
为解决上述技术问题,本发明提供了一种智能加载手机硬件驱动程序的方法,在手机操作系统启动完毕,并挂接文件系统后,由启动脚本根据不同的手机硬件,向系统内核空间插入对应的硬件驱动程序,该方法包括如下步骤在系统内核中插入硬件识别模块,以通过该硬件识别模块读取不同硬件的寄存器,识别出不同型号的硬件;根据识别出的不同硬件,生成硬件标志文件;根据所述硬件标志丈件,在系统内核中插入相对应的硬件驱动程序。
还可以进一步包括从系统内核中删除所述硬件识别模块。
还可以进一步包括删除所述硬件标志文件。
其中所述生成硬件标志文件的步骤,可以包括如下步骤取得并保存当前进程的用户空间地址范围;取得内核空间地址范围;将当前的用户空间地址范围指向内核空间地址范围;在内核地址空间操作所述硬件标志文件的写入;完成写操作后,恢复保存的用户空间地址范围。
在本发明的方法中,由于采用了将每个硬件驱动程序编译成独立的软件模块,克服了传统手机操作系统内核中手机存储空间资源有限的问题,同时因为增加了硬件识别模块来识别不同硬件后,生成标志文件上报给系统,便于系统能够根据需要加载所需的驱动程序,本方法使得手机操作系统不但能够自动兼容多种同类型硬件,同时还能够非常方便地进行扩充和升级。这样手机程序版本售后维护也更方便,节省人力和成本。
由于在本发明的方法中,驱动模块是独立编写的,所以以后硬件升级换代也只需要增加新的模块即可,有一定的前瞻性和兼容性,便于软件的维护。本发明通过对传统驱动程序加载方式的改进,取得了根据器件不同而动态加载对应驱动程序的进步,达到了智能识别同类型器件的效果,节省了后续软件研发成本,提高了产品的稳定性、可靠性、多样性。
图1为传统的手机加载驱动程序流程图;图2为是本发明实施例在Linux手机操作系统中的智能加载驱动程序方法的实施流程图;图3为本发明实施例中,硬件识别模块生成标志文件的流程图。
具体实施例方式
下面结合具体实施方式
来说明本发明。
首先本实施例为了能够解决手机存储空间有限的问题提供了一个驱动软件模块,它是把驱动程序编译成独立软件模块,单独加载,这样可以减少内核存储空间。对驱动主程序,采用定义多个宏的方法,辅之以条件编译的方法来控制程序的执行流程。这样做的最大好处是可以在一个驱动程序的框架中实现多个型号的器件驱动功能,并且能大大减少目标代码的大小,从而达到节省存储空间的目的,还便于源代码的修改维护。
有几种硬件需要实际兼容,就在程序中来定义几个宏。由于智能手机上使用的操作系统是可裁剪的,因此在操作系统配置菜单中定义几个和相关硬件器件对应的选项,就能方便程序编译。这样即使以后升级器件,也只需要编译新的模块就可以了,不用替换整个操作系统。
其次为了能够自动兼容多种类型并存的硬件,通过程序来识别同类器件的不同型号的方法中。由于同类型器件和CPU的控制连接方式基本是一样,所以能够按相同的通讯方法来读取器件的寄存器,从而识别出器件型号。因此除了在驱动软件模块外,本实施例提供了一个硬件识别模块来区分不同的器件。
当硬件识别模块中的识别单元识别出特定的硬件器件后,就生成一个特殊的标志文件。然后系统根据不同的标志文件来插入不同的驱动软件模块。这个硬件识别模块由于功能非常简单,所以文件也很小,一般不到几千字节。
本实施例中硬件识别模块和驱动软件模块之间的联系方式是通过标识不同文件来实现的。因为对文件的操作都是在手机用户空间进行,而硬件识别模块是运行在操作系统的内核空间。硬件识别模块写标志文件的过程,涉及到通过内核空间向用户空间写文件的方法。所以硬件识别模块首先需要取得并保存当前进程的用户空间地址范围,再取得内核空间地址范围,把当前的用户空间地址范围指向内核空间地址范围,这样就能够在操作系统的内核空间操作文件的读写。写完后再恢复保存的用户空间地址范围就能完成两个模块之间的联系了。
下面结合图1来说明传统的手机加载驱动程序的流程。
如图1所示传统的手机加载步骤是步骤101手机操作系统启动完毕;步骤102挂接文件系统;步骤103启动脚本根据不同的手机硬件,向系统内核空间插入对应的硬件驱动程序。
下面结合图2来说明本实施例的具体操作方法。
图2是本发明实施例在Linux手机操作系统中的智能加载驱动程序方法的实施流程图。其实施步骤如下步骤201、手机开机上电后,首先运行嵌入式Linux操作系统,由操作系统初始化必要的软硬件环境;步骤202、在操作系统启动完毕后,由启动脚本挂上文件系统;步骤203、由启动脚本插入硬件识别模块;步骤204、硬件识别模块中通过读硬件寄存器识别出特定型号的硬件;步骤205、硬件识别模块中生成标志文件;步骤206、手机Linux系统根据不同的标志文件来插入相对应的器件驱动软件模块;步骤207、器件驱动软件模块加载成功,模块调用相应的器件驱动软件单元对器件进行驱动;步骤208、Linux系统从内核中删除硬件识别模块以增加内存,同时删除标志文件。
Linux系统删除硬件识别模块,同时删除标志文件的目的是以增加内核空间。
其中步骤205硬件识别模块中生成标志文件,更加具体的实施流程如图3所示是步骤301取得并保存当前进程的用户空间地址范围;步骤302取得内核空间地址范围;步骤303将当前的用户空间地址范围指向内核空间地址范围;步骤304在内核地址空间操作所述硬件标志文件的写入;步骤305完成写操作后,恢复保存的用户空间地址范围。
本发明通过模块加载方式避免了操作系统存储空间的不足,以后硬件升级换代也只需要增加新的模块即可,有一定的前瞻性和兼容性,便于软件的维护。通过对传统驱动程序加载方式的改进,取得了根据器件不同而动态加载对应驱动程序的进步,达到了智能识别同类型器件的效果,节省了后续软件研发成本,提高了产品的稳定性、可靠性、多样性。
在本发明的方法中,由于采用了将每个硬件驱动程序编译成独立的软件模块,克服了传统手机操作系统内核中手机存储空间资源有限的问题,同时因为增加了硬件识别模块来识别不同硬件后,生成标志文件上报给系统,便于系统能够根据需要加载所需的驱动程序,本方法使得手机操作系统不但能够自动兼容多种同类型硬件,同时还能够非常方便地进行扩充和升级。这样手机程序版本售后维护也更方便,节省人力和成本。
权利要求
1.一种智能加载手机硬件驱动程序的方法,在手机操作系统启动完毕,并挂接文件系统后,由启动脚本根据不同的手机硬件,向系统内核空间插入对应的硬件驱动程序,其特征在于,包括如下步骤在系统内核中插入硬件识别模块,以通过该硬件识别模块读取不同硬件的寄存器,识别出不同型号的硬件;根据识别出的不同硬件,生成硬件标志文件;根据所述硬件标志文件,在系统内核中插入相对应的硬件驱动程序。
2.如权利要求1所述的方法,其特征在于,进一步包括从系统内核中删除所述硬件识别模块。
3.如权利要求1所述的方法,其特征在于,进一步包括删除所述硬件标志文件。
4.如权利要求1所述的方法,其特征在于,所述生成硬件标志文件的步骤,包括如下步骤取得并保存当前进程的用户空间地址范围;取得内核空间地址范围;将当前的用户空间地址范围指向内核空间地址范围;在内核地址空间操作所述硬件标志文件的写入;完成写操作后,恢复保存的用户空间地址范围。
5.如权利要求1所述的方法,其特征在于,所述每个硬件驱动程序是被编译成独立的软件模块。
6.如权利要求1所述的方法,其特征在于,所述在系统内核中插入相对应的硬件驱动程序的步骤,包括根据需要兼容的硬件数据,定义对应数量的宏;根据宏定义,控制不同硬件驱动程序的插入过程。
7.如权利要求1所述的方法,其特征在于,所述操作系统为Linux操作系统。
8.如权利要求1所述的方法,其特征在于,所述操作系统为Symbian操作系统。
9.如权利要求1所述的方法,其特征在于,所述操作系统为WinCE操作系统。
全文摘要
本发明提供了一种智能加载手机硬件驱动程序的方法,包括如下步骤在系统内核中插入硬件识别模块,以通过该硬件识别模块读取不同硬件的寄存器,识别出不同型号的硬件;根据识别出的不同硬件,生成硬件标志文件;根据所述硬件标志文件,在系统内核中插入相对应的硬件驱动程序。本方法克服了传统手机操作系统中驱动程序加载的缺点,既能够解决手机存储空间资源有限的问题,也能够自动兼容多种同类型硬件并存的状况,同时能够非常方便地进行扩充和升级。这样手机程序版本售后维护也更方便,节省人力和成本。
文档编号H04M1/725GK1964526SQ20051011564
公开日2007年5月16日 申请日期2005年11月9日 优先权日2005年11月9日
发明者黄泳 申请人:中兴通讯股份有限公司