CN104699470A - 用于调试显示器参数的可执行文件的生成方法 - Google Patents
用于调试显示器参数的可执行文件的生成方法 Download PDFInfo
- Publication number
- CN104699470A CN104699470A CN201310660894.2A CN201310660894A CN104699470A CN 104699470 A CN104699470 A CN 104699470A CN 201310660894 A CN201310660894 A CN 201310660894A CN 104699470 A CN104699470 A CN 104699470A
- Authority
- CN
- China
- Prior art keywords
- file
- executable file
- data
- former
- display
- 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
- Debugging And Monitoring (AREA)
Abstract
一种用于调试显示器参数的可执行文件的生成方法,包括下述步骤:S1.装载原可执行文件,解析原可执行文件中的原代码和原数据;S2.修改解析出的原可执行文件中的原数据,用新数据替换原数据;S3.将原代码和新数据合并,生成新的可执行文件。所述的可执行文件为显示器中的可执行bin文件或可执行hex文件。本发明的用于调试显示器参数的可执行文件的生成方法,能够从.bin文件中获取屏幕种类及个数,自动获取起始数据标志位置和截止数据标志位置,并提示相关信息。并且程序能实现与Debug模式相同的功能,正常显示string类型的二维数组。
Description
技术领域
本发明涉及一种修改显示器文件的方法。特别是涉及一种用于调试显示器参数的可执行文件的生成方法。
背景技术
随着显示器开发过程中,同一课题、同一尺寸屏幕、但不同屏幕厂家或批次的增多,程序(.bin文件)数量增加,这样不便于管理,也给软件制作带来很多麻烦。因此期望屏幕参数集成在同一个程序中(.bin文件)。但在画质调试过程中,又需要制作多个临时程序(.bin文件),给软件部门带来很多麻烦。
在显示器的开发过程中涉及到对显示器的亮度、对比度、色彩等的调试,在其调试中需要修改显示器内已设定的程序。因此,会使用到2个文件,即.bin和.tcf(TForm command file,TForm命令文件)和1个软件工具LCD_M_Configure(也叫TForm,因为它能以Table形式(Form)显示.bin文件中的信息)。.bin文件是显示器芯片使用的可执行文件,.tcf文件是TForm运行指令。TForm根据.tcf的指令将.bin文件中的数据查找出来并按照.tcf文件的要求显示出来。TForm主要应用于显示器画质调试,修改.bin文件中table中的数据。软件部门负责制作.bin文件,以及与.bin文件相对应的.tcf文件。但是,目前每个.bin文件中只有一个屏幕的详细参数设定。当同一.bin文件适用于多种屏幕时,每种屏幕都要制作一个.bin文件。制作过程中容易出错,管理上麻烦,Flash的空间不能被充分利用,画质部门容易混淆。并且,目前当.tcf文件不正确时,没有任何相关的提示,只是报错,使用者只能盲目的比较修改.tcf文件,并且要手动使用Debug模式。
所以,目前在显示器代码的开发过程中还存在如下的问题:
1、目前技术上可以实现一个.bin文件中包含多种型号的屏幕参数设定,但是画质部门无法利用现有的Tform软件查看并修改.bin文件中的数据。原Tform软件只是针对一种屏幕而编写的,对于多种屏幕,完全无法工作。目前针对已经集成多种屏幕的.bin文件,仍要拆分开给画质部门,最后再合并成一个.bin文件;
2、对于屏幕参数设定代码的起始标志位置,现有的Tform需要手动指定:
3、对于起始数据标志位置,如果不正确,现有的版本只是提示异常,但不报告错误原因;
4、对于截止数据标志位置,如果不正确,现有的版本也只是提示异常,仍不报告错误原因;
5、现有的版本需要额外的Debug模式,从代码上看需要额外6个文件,包括几千行代码;从用户角度看,额外的Debug模式需要手动加载.tcf和.bin文件,比较麻烦,并且输出格式不易理解;
6、对string类型的二维数组的显示不正常。
发明内容
本发明所要解决的技术问题是,提供一种能够自动获取起始数据标志位置和截止数据标志位置并提示相关信息的用于调试显示器参数的可执行文件的生成方法。
本发明所采用的技术方案是:一种用于调试显示器参数的可执行文件的生成方法,包括下述步骤:
S1.装载原可执行文件,解析原可执行文件中的原代码和原数据;
S2.修改解析出的原可执行文件中的原数据,用新数据替换原数据;
S3.将原代码和新数据合并,生成新的可执行文件。
所述的可执行文件为显示器中的可执行bin文件或可执行hex文件。
在所述步骤S1之前,还包括步骤S0:根据显示器中的tcf文件获取显示器参数,包括:panel个数、亮度、对比度、清晰度、色彩参数的行、列、输入行、输入列的值。
在所述步骤S0中,根据是否到达所述tcf文件的截止地址标志位判断获取所述显示器的参数是否完成。
在所述步骤S1中,根据所述tcf文件解析所述原可执行文件,并将解析出的所述原可执行的原数据与所述tcf文件中的数据进行对比,确定所述原可执行文件中起始标志位的地址。
在所述步骤S1中,根据所述tcf文件中的数据和所述原可执行文件中起始标志位的地址计算出所述原可执行文件中截止标志位的地址。
在所述步骤S1中,判断所述原可执行文件中截止标志位的数据与所述tcf文件中截止标志位的数据是否相同,若相同,则进入步骤S2;若不同,则遍历所述原可执行文件,确定新的所述原可执行文件中截止标志位的地址。
在所述步骤S1中,根据所述tcf文件中起始标志的地址和截止标志位的地址的差值与所述原可执行文件中起始标志位的地址和新的截止标志位的地址的差值的差,提示需修改所述tcf文件的位置。
本发明的用于调试显示器参数的可执行文件的生成方法,能够从.bin文件中获取屏幕种类及个数,自动获取起始数据标志位置和截止数据标志位置,并提示相关信息。并且程序能实现与Debug模式相同的功能,正常显示string类型的二维数组。具有如下特点:
1、采用复选框、下拉菜单、清单等方式显示Panel个数及名称,实际上属于同一类型。目前.bin文件最多支持5个panel的参数放在一起,因此TForm的设计也遵循最多5个Panel。
2、判断table个数的方式,及table的内存分配,包括.tcf文件中指令顺序的调整。
3、对起始地址和截止地址的查找方式,可能有很多种,但结果是相同的。
4、对string类型的二维数组的显示修改方式可能有多种,但效果相同。
附图说明
图1是本发明方法主流程图;
图2是本发明中TForm获取.bin文件中数组所在的起始数据标志位置和截止数据标志位置的流程图;
图3是显示当前识别到Panel的个数的效果图;
图4是显示table内数据能修改的效果图;
图5是显示table内数据不能修改的效果图。
具体实施方式
下面结合实施例和附图对本发明的用于调试显示器参数的可执行文件的生成方法做出详细说明。
本发明的一种用于调试显示器参数的可执行文件的生成方法,主要包括:装载原可执行文件,解析原可执行文件中的原代码和原数据;修改解析出的原可执行文件中的原数据,用新数据替换原数据;将原代码和新数据合并,生成新的可执行文件。
如图1所示,本发明的用于调试显示器参数的可执行文件的生成方法,具体包括如下步骤:
S0:根据显示器中的tcf文件获取显示器参数,包括:panel个数、亮度、对比度、清晰度、色彩等参数的行、列、输入行、输入列的值。根据是否到达所述tcf文件的截止地址标志位判断获取所述显示器的参数是否完成。具体包括:
(1)修改存储在计算机硬盘中的.tcf文件和显示器程序源代码.bin文件,都将ID_Panel相关命令及数组移动到起始数据标志位数组Start_ID的后面,这样可以最先获得Panel个数,便于后面的操作;
(2)TForm程序根据.tcf文件的ID_Panel的ROW(行)的值获取Panel个数并显示;所述的显示是:在TForm程序中加入radio控件,通过.tcf文件识别到几个Panel就使几个radio控件可用,如图3所示,表示当前识别到两个Panel;
(3)用TForm程序获取.tcf文件中其他数组即table的设定,并进行确定,这里所述的其他table是指其他亮度、其他对比度、其他色彩等数组;获取他们的COL(列)、ROW、OUTPUTCOL(输出列)、OUTPUTROW(输出行)值,需修改.tcf文件中其他table的设定:
ROW值要随.bin文件中table的维数翻倍。例如一般有2个panel,维数可能由1变为2,即1×2,每个panel各有一个这样的1维数组。也有可能由3变成6,即3×2,因为原先每个panel的这个数组就是2维的(3行)。也有可能还是1,因为两个panel共用这个1维数组
注:table1,table2,table10都是假设的数组名。
所述的进行确定是:当通过.tcf文件读取某个数组的数据时,例如table1首先读取TForm程序可用的radio个数,得知实际有几个Panel,假如COL×ROW小于等于OUTPUTCOL×OUTPUTROW则强制规定panel个数为1,再用.tcf文件中COL×ROW和要显示部分的数据总个数(在TForm程序中根据.tcf其他指令用加减法计算出来的)比较是否相等,判断table1中数据的个数,调整数组即将在计算机内存中存储的位置和大小,大小是直接由COL×ROW计算得出的。
S1.装载原可执行文件,解析原可执行文件中的原代码和原数据;
所述的可执行文件为显示器中的可执行bin文件或可执行hex文件。
根据所述tcf文件解析所述原可执行文件,并将解析出的所述原可执行的原数据与所述tcf文件中的数据进行对比,确定所述原可执行文件中起始标志位的地址。
首先从显示器.bin文件中获取所读数据的实际内容;如图2所示,根据.tcf文件提供的起始标志位的地址和数据,使用TForm程序从.bin文件中查找相关数据,并将查到的数据与.tcf文件中的数据进行对照,如果按照.tcf文件中的地址查找到的数据不正确,则遍历查找.bin文件中已知的起始标志位数据,并将得到的地址作为原可执行文件中的起始标志位地址;
根据所述tcf文件中的数据和所述原可执行文件中起始标志位的地址计算出所述原可执行文件中截止标志位的地址。
判断所述原可执行文件中截止标志位的数据与所述tcf文件中截止标志位的数据是否相同,若相同,则进入步骤S2;若不同,则遍历所述原可执行文件,确定新的所述原可执行文件中截止标志位的地址。
所述的遍历所述原可执行文件,确定新的所述原可执行文件中截止标志位的地址,是从起始地址以后在.bin文件中遍历查找已知的截止标志位数据,并将得到的地址作为截止标志位地址;即使截止地址不正确,TForm程序仍能正常显示.tcf指定的数据,并提示.tcf的起始标志位的地址和截止标志位地址的差值与.bin的起始标志位的地址和截止标志位地址的差值的差,用户得到错误消息提示后,打开计算机存储的.tcf文件和显示器源代码,应采用二分法自行查找TForm程序显示的数组信息和源代码中的数组,即bin文件中数组的不一致性,手动修改.tcf指令。其显示方法与后面所述的显示方式相同,但显示数据不一定正确,不正确的地方就是需要修改.tcf的地方。
根据所述tcf文件中起始标志的地址和截止标志位的地址的差值与所述原可执行文件中起始标志位的地址和新的截止标志位的地址的差值的差,提示需修改所述tcf文件的位置。
S2.修改解析出的原可执行文件中的原数据,用新数据替换原数据;
根据.tcf文件读取.bin文件中其他数组的内容并显示.tcf文件提供的数组名列表,正常使用TForm程序对.bin文件进行修改;
在TForm程序上显示、修改.bin中table内容,根据panel索引(即选中的第几个radio)、table个数,查找显示内容的起始地址;
所述的显示是:加载.bin文件后,如果.tcf的指令和.bin文件能对应无误,即能正常显示数组名的列表;选中一个Panel后,再查看数组中的数据,TForm程序根据选择Panel的索引、table个数,查找显示内容的起始地址;
修改.bin中table内容的条件是:当编辑这个table时,如果实际Panel个数大于1,但这个table个数等于1(共用table),选中的radio不是第一个时,table内数据不能修改,即数据修改后无法被保存。
当满足上述条件时,若如图4所示,说明table内数据能修改,若如图5所示,说明table内数据不能修改。
其他条件,如Panel个数等于1,此时要修改的table个数一定等于1,能选中的radio只能是第一个;或者panel个数等于2,要修改的table个数也等于2,可用的radio也是两个;此时选中相应的radio,可以修改相应panel的table数据。
S3.将原代码和新数据合并,生成新的可执行文件。
向计算机导出.bin文件和.h文件,在导出时,根据选中的radio来生成对应panel的文件,有助于画质部门测试和软件部门进行修改;显示和修改string类型的二维数组。所述的显示和修改string类型的二维数组时,要求:
(1)由于String类型二维数组比较特殊,每个string都是以'\0'结尾的,有如下结构:“123\0456\0789\0”。这样的数组原TForm程序只能显示前面的三个字符“123”后面遇到'\0'后都不能显示出来,所以要修改TFrom,当读取到的整个数组大小与TForm程序显示的字符个数不一样时,要移动指针的位置继续显示;例如上面有9个有效字符,但原TForm程序只能显示出来前3个,这时就要把指针向后移动4位,显示出来“456”,再移动4位显示出“789”,直至再次移动指针的位置发现超出数组大小为止。指针每次移动的大小是由COL值来确定的。
(2)在编辑时,用"\r\n"(换行符)来代替'\0',并且把显示窗口改为带滚动条的多行显示窗口;
(3)保存数据时再用算法将"\r\n"替换成'\0',确保数据的大小正确和能在显示器正常显示。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (8)
1.一种用于调试显示器参数的可执行文件的生成方法,其特征在于,所述方法包括下述步骤:
S1.装载原可执行文件,解析原可执行文件中的原代码和原数据;
S2.修改解析出的原可执行文件中的原数据,用新数据替换原数据;
S3.将原代码和新数据合并,生成新的可执行文件。
2.根据权利要求1所述的用于调试显示器参数的可执行文件的生成方法,其特征在于,所述的可执行文件为显示器中的可执行bin文件或可执行hex文件。
3.根据权利要求2所述的用于调试显示器参数的可执行文件的生成方法,其特征在于,在所述步骤S1之前,还包括步骤S0:根据显示器中的tcf文件获取显示器参数,包括:panel个数、亮度、对比度、清晰度、色彩参数的行、列、输入行、输入列的值。
4.根据权利要求3所述的用于调试显示器参数的可执行文件的生成方法,其特征在于,在所述步骤S0中,根据是否到达所述tcf文件的截止地址标志位判断获取所述显示器的参数是否完成。
5.根据权利要求3所述的用于调试显示器参数的可执行文件的生成方法,其特征在于,在所述步骤S1中,根据所述tcf文件解析所述原可执行文件,并将解析出的所述原可执行的原数据与所述tcf文件中的数据进行对比,确定所述原可执行文件中起始标志位的地址。
6.根据权利要求4所述的用于调试显示器参数的可执行文件的生成方法,其特征在于,在所述步骤S1中,根据所述tcf文件中的数据和所述原可执行文件中起始标志位的地址计算出所述原可执行文件中截止标志位的地址。
7.根据权利要求6所述的用于调试显示器参数的可执行文件的生成方法,其特征在于,在所述步骤S1中,判断所述原可执行文件中截止标志位的数据与所述tcf文件中截止标志位的数据是否相同,若相同,则进入步骤S2;若不同,则遍历所述原可执行文件,确定新的所述原可执行文件中截止标志位的地址。
8.根据权利要求7所述的用于调试显示器参数的可执行文件的生成方法,其特征在于,在所述步骤S1中,根据所述tcf文件中起始标志的地址和截止标志位的地址的差值与所述原可执行文件中起始标志位的地址和新的截止标志位的地址的差值的差,提示需修改所述tcf文件的位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310660894.2A CN104699470A (zh) | 2013-12-05 | 2013-12-05 | 用于调试显示器参数的可执行文件的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310660894.2A CN104699470A (zh) | 2013-12-05 | 2013-12-05 | 用于调试显示器参数的可执行文件的生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104699470A true CN104699470A (zh) | 2015-06-10 |
Family
ID=53346641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310660894.2A Pending CN104699470A (zh) | 2013-12-05 | 2013-12-05 | 用于调试显示器参数的可执行文件的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104699470A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183603A (zh) * | 2015-10-08 | 2015-12-23 | 广东欧珀移动通信有限公司 | 终端显示屏效果调试方法和系统 |
CN112052046A (zh) * | 2020-07-24 | 2020-12-08 | 乐歌人体工学科技股份有限公司 | 一种针对升降装置的电机控制参数修改的方法 |
-
2013
- 2013-12-05 CN CN201310660894.2A patent/CN104699470A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183603A (zh) * | 2015-10-08 | 2015-12-23 | 广东欧珀移动通信有限公司 | 终端显示屏效果调试方法和系统 |
CN105183603B (zh) * | 2015-10-08 | 2018-09-14 | 广东欧珀移动通信有限公司 | 终端显示屏效果调试方法和系统 |
CN112052046A (zh) * | 2020-07-24 | 2020-12-08 | 乐歌人体工学科技股份有限公司 | 一种针对升降装置的电机控制参数修改的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109948134B (zh) | 一种报告自动生成方法、系统及电子设备和存储介质 | |
CN104484269A (zh) | 一种自动生成测试脚本的方法 | |
US8887135B2 (en) | Generating test cases for functional testing of a software application | |
US9047399B2 (en) | Generating visualization from running executable code | |
CN104407973A (zh) | 一种自动化单元测试的实现方法及装置 | |
US8875103B2 (en) | Method of testing multiple language versions of a software system using one test script | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
US20190005111A1 (en) | Relational log entry instituting system | |
CN104133772A (zh) | 一种自动生成测试数据的方法 | |
CN104657274B (zh) | 软件界面测试方法及装置 | |
CN104156307A (zh) | 一种浏览器兼容性检测方法和系统 | |
CN105335246A (zh) | 一种基于问答网站分析的程序崩溃缺陷自动修复方法 | |
CN110908894A (zh) | 一种基于vuex的可视化报表工具自动化测试方法及装置 | |
JP5747698B2 (ja) | 要件管理支援装置 | |
CN104699470A (zh) | 用于调试显示器参数的可执行文件的生成方法 | |
CN112286532A (zh) | 一种基于ESLint和Prettier实现前端代码格式化的方法及系统 | |
CN110764816A (zh) | 一种管理页面的方法、设备及介质 | |
US9104356B2 (en) | Extendable system for preprocessing print document and method for the same | |
JP2006277127A (ja) | 修正プログラムの比較方法 | |
CN115237387A (zh) | 一种数字孪生应用的快速开发方法及系统 | |
CN113688150A (zh) | 一种关键字查找方法、装置、电子设备和存储介质 | |
CN114296726A (zh) | 一种代码生成方法、装置、计算机设备和存储介质 | |
CN113672509A (zh) | 自动化测试方法、装置、测试平台及存储介质 | |
CN108628606B (zh) | 一种嵌入式设备的web网管应用程序生成方法及系统 | |
JP5504212B2 (ja) | テストケース自動生成システム、テストケース自動生成方法、およびテストケース自動生成プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150610 |