CN100472440C - 一种智能加载手机硬件驱动程序的方法 - Google Patents
一种智能加载手机硬件驱动程序的方法 Download PDFInfo
- Publication number
- CN100472440C CN100472440C CNB200510115647XA CN200510115647A CN100472440C CN 100472440 C CN100472440 C CN 100472440C CN B200510115647X A CNB200510115647X A CN B200510115647XA CN 200510115647 A CN200510115647 A CN 200510115647A CN 100472440 C CN100472440 C CN 100472440C
- Authority
- CN
- China
- Prior art keywords
- hardware
- kernel
- mobile phone
- operating system
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
- Telephone Function (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供了一种智能加载手机硬件驱动程序的方法,包括如下步骤:在系统内核中插入硬件识别模块,以通过该硬件识别模块读取不同硬件的寄存器,识别出不同型号的硬件;根据识别出的不同硬件,生成硬件标志文件;根据所述硬件标志文件,在系统内核中插入相对应的硬件驱动程序。本方法克服了传统手机操作系统中驱动程序加载的缺点,既能够解决手机存储空间资源有限的问题,也能够自动兼容多种同类型硬件并存的状况,同时能够非常方便地进行扩充和升级。这样手机程序版本售后维护也更方便,节省人力和成本。
Description
技术领域
本发明涉及一种加载手机硬件驱动程序的方法,特别涉及一种智能加载手机硬件驱动程序的方法。
背景技术
智能手机按操作系统可分为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:完成写操作后,恢复保存的用户空间地址范围.
本发明通过模块加载方式避免了操作系统存储空间的不足,以后硬件升级换代也只需要增加新的模块即可,有一定的前瞻性和兼容性,便于软件的维护。通过对传统驱动程序加载方式的改进,取得了根据器件不同而动态加载对应驱动程序的进步,达到了智能识别同类型器件的效果,节省了后续软件研发成本,提高了产品的稳定性、可靠性、多样性。
在本发明的方法中,由于采用了将每个硬件驱动程序编译成独立的软件模块,克服了传统手机操作系统内核中手机存储空间资源有限的问题,同时因为增加了硬件识别模块来识别不同硬件后,生成标志文件上报给系统,便于系统能够根据需要加载所需的驱动程序,本方法使得手机操作系统不但能够自动兼容多种同类型硬件,同时还能够非常方便地进行扩充和升级。这样手机程序版本售后维护也更方便,节省人力和成本。
Claims (9)
1、一种智能加载手机硬件驱动程序的方法,在手机操作系统启动完毕,并挂接文件系统后,由启动脚本根据不同的手机硬件,向系统内核空间插入对应的硬件驱动程序,其特征在于,包括如下步骤:
在系统内核中插入硬件识别模块,以通过该硬件识别模块读取不同硬件的寄存器,识别出不同型号的硬件;
根据识别出的不同硬件,将当前进程的用户空间地址范围指向内核空间地址范围,在内核地址空间操作硬件标志文件的写入,生成硬件标志文件;
根据所述硬件标志文件,在系统内核中插入相对应的硬件驱动程序。
2、如权利要求1所述的方法,其特征在于,进一步包括:
从系统内核中删除所述硬件识别模块。
3、如权利要求1所述的方法,其特征在于,进一步包括:
删除所述硬件标志文件。
4、如权利要求1所述的方法,其特征在于,所述生成硬件标志文件的步骤,包括如下步骤:
将当前进程的用户空间地址范围指向内核空间地址范围之前,取得并保存当前进程的用户空间地址范围,以及取得内核空间地址范围;
完成所述硬件标志文件写操作后,恢复保存的用户空间地址范围。
5、如权利要求1所述的方法,其特征在于,所述每个硬件驱动程序是被编译成独立的软件模块。
6、如权利要求1所述的方法,其特征在于,所述在系统内核中插入相对应的硬件驱动程序的步骤,包括:
根据需要兼容的硬件数据,定义对应数量的宏;
根据宏定义,控制不同硬件驱动程序的插入过程。
7、如权利要求1所述的方法,其特征在于,所述操作系统为Linux操作系统。
8、如权利要求1所述的方法,其特征在于,所述操作系统为Symbian操作系统。
9、如权利要求1所述的方法,其特征在于,所述操作系统为WinCE操作系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510115647XA CN100472440C (zh) | 2005-11-09 | 2005-11-09 | 一种智能加载手机硬件驱动程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200510115647XA CN100472440C (zh) | 2005-11-09 | 2005-11-09 | 一种智能加载手机硬件驱动程序的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1964526A CN1964526A (zh) | 2007-05-16 |
CN100472440C true CN100472440C (zh) | 2009-03-25 |
Family
ID=38083360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200510115647XA Expired - Fee Related CN100472440C (zh) | 2005-11-09 | 2005-11-09 | 一种智能加载手机硬件驱动程序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100472440C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516872A (zh) * | 2012-06-19 | 2014-01-15 | 联想(北京)有限公司 | 终端设备以及终端设备的开机控制方法 |
CN103019686B (zh) * | 2012-11-20 | 2016-11-23 | 北京思特奇信息技术股份有限公司 | 一种跨两个中间件的系统及其编译方法 |
CN104049970B (zh) * | 2014-05-29 | 2018-01-16 | 汉柏科技有限公司 | 用户态架构平台的自动识别方法及系统 |
CN106775833B (zh) * | 2016-11-28 | 2021-03-16 | 青岛海信移动通信技术股份有限公司 | 设备驱动程序加载方法、终端及系统 |
CN106933638A (zh) * | 2017-03-21 | 2017-07-07 | 苏州蜗牛数字科技股份有限公司 | 一种根据不同产品加载不同固件的方法 |
CN109885312B (zh) * | 2019-01-24 | 2022-06-10 | 深圳市北斗海量科技有限公司 | 一种单固件兼容多硬件型号的方法及系统 |
CN110209433B (zh) * | 2019-04-15 | 2022-07-01 | 杭州丰锐智能电气研究院有限公司 | 一种识别不同型号集中器的方法 |
CN110366038B (zh) * | 2019-07-11 | 2021-08-06 | 四川长虹电器股份有限公司 | 多版本软件设备兼容多种技术状态的方法 |
CN110958602A (zh) * | 2019-11-14 | 2020-04-03 | 深圳奇未智能科技有限公司 | 一种蓝牙设备的固件兼容方法及装置 |
CN114780029B (zh) * | 2022-04-12 | 2023-05-09 | 荣耀终端有限公司 | 器件识别方法和相关装置 |
CN114936037B (zh) * | 2022-07-21 | 2022-12-09 | 天津七一二移动通信有限公司 | 一种兼容多型号铁路cir程序升级的夹具实现方法 |
-
2005
- 2005-11-09 CN CNB200510115647XA patent/CN100472440C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1964526A (zh) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100472440C (zh) | 一种智能加载手机硬件驱动程序的方法 | |
CN100473090C (zh) | 一种智能加载手机硬件驱动程序的系统 | |
CN101694621B (zh) | 一种升级移动终端软件的方法和移动终端 | |
CN101110039B (zh) | 终端设备自安装及自启动系统及方法 | |
CN101494930B (zh) | 一种智能终端升级方法和智能终端 | |
CN101923473B (zh) | 嵌入式电子装置及更新其固件的方法 | |
WO2016078263A1 (zh) | 升级控制设备、终端、终端升级方法及系统、存储介质 | |
CN101694623A (zh) | 一种更新手持设备软件的方法 | |
CN101183337A (zh) | 基于nand flash移动终端存储介质的空间管理方法 | |
CN103176864A (zh) | 一种基于安卓系统的备份方法、装置以及移动终端 | |
ATE392661T1 (de) | Automatisierter datensicherungsspeicher in firmware-aufwertungen | |
CN103761129B (zh) | 一种在Bootloader层实现SDIO接口驱动的方法 | |
CN102841802A (zh) | 移动终端的软件升级方法 | |
CN101166229A (zh) | 一种电视软件更新的方法 | |
CN102609290B (zh) | 电子产品的软件升级方法 | |
CN103577224A (zh) | 一种提高pc端检测安卓手机端守护程序升级的方法 | |
CN2921952Y (zh) | 一种可智能加载硬件的移动终端 | |
CN100465891C (zh) | 通过即插即用储存装置更新手持式设备操作功能的方法 | |
US20130111465A1 (en) | Method and system for installing [[a]] terminal equipment | |
CN104461622A (zh) | 智能终端的系统更新方法和装置 | |
CN101118494A (zh) | 嵌入式设备从外接电子卡启动操作系统的系统与方法 | |
CN101083817B (zh) | 一种动态更换移动台字库模块的方法 | |
CN107423075A (zh) | 驱动的注册方法以及用户终端 | |
WO2005085997A3 (en) | Automatic backup store in firmware upgrades | |
CN100576187C (zh) | 一种应用程序的开发调试方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090325 Termination date: 20201109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |