CN104915221A - 一种用于手机驱动的驱动方法 - Google Patents
一种用于手机驱动的驱动方法 Download PDFInfo
- Publication number
- CN104915221A CN104915221A CN201410095290.2A CN201410095290A CN104915221A CN 104915221 A CN104915221 A CN 104915221A CN 201410095290 A CN201410095290 A CN 201410095290A CN 104915221 A CN104915221 A CN 104915221A
- Authority
- CN
- China
- Prior art keywords
- parameter
- memory block
- mobile phone
- driving
- call function
- 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.)
- Pending
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种用于手机驱动的驱动方法,该方法包括以下步骤:初始化程序开始,从参数存储区中顺序取出以n,m形式存储的一组数据,其中n是调用函数的标志数,m是应用标志数为n的调用函数的参数;将参数m应用到标志数为n的调用函数上;重复上述步骤至初始化程序结束。采用本发明所提供的用于手机驱动的驱动方法,可有效解决现有技术中由于当前手机驱动初始化方法中各数据在系统编译生成后随机分布,各参数的输入顺序及存储地址不确定,识别各参数位置困难且所需时间较长的问题,缩短手机驱动初始化过程中调试时间,提高手机初始化调试效率。
Description
技术领域
本发明涉及手机驱动开发领域,具体涉及一种用于手机驱动的驱动方法。
背景技术
在手机的生产制造过程中,需在手机壳体内安装手机屏幕、喇叭、蓝牙、摄像头等硬件,还需配合相应的手机驱动才可使手机屏幕、喇叭、蓝牙、摄像头等硬件得以使用。如点亮手机屏幕时,需对屏幕的寄存器中的数据进行初始化,只有在寄存器的各项参数设置均正确,屏幕才可以正常显示。
现有的手机驱动初始化方法包括:在程序初始化开始后,对需初始化参数执行向地址写入地址参数a、向地址写入数据参数b及延迟参数c等操作至初始化程序结束。这种手机驱动初始化方法中的地址参数a、数据参数b及延迟参数c在系统编译生成后随机分布,各参数的输入顺序及其存储地址不确定,无法使用工具识别各参数位置因而无法正确修改各参数的值,调试程序期间修改这些值只能通过常规的修改代码,编译,下载这个流程获得,这个过程相对会比较漫长。既然无法正确修改各参数的值,在无源代码的情况下需要兼容多个驱动也是无能为力的。
发明内容
本发明要解决的技术问题在于,针对现有技术的缺陷,提供一种用于手机驱动的驱动方法。
本发明解决其技术问题所采用的技术方案是:一种用于手机驱动的驱动方法,包括以下步骤:
S1:初始化程序开始,从参数存储区中顺序取出以n,m形式存储的一组数据,其中n是调用函数的标志数,m是应用标志数为n的调用函数的参数;
S2:将参数m应用到标志数为n的调用函数上;
重复步骤S1、S2至初始化程序结束。
优选地,所述n的不同取值分别用于表示向地址写入地址的调用函数的标志数、用于表示向地址写入数据的调用函数的标志数和用于表示延迟时间的调用函数的标志数。
优选地,所述步骤S1还包括:若从参数存储区中没有读取到以n,m形式存储的一组数据或标志数n的取值范围不正确,则结束初始化程序。
优选地,在步骤S1之前还包括步骤S01:在参数存储区中将初始化代码中的每一操作程序存储成n,m形式的一组数据。
优选地,所述参数存储区中设有参数开始标志和参数结束标志,驱动程序识别到参数开始标志后开始初始化程序,识别到参数结束标志后结束初始化程序;所述以n,m形式存储的数据存储在所述参数开始标志和所述参数结束标志之间。
优选地,所述参数开始标志和所述参数结束标志之间还设有用于实现扩容的预留存储区。
优选地,所述步骤S01之后,初始化程序开始之前还包括步骤S02:检测并比较参数存储区的空间大小与新驱动代码程序的大小,若所述参数存储区的空间大小大于或等于新驱动代码程序的大小时,执行步骤S1;若所述参数存储区的空间大小小于新驱动代码程序的大小时,结束初始化程序。
本发明还提供一种用于手机驱动的驱动方法,包括以下步骤:
S11:在参数存储区中将初始化代码中的每一操作程序存储成n,m形式的一组数据,其中n是调用函数的标志数,m是应用标志数为n的调用函数的参数;所述参数存储区中设有参数开始标志和参数结束标志,所述以n,m形式存储的数据存储在所述参数开始标志和所述参数结束标志之间;
S12:检测并比较参数存储区的空间大小与新驱动代码程序的大小,若所述参数存储区的空间大小大于或等于新驱动代码程序的大小时,执行步骤S13;若所述参数存储区的空间大小小于新驱动代码程序的大小时,结束初始化程序;
S13:识别到参数开始标志后开始初始化程序,从参数存储区中顺序取出以n,m形式存储的一组数据若从参数存储区中没有读取到以n,m形式存储的一组数据或标志数n的取值范围不正确,则结束初始化程序;
S14:将参数m应用到标志数为n的调用函数上;
重复步骤S13、S14至识别到参数结束标志,结束初始化程序。
本发明与现有技术相比具有如下优点:实施本发明,采用读取存储在参数存储区内的以n,m形式存储的数组,并执行该以n,m形式存储的数组对应的初始化操作,整个初始化过程中以n,m形式存储的数组存储在参数存储区内,可有效解决现有技术中由于当前手机驱动初始化方法中各数据在系统编译生成后随机分布,各参数的输入顺序及存储地址不确定,识别各参数位置困难且所需时间较长的问题,缩短手机驱动初始化过程中调试时间,提高手机初始化调试效率。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明用于手机驱动的驱动方法的流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
本发明提供一种用于手机驱动的驱动方法。如图1所示,该方法包括以下步骤:
步骤S01:在参数存储区中将初始化代码中的每一操作程序存储成n,m形式的一组数据,其中n是调用函数的标志数,m是应用标志数为n的调用函数的参数。
其中n的不同取值分别用于表示向地址写入地址的调用函数的标志数、用于表示向地址写入数据的调用函数的标志数和用于表示延迟时间的调用函数的标志数。标志数可以是1、2、3等常数,例如以1作为向地址写入地址的调用函数的标志数、以2作为向地址写入数据的调用函数的标志数、以3作为延迟时间的调用函数的标志数。m可以取a、b、c、d、e、f、g等参数,该参数可以是一个,也可以是多个。则数组1,a表示调用标志数为1的向地址写入地址的调用函数,该调用函数的参数取值为a;数组2,b表示调用标志数为2的向地址写入数据的调用函数,该调用函数的参数为b;数组3,c表示调用标志数为3的延迟时间的调用函数,该调用函数的参数为c。
在参数存储区将初始化代码的操作程序存储成n,m形成的数据,其原有的初始化代码并没有改变,而数组n,m中n与m的值可以在其后的操作过程中进行修改而不影响原有初始化代码,以避免当前手机驱动调试过程中通过常规方式修改代码、编译、下载等操作过程花费时间较长。
将初始化代码中的操作程序以n,m形式存储在参数存储区,可便于其后识别寻找上述该数据,以节省修改调试、修改编译时间并优化手机驱动。具体地,为了便于手机驱动调试过程中查找并识别到参数存储区,在参数存储区中设有的参数开始标志和参数结束标志,以n,m形式存储的数据存储在参数开始标志和所述参数结束标志之间。可以理解地,参数开始标志与参数结束标志可以是常量字符串,如以0xaa,0xaa作为参数开始标志,以0xbb,0xbb作为参数结束标志,将以数组n,m的形式存储的数据存储在0xaa,0xaa与0xbb,0xbb之间。可以理解地,该参数开始标志与参数结束标志的常量字符串的值可以由用户自定义,但必须保证该参数开始标志与参数结束标志必须是独一无二的,即在初始化代码中没有相应的常量字符串出现,以避免识别出错。如本实施例中,若存储在参数存储区中的以n,m形式存储的数据中包含数组0xbb,0xbb,则在初始化过程中,可能将数组0xbb,0xbb之后的内容忽略,导致初始化过程出错。
为了便于其他调试、编译初始化代码,在以0xaa,0xaa为参数开始标志和0xbb,0xbb为参数结束标志之间存储原始初始化代码之后还设有用于实现扩容的预留存储区。使用该预留存储区,可以使新修改的初始化代码比原始初始化代码的操作程序较多的情况下,使用预留存储区内的空间,使新修改的初始化代码可以在覆盖原始初始代代码的基础上,达到修改扩容的目的。
具体地,该预留存储区也可采用常量字符串作为预留存储开始位和预留存储结束位,如可同时将0xff,0xff作为预留存储开始位和预留存储结束位。可以理解地,该预留存储开始位和预留存储结束位使用的常量字符串的值可由用户自定义,但必须保证其值与存储在参数存储区内的以数组n,m形式存储的数据以及预设的参数开始标志和参数结束标志不一样,以避免其他的修改、编译出错。
步骤S02:在初始化程序开始之前,执行检测并比较参数存储区的空间大小与新驱动代码程序的大小的检验操作。若所述参数存储区的空间大小大于或等于新驱动代码程序的大小时,执行步骤S1;若所述参数存储区的空间大小小于新驱动代码程序的大小时,结束初始化程序。可以理解地,此处的参数存储区空间大小包括原有初始化代码的空间大小与预留存储区的空间大小,使用预留存储区使得修改后的新的初始化代码的范围扩大,以达到修改扩容的目的。若参数存储区的空间大小小于新驱动代码程序的大小时,即新驱动代码程序需要执行的操作次数过多,在原始初始化代码的基础上加上预留存储区的空间都不足以存储新驱动代码程序所需使用的数据,此时如果执行新驱动代码程序,会将参数存储区的参数结束标志0xbb,0xbb一并修改,出现数组越界的问题,使得初始化程序出现严重错误,为避免此问题的出现,在检测比较参数存储区空间大小与新驱动代码程序大小时,若参数存储区的大小小于新驱动代码程序的大小时,结束初始化程序。
具体地,参数存储区的大小是以原始初始化程序中运行的初始化操作(即初始化过程中向地址写入地址、向地址写入数据以及延迟操作)的总和乘以2为总数,该总数不能大于参数开始标志(0xaa,0xaa)以及参数结束标志(0xbb,0xbb)之间的空间大小,其原因在于参数存储区中是以n,m数组的形式表示一个初始化操作,因此需要两个数据才能表示一个初始化操作的过程。
步骤S1:初始化程序开始,在识别到参数开始标志(0xaa,0xaa)后,从参数存储区中顺序取出以n,m形式存储的一组数据,其中n是调用函数的标志数,可以是1、2、3等常数,如以1作为向地址写入地址的调用函数的标志数、以2作为向地址写入数据的调用函数的标志数、以3作为延迟时间的调用函数的标志数;m是应用标志数为n的调用函数的参数,如m的取值可以是a、b、c、d、e、f、g等参数。步骤S1中还包括步骤S11:若从参数存储区中没有读取到以n,m形式存储的一组数据或标志数n的取值范围不正确(即读取到的标志数为10,无法在找到与标志数为10对应的调用函数),则结束初始化程序。
步骤S2:将步骤S1中取出的以n,m形式存储的数组,将参数m应用到标志数为n的调用函数上,如本实施例中若取出数组1,a,则表示调用标志数为1的向地址写入地址的调用函数,该调用函数的参数取值为a;若取出数组2,b表示调用标志数为2的向地址写入数据的调用函数;若取出数组3,c表示调用标志数为3的延迟时间的调用函数,该调用函数的参数为c。
重复步骤S1、S2至结束初始化程序。例如将参数存储区中以n,m形式存储的数组全部取出并执行相应的初始化操作后,读取到参数结束标志(0xbb,0xbb),则结束初始化程序。
该用于手机驱动的驱动方法,采用读取存储在参数存储区内的以n,m形式存储的数组,并执行该以n,m形式存储的数组对应的初始化操作,整个初始化过程中以n,m形式存储的数组存储在参数存储区内,可有效解决现有技术中由于当前手机驱动初始化方法中各数据在系统编译生成后随机分布,各参数的输入顺序及存储地址不确定,识别各参数位置困难且所需时间较长的问题,缩短手机驱动初始化过程中调试时间,提高手机初始化调试效率。
本发明是通过一个具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换和等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
Claims (8)
1.一种用于手机驱动的驱动方法,其特征在于:包括以下步骤:
S1:初始化程序开始,从参数存储区中顺序取出以n,m形式存储的一组数据,其中n是调用函数的标志数,m是应用标志数为n的调用函数的参数;
S2:将参数m应用到标志数为n的调用函数上;
重复步骤S1、S2至初始化程序结束。
2.根据权利要求1所述用于手机驱动的驱动方法,其特征在于:所述n的不同取值分别用于表示向地址写入地址的调用函数的标志数、用于表示向地址写入数据的调用函数的标志数和用于表示延迟时间的调用函数的标志数。
3.根据权利要求2所述用于手机驱动的驱动方法,其特征在于:所述步骤S1还包括S11:若从参数存储区中没有读取到以n,m形式存储的一组数据或标志数n的取值范围不正确,则结束初始化程序。
4.根据权利要求1~3任一项用于手机驱动的驱动方法,其特征在于:在步骤S1之前还包括步骤S01:在参数存储区中将初始化代码中的每一操作程序存储成n,m形式的一组数据。
5.根据权利要求4所述用于手机驱动的驱动方法,其特征在于:所述参数存储区中设有参数开始标志和参数结束标志,驱动程序识别到参数开始标志后开始初始化程序,识别到参数结束标志后结束初始化程序;所述以n,m形式存储的数据存储在所述参数开始标志和所述参数结束标志之间。
6.根据权利要求5所述用于手机驱动的驱动方法,其特征在于:所述参数开始标志和所述参数结束标志之间还设有用于实现扩容的预留存储区。
7.根据权利要求6所述用于手机驱动的驱动方法,其特征在于:所述步骤S01之后,初始化程序开始之前还包括步骤S02:检测并比较参数存储区的空间大小与新驱动代码程序的大小,若所述参数存储区的空间大小大于或等于新驱动代码程序的大小时,执行步骤S1;若所述参数存储区的空间大小小于新驱动代码程序的大小时,结束初始化程序。
8.一种用于手机驱动的驱动方法,其特征在于:包括以下步骤:
S11:在参数存储区中将初始化代码中的每一操作程序存储成n,m形式的一组数据,其中n是调用函数的标志数,m是应用标志数为n的调用函数的参数;所述参数存储区中设有参数开始标志和参数结束标志,所述以n,m形式存储的数据存储在所述参数开始标志和所述参数结束标志之间;
S12:检测并比较参数存储区的空间大小与新驱动代码程序的大小,若所述参数存储区的空间大小大于或等于新驱动代码程序的大小时,执行步骤S13;若所述参数存储区的空间大小小于新驱动代码程序的大小时,结束初始化程序;
S13:识别到参数开始标志后开始初始化程序,从参数存储区中顺序取出以n,m形式存储的一组数据若从参数存储区中没有读取到以n,m形式存储的一组数据或标志数n的取值范围不正确,则结束初始化程序;
S14:将参数m应用到标志数为n的调用函数上;
重复步骤S13、S14至识别到参数结束标志,结束初始化程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410095290.2A CN104915221A (zh) | 2014-03-14 | 2014-03-14 | 一种用于手机驱动的驱动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410095290.2A CN104915221A (zh) | 2014-03-14 | 2014-03-14 | 一种用于手机驱动的驱动方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104915221A true CN104915221A (zh) | 2015-09-16 |
Family
ID=54084305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410095290.2A Pending CN104915221A (zh) | 2014-03-14 | 2014-03-14 | 一种用于手机驱动的驱动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915221A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354285A (zh) * | 2008-09-19 | 2009-01-28 | 清华大学 | 一种驱动线阵探测器的装置 |
CN101604370A (zh) * | 2009-07-06 | 2009-12-16 | 中国人民解放军信息技术安全研究中心 | 一种高兼容性的监控Windows内核函数调用的方法 |
CN103034501A (zh) * | 2012-12-25 | 2013-04-10 | 广东威创视讯科技股份有限公司 | 一种linux平台的函数调用方法及函数调用装置 |
CN103176801A (zh) * | 2013-03-18 | 2013-06-26 | 中兴通讯股份有限公司 | 一种表项操作接口函数的生成方法及装置 |
CN103631720A (zh) * | 2013-12-20 | 2014-03-12 | 百度在线网络技术(北京)有限公司 | 测试用例的生成方法和装置 |
-
2014
- 2014-03-14 CN CN201410095290.2A patent/CN104915221A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101354285A (zh) * | 2008-09-19 | 2009-01-28 | 清华大学 | 一种驱动线阵探测器的装置 |
CN101604370A (zh) * | 2009-07-06 | 2009-12-16 | 中国人民解放军信息技术安全研究中心 | 一种高兼容性的监控Windows内核函数调用的方法 |
CN103034501A (zh) * | 2012-12-25 | 2013-04-10 | 广东威创视讯科技股份有限公司 | 一种linux平台的函数调用方法及函数调用装置 |
CN103176801A (zh) * | 2013-03-18 | 2013-06-26 | 中兴通讯股份有限公司 | 一种表项操作接口函数的生成方法及装置 |
CN103631720A (zh) * | 2013-12-20 | 2014-03-12 | 百度在线网络技术(北京)有限公司 | 测试用例的生成方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI679578B (zh) | 外掛程式化打包方法、裝置、終端及存儲介質 | |
TWI581188B (zh) | The way to load the driver and the embedded device | |
CN102236621B (zh) | 计算机接口信息配置系统及方法 | |
CN104317622A (zh) | 一种嵌入式设备程序烧录处理方法和系统 | |
CN107368313B (zh) | 代码检测方法、装置及电子设备 | |
WO2012022065A1 (zh) | 实现数字信号处理器自动测试的方法及系统 | |
CN103645920A (zh) | 一种嵌入式系统程序烧录方法及系统 | |
US20100162217A1 (en) | Debugging System Using Static Analysis | |
CN106055368A (zh) | 应用更新方法和装置 | |
US10248409B1 (en) | Limiting the effects of source code patches on corresponding native-code patches | |
CN105760289A (zh) | 一种嵌入式系统的调试方法及装置 | |
CN104866293A (zh) | 一种对Android应用程序扩展功能的方法及装置 | |
CN106021101A (zh) | 对移动终端进行测试的方法及装置 | |
CN106020905A (zh) | 一种微控制器固件开发与更新的方法及系统 | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
CN104881311A (zh) | 一种版本兼容的判断方法及装置 | |
CN107122203B (zh) | 一种配置文件的设置方法及装置 | |
CN114741360A (zh) | 汽车零件文件重建方法、装置、终端设备及存储介质 | |
CN109976751A (zh) | 模型操作方法、相关装置及计算机可读介质 | |
CN104714806B (zh) | 基于人机界面系统的脚本处理方法及装置 | |
CN108874405B (zh) | 一种OpenStack环境升级方法 | |
CN104915221A (zh) | 一种用于手机驱动的驱动方法 | |
CN108228185B (zh) | 一种嵌入式软件模块化生成方法和装置 | |
CN110659022A (zh) | 一种基于Java自动调用Python脚本的方法 | |
CN114020278B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150916 |
|
RJ01 | Rejection of invention patent application after publication |