机器语言自动生成方法及装置与流程

文档序号:27386804发布日期:2021-11-15 21:31阅读:140来源:国知局
机器语言自动生成方法及装置与流程

1.本发明涉及机器语言编码技术领域,特别涉及一种机器语言自动生成方法、一种计算机可读存储介质、一种计算机设备和一种机器语言自动生成装置。


背景技术:

2.相关技术中,在需要根据客户提供的配置文件生成相应的机器语言时,多是通过软件工程师根据配置文件进行相应代码的编写,以通过编写来完成机器语言的生成;这种方式需要耗费软件工程师大量的时间和精力,并且,在频繁修改编码的过程中容易出错。尤其是在公交控制领域;在该领域中,由于车辆标准不统一,往往在调试阶段需要进行多次的修改;使得机器语言的编码效率低下,开发周期长,耗费大量的人力和物力。


技术实现要素:

3.本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种机器语言自动生成方法,能够根据配置文件进行相应机器语言的自动生成和烧写,提高机器语言的编码效率;降低机器语言编码所需耗费的人力和物力。
4.本发明的第二个目的在于提出一种计算机可读存储介质。
5.本发明的第三个目的在于提出一种计算机设备。
6.本发明的第四个目的在于提出一种机器语言自动生成装置。
7.为达到上述目的,本发明第一方面实施例提出了一种机器语言自动生成方法,包括以下步骤:获取原始配置文件,并读取所述原始配置文件中的配置信息,以及将所述配置信息写入到数据库;根据所述配置信息中的开关信息生成虚拟开关索引;根据所述配置信息中的负载信息和所述虚拟开关索引生成逻辑开关索引,并根据所述逻辑开关索引生成配置数据,以及对所述配置数据进行烧写。
8.根据本发明实施例的机器语言自动生成方法,首先,获取原始配置文件,并读取所述原始配置文件中的配置信息,以及将所述配置信息写入到数据库;接着,根据所述配置信息中的开关信息生成虚拟开关索引;然后,根据所述配置信息中的负载信息和所述虚拟开关索引生成逻辑开关索引,并根据所述逻辑开关索引生成配置数据,以及对所述配置数据进行烧写;从而实现根据配置文件进行相应机器语言的自动生成和烧写,提高机器语言的编码效率;降低机器语言编码所需耗费的人力和物力。
9.另外,根据本发明上述实施例提出的机器语言自动生成方法还可以具有如下附加的技术特征:
10.可选地,所述配置信息包括:报文信息、开关信息、负载信息、传感器信息、电机信息、转发信息和多包信息。
11.可选地,所述开关信息包括:模块物理开关信息、模块负载转虚拟开关信息、报文转虚拟开关信息和参数转虚拟开关信息。
12.可选地,根据所述配置信息中的开关信息生成虚拟开关索引,包括:获取模块物理
开关最大索引数和模块负载转虚拟开关个数,并根据所述模块物理开关最大索引数和模块负载转虚拟开关个数写入模块负载转虚拟开关索引;获取报文转虚拟开关个数,并根据所述报文转虚拟开关个数写入报文转虚拟开关索引;获取参数转虚拟开关个数,并根据所述参数转虚拟开关个数写入参数转虚拟开关索引。
13.可选地,根据所述配置信息中的负载信息和所述虚拟开关索引生成逻辑开关索引,包括:获取所述负载信息中的所有负载逻辑描述;将每个负载逻辑描述分解为多个单元逻辑,并将每个单元逻辑分解为多个开关;根据每个开关查询所述虚拟开关索引,并根据查询结果生成逻辑开关索引。
14.为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有机器语言自动生成程序,该机器语言自动生成程序被处理器执行时实现如上述的机器语言自动生成方法。
15.根据本发明实施例的计算机可读存储介质,通过存储器对机器语言自动生成程序进行存储,以使得处理器在执行该机器语言自动生成程序时,实现如上述的机器语言自动生成方法,从而实现根据配置文件进行相应机器语言的自动生成和烧写,提高机器语言的编码效率;降低机器语言编码所需耗费的人力和物力。
16.为达到上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述的机器语言自动生成方法。
17.根据本发明实施例的计算机设备,通过存储器对机器语言自动生成程序进行存储,以使得处理器在执行该机器语言自动生成程序时,实现如上述的机器语言自动生成方法,从而实现根据配置文件进行相应机器语言的自动生成和烧写,提高机器语言的编码效率;降低机器语言编码所需耗费的人力和物力。
18.为达到上述目的,本发明第四方面实施例提出了一种机器语言自动生成装置,包括:获取模块,所述获取模块用于获取原始配置文件,并读取所述原始配置文件中的配置信息,以及将所述配置信息写入到数据库;索引生成模块,所述索引生成模块用于根据所述配置信息中的开关信息生成虚拟开关索引,并根据所述配置信息中的负载信息和所述虚拟开关索引生成逻辑开关索引;编码模块,所述编码模块用于根据所述逻辑开关索引生成配置数据;配置模块,所述配置模块用于对所述配置数据进行烧写。
19.根据本发明实施例的机器语言自动生成装置,通过设置获取模块用于获取原始配置文件,并读取所述原始配置文件中的配置信息,以及将所述配置信息写入到数据库;索引生成模块用于根据所述配置信息中的开关信息生成虚拟开关索引,并根据所述配置信息中的负载信息和所述虚拟开关索引生成逻辑开关索引;编码模块用于根据所述逻辑开关索引生成配置数据;配置模块用于对所述配置数据进行烧写;从而实现根据配置文件进行相应机器语言的自动生成和烧写,提高机器语言的编码效率;降低机器语言编码所需耗费的人力和物力。
20.另外,根据本发明上述实施例提出的机器语言自动生成装置还可以具有如下附加的技术特征:
21.可选地,所述配置信息包括:报文信息、开关信息、负载信息、传感器信息、电机信息、转发信息和多包信息。
22.可选地,所述开关信息包括:模块物理开关信息、模块负载转虚拟开关信息、报文转虚拟开关信息和参数转虚拟开关信息。
附图说明
23.图1为根据本发明实施例的机器语言自动生成方法的流程示意图;
24.图2为根据本发明实施例的虚拟开关索引生成流程示意图;
25.图3为根据本发明实施例的负载逻辑描述索引生成流程示意图;
26.图4为根据本发明实施例的机器语言自动生成装置的方框示意图;
27.图5为根据本发明实施例的逻辑开关编码协议;
28.图6为根据本发明实施例的负载信息编码协议;
29.图7为根据本发明实施例的时间编码协议;
30.图8为根据本发明实施例的表格分类方式示意图;
31.图9为根据本发明实施例的逻辑关系组合方式示意图。
具体实施方式
32.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
33.相关技术中,在进行机器语言的编码过程中,采用人工编码的方式,编码效率低下,出错率高,导致周期长,成本较高;根据本发明实施例的机器语言自动生成方法,首先,获取原始配置文件,并读取所述原始配置文件中的配置信息,以及将所述配置信息写入到数据库;接着,根据所述配置信息中的开关信息生成虚拟开关索引;然后,根据所述配置信息中的负载信息和所述虚拟开关索引按相应协议(如图5、图6)生成逻辑开关索引,并根据所述逻辑开关索引生成配置数据(如图5),以及对所述配置数据通过can烧写到相应模块;从而实现模块按配置数据实现相应功能,提高机器语言的编码效率;降低机器语言编码所需耗费的人力、物力、财力。
34.为了更好的理解上述技术方案,下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
35.为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
36.图1为根据本发明实施例的机器语言自动生成方法的流程示意图,如图1所示,该机器语言自动生成方法包括以下步骤:
37.s101,获取原始配置文件,并读取原始配置文件中的配置信息,以及将配置信息写入到数据库。
38.其中,配置信息的设置方式可以有多种。例如,配置信息可以包括:报文信息、开关信息、负载信息、传感器信息、电机信息、转发信息和多包信息;或者,配置信息可以包括页面信息、模块信息;或者,配置信息可以包括:页面信息、报文信息、模块信息、转发信息和多
包信息。其中,页面信息用于记录机器语言的版本数据、车型数据、车辆配置等基础信息;报文信息用于记录报文所需要的参数;模块信息用于记录模块开关、负载、传感器等的参数及输出的逻辑关系;转发信息用于记录内部通信转到外部通信的信息,以供其他车辆的设备和模块通讯;多包信息用于记录仪表需要显示的文字信息。
39.作为一种示例,首先,通过excel工作表来获取用户输入的配置信息(其中,excel表格进行多种分类,例如,将excel表格分为页面表格、报文表格、模块表格、转换表格和多包表格(图8)),在完成增加或修改之后生成原始配置文件;接着,在接收到完成增加或修改的excel工作表之后,将excel工作表作为原始配置文件,并读取其中的各类信息;并将读取到的各类信息存储到数据库中。
40.s102,根据配置信息中的开关信息生成虚拟开关索引。
41.其中,开关信息的设置方式可以有多种;例如,开关信息包括:模块物理开关信息、模块负载转虚拟开关信息、报文转虚拟开关信息和参数转虚拟开关信息。
42.在一些实施例中,根据配置信息中的开关信息生成虚拟开关索引,包括:获取模块物理开关最大索引数和模块负载转虚拟开关个数,并根据模块物理开关最大索引数和模块负载转虚拟开关个数写入模块负载转虚拟开关索引;获取报文转虚拟开关个数,并根据报文转虚拟开关个数写入报文转虚拟开关索引;获取参数转虚拟开关个数,并根据参数转虚拟开关个数写入参数转虚拟开关索引。
43.作为一种示例,如图2所示,首先,获取模块物力开关最大索引数m,并获取模块负载转虚拟开关的个数n;接着,初始化当前序号,每次写入一条模块负载转虚拟开关的虚拟开关索引之前,对当前序号进行加1操作,并判断操作后的当前序号是否小于等于n;如果是,则写入,直至所有n个模块负载转虚拟开关写入完毕;然后,获取报文转虚拟开关个数z;以和上述相同的方式进行判断,以写入z条报文转虚拟开关索引;接着,获取参数转虚拟开关个数y,并以和上述相同的方式进行判断,以写入y条参数转虚拟开关索引。从而,完成根据开关信息生成虚拟开关索引的过程。
44.s103,根据配置信息中的负载信息和虚拟开关索引生成逻辑开关索引,并根据逻辑开关索引生成配置数据,以及对配置数据进行烧写。
45.在一些实施例中,根据配置信息中的负载信息和虚拟开关索引生成逻辑开关索引,包括:获取负载信息中的所有负载逻辑描述;将每个负载逻辑描述分解为多个单元逻辑,并将每个单元逻辑分解为多个开关;根据每个开关查询虚拟开关索引,并根据查询结果生成逻辑开关索引。
46.作为一种示例,如图3所示,首先,读取所有负载逻辑描述的个数n,接着,初始化当前序号i,获取当前序号i负载的逻辑描述之前,对当前序号i进行加1的操作,并判断操作后的当前序号i是否小于等于n;如果是,则获取当前序号i负载的逻辑描述,以完整获取n个负载逻辑描述;接着,在获取到当前序号i负载的逻辑描述之后,进一步将当前序号i分解为m块单元逻辑,并初始化序号j;然后,在对当前序号j单元进行拆分之前,对当前序号j进行加1操作,并在操作完成之后,判断当前序号是否小于等于m(以对m各单元逻辑进行完整的拆分);如果是,则将当前序号j单元逻辑拆分为z个开关;并初始化当前序号x,并在生成逻辑开关索引之前,对当前序号x进行加1操作,并判断操作后的当前序号x是否小于等于z(以对完整的z个开关进行处理);如果是,则根据序号x开关进行查找,以根据查找结果生成对应
的逻辑开关索引。
47.其中,逻辑描述的设置方式可以有多种。
48.在一些实施例中,负载逻辑描述采用“逻辑输出=(逻辑开关1
……
逻辑开关n)+输出模式)(图9)”的格式进行设置;其中,逻辑输出可以包括:物理负载、虚拟负载、传感器、led等输出项目,按照已分配的编号分配烧写地址。输出模式包括:功能编码、时间单位编码、时间值等,其中,功能编码包括:正常输出、开关有效延时断电、开关无效延时断电、闪烁灯;时间单位包括:毫秒、秒、分、小时;如图7所示,时间值分配两个字节;如果有两个时间值,则分别存入高、低位。逻辑开关定义两个字节,分为:是否有效、逻辑运算符号编码、模块编码、是否物理开关、开关编号。
49.作为一种示例,根据用户提供的excel工作表,根据其中记载的内容;解释器可以根据类型对相关内容按照编码格式生成二进制数据;查找字段为虚拟开关方式、异常内容,如果有异常或虚拟开关方式不为空,解释器按编码生成二进制数据;解释器去除字段为定义和逻辑描述的内容,组合成一个逻辑关系(图9),例如:组合成“负载1=开关1+开关2或开关1+开关3+开关有效延时输出(3秒)”,以将逻辑关系分解成“逻辑输出=逻辑开关+输出模式”的格式;然后,找出逻辑输出的名称,按名称、类型在excel内容找出对应的编号,生成二进制编码。接着,把生成好的二进制编码通过can烧写到各个模块flash的配置层。单片机软件采用分层式设计,总体分为:硬件驱动层、中间层、应用层及配置层的方式。模块上电后,先执行硬件驱动层、中间层,再执行应用层,最后读取配置层的数据,实现各个模块的功能。
50.硬件驱动层:实现对不同cpu驱动的支持及实现访问接口统一,比如:读取flash,不管采用哪个品牌的产品,对上层提供的访问接口一致,保证即使换品牌,其他软件不受影响。
51.中间层:实现通用软件功能,比如通用开关采集功能、通用can通信数据接收与处理功能、通用lcd显示功能、数学计算软件功能、通用负载控制软件功能等。这些软件具有普遍性,通用性的特点,不必每次都开发。
52.应用层:实现客车仪表功能的通用软件机制。比如,can通信软件机制,实现从通信总线中接收数据包,并把数据包中有用的数据提取出来,并放入正确的内存或文件中。仪表盘指针软件机制为根据仪表盘的量程与刻度,给定一个值,指针能平滑、及时的指向到正确的位置。具体can通信中要获取哪些有用数据由配置层excel表格内指定,或者仪表盘指针具体是指示车速还是转速由excel表格内的数据指定。通过这种方法实现所有客车仪表内的所有功能的软件机制。
53.配置层:采用excel表格描述,客车仪表需要实现哪些功能,这些功能的实现方法由上述应用层解决。采用excel表格是采用人容易理解有意义的文字与数字代替计算机所能识别的二进制数或者机器指令,从而实现模块功能。不需要重新开发软件或者极少开发软件,而只是在excel表格内描述达到需要实现的功能即可。
54.综上所述,根据本发明实施例的机器语言自动生成方法,首先,获取原始配置文件,并读取所述原始配置文件中的配置信息,以及将所述配置信息写入到数据库;接着,根据所述配置信息中的开关信息生成虚拟开关索引;然后,根据所述配置信息中的负载信息和所述虚拟开关索引生成逻辑开关索引,并根据所述逻辑开关索引生成配置数据,以及对所述配置数据进行烧写;从而实现模块按配置数据实现相应功能,提高机器语言的编码效
率;降低机器语言编码所需耗费的人力和物力。
55.为了实现上述实施例,本发明实施例提出了一种计算机可读存储介质,存储有机器语言自动生成程序,该机器语言自动生成程序被处理器执行时实现如上述的机器语言自动生成方法。
56.根据本发明实施例的计算机可读存储介质,通过存储器对机器语言自动生成程序进行存储,以使得处理器在执行该机器语言自动生成程序时,实现如上述的机器语言自动生成方法,从而实现根据配置文件进行相应机器语言的自动生成和烧写,提高机器语言的编码效率;降低机器语言编码所需耗费的人力和物力。
57.为了实现上述实施例,本发明实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述的机器语言自动生成方法。
58.根据本发明实施例的计算机设备,通过存储器对机器语言自动生成程序进行存储,以使得处理器在执行该机器语言自动生成程序时,实现如上述的机器语言自动生成方法,从而实现根据配置文件进行相应机器语言的自动生成和烧写,提高机器语言的编码效率;降低机器语言编码所需耗费的人力、物力、财力。
59.为了实现上述实施例,本发明实施例提出了一种机器语言自动生成装置,如图4所示,该机器语言自动生成装置包括:获取模块10、索引生成模块20、编码模块30和配置模块40。
60.其中,获取模块10用于获取原始配置文件,并读取原始配置文件中的配置信息,以及将配置信息写入到数据库;
61.索引生成模块20用于根据配置信息中的开关信息生成虚拟开关索引,并根据配置信息中的负载信息和虚拟开关索引生成逻辑开关索引;
62.编码模块30用于根据逻辑开关索引生成配置数据;
63.配置模块40用于对配置数据进行烧写。
64.在一些实施例中,配置信息包括:报文信息、开关信息、负载信息、传感器信息、电机信息、转发信息和多包信息。
65.在一些实施例中,开关信息包括:模块物理开关信息、模块负载转虚拟开关信息、报文转虚拟开关信息和参数转虚拟开关信息。
66.需要说明的是,上述关于图1中机器语言自动生成方法的描述同样适用于该机器语言自动生成装置,在此不做赘述。
67.综上所述,根据本发明实施例的机器语言自动生成装置,通过设置获取模块用于获取原始配置文件,并读取所述原始配置文件中的配置信息,以及将所述配置信息写入到数据库;索引生成模块用于根据所述配置信息中的开关信息生成虚拟开关索引,并根据所述配置信息中的负载信息和所述虚拟开关索引生成逻辑开关索引;编码模块用于根据所述逻辑开关索引生成配置数据;配置模块用于对所述配置数据进行烧写;从而实现根据配置数据进行相应机器语言的自动生成和烧写,提高机器语言的编码效率;降低机器语言编码所需耗费的人力、物力、财力。
68.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
69.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
70.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读写存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
71.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
72.应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
73.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
74.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
75.在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
76.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
77.在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以
是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
78.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
79.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1