CN100473090C - 一种智能加载手机硬件驱动程序的系统 - Google Patents

一种智能加载手机硬件驱动程序的系统 Download PDF

Info

Publication number
CN100473090C
CN100473090C CNB2005101156465A CN200510115646A CN100473090C CN 100473090 C CN100473090 C CN 100473090C CN B2005101156465 A CNB2005101156465 A CN B2005101156465A CN 200510115646 A CN200510115646 A CN 200510115646A CN 100473090 C CN100473090 C CN 100473090C
Authority
CN
China
Prior art keywords
hardware
module
kernel
file
operating system
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
Application number
CNB2005101156465A
Other languages
English (en)
Other versions
CN1964525A (zh
Inventor
黄泳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB2005101156465A priority Critical patent/CN100473090C/zh
Publication of CN1964525A publication Critical patent/CN1964525A/zh
Application granted granted Critical
Publication of CN100473090C publication Critical patent/CN100473090C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开了一种智能加载手机硬件驱动程序的系统,包括:硬件识别模块,用于读取不同硬件的寄存器,识别出不同型号的硬件,并根据不同硬件,生成硬件标志文件;至少一个硬件驱动程序模块,用于驱动手机内的对应的硬件;加载模块,用于将所述硬件识别模块插入操作系统内核,并根据硬件识别模块生成的标志文件,将对应的硬件驱动程序模块插入操作系统内核。本方法克服了传统手机操作系统中驱动程序加载的缺点,既能够解决手机存储空间资源有限的问题,也能够自动兼容多种同类型硬件并存的状况,同时能够非常方便地进行扩充和升级。这样手机程序版本售后维护也更方便,节省人力和成本。

Description

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

Claims (10)

1、一种智能加载手机硬件驱动程序的系统,在手机操作系统启动完毕,并挂接文件系统后,由启动脚本根据不同的手机硬件,向系统内核空间插入对应的硬件驱动程序,其特征在于,包括:
硬件识别模块,用于读取不同硬件的寄存器,识别出不同型号的硬件,并根据不同硬件,将当前的用户空间地址范围指向内核空间地址范围,在内核地址空间操作硬件标志文件的写入,生成硬件标志文件;
至少一个硬件驱动程序模块,用于驱动手机内的对应的硬件;
加载模块,用于将所述硬件识别模块插入操作系统内核,并根据硬件识别模块生成的标志文件,将对应的硬件驱动程序模块插入操作系统内核。
2、如权利要求1所述的系统,其特征在于,进一步包括:
删除模块,用于在加载完成后,从系统内核中删除所述硬件识别模块。
3、如权利要求1所述的系统,其特征在于,进一步包括:
标志文件删除模块,用于在加载完成后,删除所述生成的标志文件。
4、如权利要求1所述的系统,其特征在于,所述硬件识别模块,包括:
寄存器读取模块,用于读取不同硬件的寄存器,识别出不同型号的硬件;
标志文件生成模块,用于根据不同硬件,将当前的用户空间地址范围指向内核空间地址范围,在内核地址空间操作硬件标志文件的写入,生成硬件标志文件。
5、如权利要求4所述的系统,其特征在于,所述标志文件生成模块,包括:
取得并保存当前进程的用户空间地址范围的模块;
取得内核空间地址范围的模块;
将当前的用户空间地址范围指向内核空间地址范围的模块;
在内核地址空间操作所述硬件标志文件的写入的模块;
完成写操作后,恢复保存的用户空间地址范围的模块。
6、如权利要求1所述的系统,其特征在于,所述每个硬件驱动程序是被编译成独立的软件模块。
7、如权利要求1所述的系统,其特征在于,所述加载模块,包括:
硬件识别模块加载模块,用于加载硬件识别模块。
8、如权利要求1所述的系统,其特征在于,所述操作系统为Linux操作系统。
9、如权利要求1所述的系统,其特征在于,所述操作系统为Symbian操作系统。
10、如权利要求1所述的系统,其特征在于,所述操作系统为WinCE操作系统。
CNB2005101156465A 2005-11-09 2005-11-09 一种智能加载手机硬件驱动程序的系统 Expired - Fee Related CN100473090C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101156465A CN100473090C (zh) 2005-11-09 2005-11-09 一种智能加载手机硬件驱动程序的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101156465A CN100473090C (zh) 2005-11-09 2005-11-09 一种智能加载手机硬件驱动程序的系统

Publications (2)

Publication Number Publication Date
CN1964525A CN1964525A (zh) 2007-05-16
CN100473090C true CN100473090C (zh) 2009-03-25

Family

ID=38083359

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101156465A Expired - Fee Related CN100473090C (zh) 2005-11-09 2005-11-09 一种智能加载手机硬件驱动程序的系统

Country Status (1)

Country Link
CN (1) CN100473090C (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129380B (zh) * 2011-03-10 2015-05-13 宇龙计算机通信科技(深圳)有限公司 一种服务器及提供软件的方法、移动终端
CN102830983A (zh) * 2011-06-14 2012-12-19 上海未来宽带技术及应用工程研究中心有限公司 一种可动态加载不同终端交换芯片驱动的方法
CN103235741B (zh) * 2013-04-15 2016-05-11 厦门亿联网络技术股份有限公司 一种通过芯片实现硬件兼容的方法
CN107729083B (zh) * 2014-04-30 2021-02-12 华为技术有限公司 一种加载驱动程序的方法及嵌入式设备
CN104281471A (zh) * 2014-09-17 2015-01-14 天津云辰科技有限公司 多版本软件ota升级方法
CN104407887A (zh) * 2014-11-06 2015-03-11 航天科工深圳(集团)有限公司 一种嵌入式系统内核模块动态加载程序的方法及装置
CN104506902B (zh) * 2014-12-05 2018-11-06 惠州Tcl移动通信有限公司 一种器件兼容的方法、装置及移动终端
CN105159696A (zh) * 2015-07-09 2015-12-16 北京君正集成电路股份有限公司 一种独立于Linux内核的硬件驱动实现方法及装置
CN109885312B (zh) * 2019-01-24 2022-06-10 深圳市北斗海量科技有限公司 一种单固件兼容多硬件型号的方法及系统
CN111984334A (zh) * 2020-08-17 2020-11-24 上海睿赛德电子科技有限公司 一种轻量的操作系统内核与驱动分离方法

Also Published As

Publication number Publication date
CN1964525A (zh) 2007-05-16

Similar Documents

Publication Publication Date Title
CN100473090C (zh) 一种智能加载手机硬件驱动程序的系统
CN100472440C (zh) 一种智能加载手机硬件驱动程序的方法
CN103473067B (zh) 嵌入式Linux分区与数据还原方法、系统及系统开发方法
CN101694621B (zh) 一种升级移动终端软件的方法和移动终端
CN101110039B (zh) 终端设备自安装及自启动系统及方法
CN101494930B (zh) 一种智能终端升级方法和智能终端
CN101520757A (zh) 设备驱动方法、装置及通信系统
CN102693144B (zh) 一种Android移动终端的电容屏固件升级的方法
CN103176864A (zh) 一种基于安卓系统的备份方法、装置以及移动终端
WO2016078263A1 (zh) 升级控制设备、终端、终端升级方法及系统、存储介质
ATE392661T1 (de) Automatisierter datensicherungsspeicher in firmware-aufwertungen
TW200636471A (en) Method of parallel programmable memory and the system thereof
CN102841802A (zh) 移动终端的软件升级方法
CN2921952Y (zh) 一种可智能加载硬件的移动终端
CN103761129A (zh) 一种在Bootloader层实现SDIO接口驱动的方法
CN102609285A (zh) 一种驱动智能匹配加载的方法
CN107423075A (zh) 驱动的注册方法以及用户终端
US20040181777A1 (en) Method and device for programming electronic devices using a uniform parameter format
WO2005085997A3 (en) Automatic backup store in firmware upgrades
CN114816491A (zh) 用于多系统移动终端的系统升级方法、装置及终端
CN104765631A (zh) 一种移动终端的应用程序恢复方法及装置
CN104639317A (zh) 一种基于app应用模块对智能卡进行密钥更新的系统及方法
CN101299190B (zh) 一种只读文件系统下的软件升级方法、系统及嵌入式设备
CN102184115A (zh) 升级系统软件的方法及设备
CN102722378A (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