一种程序烧录方法、系统、装置及计算机可读存储介质与流程

文档序号:19188076发布日期:2019-11-20 01:43阅读:248来源:国知局
一种程序烧录方法、系统、装置及计算机可读存储介质与流程
本发明涉及单片机
技术领域
,更具体地说,涉及一种程序烧录方法、系统、装置及计算机可读存储介质。
背景技术
:当前单片机远程升级的主流方式是分别编写两个程序,一个程序是在单片机启动时对用户程序进行升级的程序,即ld程序,另一个程序是用户实现单片机功能的用户程序,即ap程序。在这两个程序的烧录方面主要有三种实现方式,第一种是个别厂家的单片机在硬件上将flash分为两个区域,包括启动程序(ldrom)区域与用户程序(aprom)区域,在烧录时通过专用的烧录软件与工具,分别将ld程序烧录到ldrom区,将ap程序烧录到aprom区。第二种当用户在烧写程序时手工选择ld程序与ap程序的起始烧写地址,分两次将两个程序烧录到芯片里。第三种是使用专用的工具软件,将ld程序与ap程序合成为一个烧录文件,然后使用烧录软件将合成的程序烧录到芯片内容。这三种方式均需要建立独立的两个软件工程,一个为ld程序,一个为ap程序,并编译生成两个独立的烧录文件。在生产烧录时需用工具分别将两个文件烧录到单片机内,这样在开发与生产过程中一个产品至少需要维护两套源码工程与烧录程序,在实际开发过程中同一产品修改两套不同程序更加容易产生错误,在程序发给车间过程或生产过程中如果两个程序不匹配也容易造成批量问题,在后续的管理过程中各类办公软件流程中都会出现两个程序,增加管理的工作量,也容易导致错误产生。在大规模生产过程中一般使用自动烧录工具批量烧录程序,一般的工具只支持单个文件的烧录,如果有两个烧录文件就需要分别烧录两次,降低生产效率。技术实现要素:本发明的目的在于提供一种程序烧录方法、系统、装置及计算机可读存储介质,以实现在远程升级单片机的过程中仅需要维护一套程序。为实现上述目的,本发明实施例提供了如下技术方案:一种程序烧录方法,包括:获取包括启动程序内容与用户程序内容的目标程序;利用基于分散加载文件技术的预设编译工具将所述目标程序中的启动程序内容编译至第一运行时域,将所述目标程序中的用户程序内容编译至第二运行时域;将所述启动程序内容烧录至首地址,将所述用户程序内容烧录至预设用户程序地址;将升级版本程序内容传输至预设升级内容存储空间;利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级。可选地,所述启动程序内容包括启动程序与中断向量表;相应的,所述利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级之前,还包括:启动所述单片机,以使所述单片机将所述中断向量表复制至预设中断向量表地址;所述利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级,包括:利用所述单片机中的所述启动程序与所述升级版本程序内容对所述用户程序内容与所述中断向量表进行升级。可选地,所述启动所述单片机,以使所述单片机将所述中断向量表复制至预设中断向量表地址之后,还包括:设置中断向量表的启动位置为所述预设中断向量表地址。可选地,所述将升级版本程序内容传输至预设升级内容存储空间,包括:将所述升级版本的用户程序内容传输至所述单片机中的第一升级内容存储区;将所述升级版本的中断向量表传输至所述单片机中的第二升级内容存储区。可选的,所述利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级,包括:向所述单片机的预设配置保存区发送升级标识,以使所述单片机检测到所述预设配置保存区中的升级标识后,将所述用户程序内容更新至所述目标用户程序内容。为实现上述目的,本申请还提供一种程序烧录系统,包括:目标程序获取模块,用于获取包括启动程序内容与用户程序内容的目标程序;编译模块,用于利用基于分散加载文件技术的预设编译工具将所述目标程序中的启动程序内容编译至第一运行时域,将所述目标程序中的用户程序内容编译至第二运行时域;烧录模块,用于将所述启动程序内容烧录至首地址,将所述用户程序内容烧录至预设用户程序地址;传输模块,用于将升级版本程序内容传输至预设升级内容存储空间;更新模块,用于利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级。可选地,所述启动程序内容包括启动程序与中断向量表;相应的,所述系统还包括:单片机启动模块,用于启动所述单片机,以使所述单片机将所述中断向量表复制至预设中断向量表地址;所述更新模块,具体用于:利用所述单片机中的所述启动程序与所述升级版本程序内容对所述用户程序内容与所述中断向量表进行升级。可选地,所述系统还包括:启动位置设置模块,用于设置中断向量表的启动位置为所述预设中断向量表地址。为实现上述目的,本申请还提供一种程序烧录装置,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如任一项所述程序烧录方法的步骤。为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如任一项所述程序烧录方法的步骤。通过以上方案可知,本发明实施例提供的一种程序烧录方法,包括:获取包括启动程序内容与用户程序内容的目标程序;利用基于分散加载文件技术的预设编译工具将所述目标程序中的启动程序内容编译至第一运行时域,将所述目标程序中的用户程序内容编译至第二运行时域;将所述启动程序内容与所述用户程序内容分别烧录至单片机的不同地址空间;将目标用户程序内容烧录至所述单片机;利用所述单片机中的所述启动程序内容将所述用户程序内容更新至所述目标用户程序内容。由此可见,本申请提供的一种程序烧录方法,一个目标程序中既可以包括启动程序内容又包括用户程序内容,在进行烧录之前,利用基于分散加载文件技术的预设编译工具将目标程序中的启动程序内容和用户程序内容分别编译到不同的运行时域,从而能够将一个目标程序中的两种内容分离,在烧录时即可将不同的内容烧录至不同的地址空间。实现了维护一个目标程序也能够实现单片机的远程升级。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例公开的一种程序烧录方法流程图;图2为本发明实施例公开的一种单片机分区示意图;图3为本发明实施例公开的一种单片机分区示意图;图4为本发明实施例公开的一种单片机分区示意图;图5为本发明实施例公开的一种单片机分区示意图;图6为本发明实施例公开的一种程序烧录系统结构示意图;图7为本发明实施例公开的一种程序烧录装置结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例公开了一种程序烧录方法、系统、装置及计算机可读存储介质,以实现在远程升级单片机的过程中仅需要维护一套程序。参见图1,本发明实施例提供的一种程序烧录方法,具体包括:s101,获取包括启动程序内容与用户程序内容的目标程序。首先获取目标程序,一个目标程序中既包括启动程序(ld)的内容,也包括用户程序(ap)的内容。s102,利用基于分散加载文件技术的预设编译工具将所述目标程序中的启动程序内容编译至第一运行时域,将所述目标程序中的用户程序内容编译至第二运行时域。需要说明的是,由于远程单片机升级的操作,需要利用启动程序控制升级版本程序覆盖原始的待升级程序,如用户程序,以实现对原始的待升级程序的升级,为此,就需要将启动程序与原始的用户程序在存储空间上有一定的间隔,即不能连续存储。而对于同一个目标程序来说,其编译得到的烧录文件也只有一个,烧录时,只能指定一次起始地址,烧录文件中的启动程序内容与用户程序内容会按照顺序从起始地址依次的被烧录,这就不能使这两个程序的内容之间存在间隔的地址空间。为此,本方案利用分散加载文件技术对目标程序进行编译,通过设置参数的方式,将启动程序内容和用户程序内容分别编译到不同的运行时域,从而可以实现虽然编译文件只有一个,但是其中的内容可以被分开。在一个具体的实施方式中,启动程序内容包括启动程序与中断向量表,相应的,所述利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级之前,还包括:启动所述单片机,以使所述单片机将所述中断向量表复制至预设中断向量表地址;所述利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级,包括:利用所述单片机中的所述启动程序与所述升级版本程序内容对所述用户程序内容与所述中断向量表进行升级。其中,启动程序即上述用来控制升级的程序,而中断向量表也是需要被升级的内容。但是分散加载文件技术仅仅能够将启动程序内容与用户程序内容进行划分,启动程序内容中,启动程序与中断向量表的划分确无法实现。因此在本方案中利用单片机运行过程实现将中断向量表与启动程序内容划分,在单片机启动时,将启动程序内容中的中断向量表复制一份到中断向量表地址,此时,单片机内就会有两部分中断向量表,一份是位于启动程序内容中的中断向量表,一份是位于中断向量表地址的中断向量表,在进行升级时,即可利用中断向量表地址对中断向量表进行升级。对中断向量表地址的中断向量表进行升级会造成另外一个问题,即,单片机中存在新版本与旧版本两个中断向量表,若运行时仍然启动旧版本中断向量表,则升级无效,为此,在一个具体的实施方式中,所述启动所述单片机,以使所述单片机将所述中断向量表复制至预设中断向量表地址之后,还包括:设置中断向量表的启动位置为所述预设中断向量表地址。在本方案中,修改中断向量表的启动地址,将原来的从启动程序内容中启动中断向量表,修改为从中断向量表地址启动中断向量表,从而可以保证启动的中断向量表均为最新版本的中断向量表,保证了升级的有效性。s103,将所述启动程序内容烧录至首地址,将所述用户程序内容烧录至预设用户程序地址。具体的,当目标程序中的启动程序内容与用户程序内容被分开后,即可将不同的内容烧录至单片机的不同地址空间中。s104,将升级版本程序内容传输至预设升级内容存储空间。当需要对现运行的用户程序进行升级时,首先需要将升级版本的用户程序,即目标用户程序烧录至单片机。在一个具体的实施方式中,所述将升级版本程序内容传输至预设升级内容存储空间,包括:将所述升级版本的用户程序内容传输至所述单片机中的第一升级内容存储区;将所述升级版本的中断向量表传输至所述单片机中的第二升级内容存储区。需要说明的是,升级版本程序既可以保存在外部存储空间,也可以保存在单片机内部。在本方案中,为了将单片机内部划分出两个存储区,即,第一升级内容存储区与第二升级内容存储区,将升级版本的用户程序内容传输至第一升级内容存储区,将升级版本的中断向量表传输至单片机中的第二升级内容存储区,从而无需额外增加存储设备,使升级过程更加简便。s105,利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级。利用单片机控制升级版本程序覆盖当前待升级的用户程序内容与启动程序内容中断待升级部分,即中断向量表,即可完成用户程序的升级。在一个具体的实施方式中,所述利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级,包括:向所述单片机的预设配置保存区发送升级标识,以使所述单片机检测到所述预设配置保存区中的升级标识后,将所述用户程序内容更新至所述目标用户程序内容。在本方案中,配置保存区用于存储升级标识,当需要单片机更新用户程序内容时,向配置保存区发送升级标识,单片机检测到配置保存区的升级标识后,即执行升级的操作。在上述具体实施方式中,即将第一升级内容存储区的升级版本的用户程序内容复制到应用程序区,将第二升级内容存储区的升级版本的中断向量表内容复制到中断向量表区。由此可见,本申请实施例提供的一种程序烧录方法,一个目标程序中既可以包括启动程序内容又包括用户程序内容,在进行烧录之前,利用基于分散加载文件技术的预设编译工具将目标程序中的启动程序内容和用户程序内容分别编译到不同的运行时域,从而能够将一个目标程序中的两种内容分离,在烧录时即可将不同的内容烧录至不同的地址空间。实现了维护一个目标程序也能够实现单片机的远程升级。下面对本申请实施例提供的一种具体的程序烧录方法进行介绍,下文描述的一种具体的程序烧录方法与上述任一实施例可以相互参照。本申请实施例提供的一种具体的程序烧录方法,具体包括:参见表1,本方案中预先对单片机进行划分,将单片机的程序运行区(aprom)分割为6个区域。表1ldrom启动程序区vect_rom中断向量表分区aprom应用程序区/用户程序update1第一升级内容存储区update2第二升级内容存储区config配置保存区其中,ldrom区存储启动程序与中断向量程序;vect_rom区存储程序实际运行的中断向量表;arrom区存储当前实际运行的用户程序(应用程序等于用户程序加中断向量表,即当前单片机执行正常功能必须的程序);update1区存储用户程序升级数据;update2区存储中断向量升级数据;config区存储配置信息。首先,根据软件工程编译文件编译成烧录文件,其中启动程序包括两部分内容,一部分是启动程序,另一部分是中断向量表。基于分散加载技术将启动程序内容与用户程序内容分为两个地址,启动程序和中断向量程序在首地址,用户程序在预留的用户程序地址。参见图2,烧录时烧录工具将启动程序加中断向量与用户程序,分别烧录到启动程序加中断向量区、用户程序区,并擦除中断向量表区、用户程序升级存储区、中断向量升级存储区、配置保存区。参见图3,烧写完成后,启动单片机,单片机第一次上电时启动程序开始运行,在执行功能前检测中断向量表区是否有程序,如果没有中断向量程序则在启动程序区找到中断向量部分内容,复制到中断向量表区,然后重新定位中断向量表,之后程序跳转到应用程序正常运行。需要说明的是,由于升级过程也必须升级中断向量程序,而且程序不能升级自身当前执行的部分,所以需要将中断向量程序复制到中断向量表区,这样升级过程只需升级中断向量表区与用户程序区即可,不需要升级启动程序区。参见图4,正常使用过程中如果需要升级程序,则通过串口等数据接口将新版本烧录文件内容传输到单片机,传输过程中单片机识别启动程序、中断向量程序、与用户程序,将用户程序与中断向量程序分别保存到预留的升级存储区。数据传输完成后在配置保存区写入需要远程升级标志,然后软复位单片机。参见图5,单片机复位后首先运行启动程序,启动程序读取配置保存区,如果有升级标志位,则开始升级,先将中断向量升级存储区内容复制到中断向量表区,在将用户程序复制到用户程序区,覆盖旧程序,然后设置中断向量地址,跳转到用户程序执行正常功能。下面对本申请实施例提供的一种程序烧录系统进行介绍,下文描述的一种程序烧录系统与上述任一实施例可以相互参照。参见图6,本申请实施例提供的一种程序烧录系统,具体包括:目标程序获取模块301,用于获取包括启动程序内容与用户程序内容的目标程序;编译模块302,用于利用基于分散加载文件技术的预设编译工具将所述目标程序中的启动程序内容编译至第一运行时域,将所述目标程序中的用户程序内容编译至第二运行时域;烧录模块303,用于将所述启动程序内容烧录至首地址,将所述用户程序内容烧录至预设用户程序地址;传输模块304,用于将升级版本程序内容传输至预设升级内容存储空间;更新模块305,用于利用所述单片机中的所述启动程序内容与所述升级版本程序内容对所述用户程序内容与所述启动程序内容中的待升级部分进行升级。可选地,所述启动程序内容包括启动程序与中断向量表;相应的,所述系统还包括:单片机启动模块,用于启动所述单片机,以使所述单片机将所述中断向量表复制至预设中断向量表地址;所述更新模块,具体用于:利用所述单片机中的所述启动程序与所述升级版本程序内容对所述用户程序内容与所述中断向量表进行升级。可选地,所述系统还包括:启动位置设置模块,用于设置中断向量表的启动位置为所述预设中断向量表地址。。本实施例的程序烧录系统用于实现前述的程序烧录方法,因此程序烧录系统中的具体实施方式可见前文中的程序烧录方法的实施例部分,例如,目标程序获取模块301,编译模块302,烧录模块303,传输模块304,更新模块305,分别用于实现上述程序烧录方法中步骤s101,s102,s103,s104和s105,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。下面对本发明实施例提供的一种程序烧录装置进行介绍,下文描述的一种程序烧录装置与上述任一实施例可以相互参照。参见图7,本发明实施例提供的一种程序烧录装置,具体包括:存储器100,用于存储计算机程序;处理器200,用于执行所述计算机程序时实现上述任一程序烧录方法的步骤。具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200为程序烧录装置提供计算和控制能力,可以实现上述任一实施例所述的程序烧录方法。进一步的,本实施例中的程序烧录装置,还可以包括:输入接口300,用于获取外界导入的计算机程序,并将获取到的计算机程序保存至所述存储器100中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器200中,以便处理器200利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口300具体可以包括但不限于usb接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。输出接口400,用于将处理器200产生的各种数据输出至与其相连的终端设备,以便于与输出接口400相连的其他终端设备能够获取到处理器200产生的各种数据。本实施例中,所述输出接口400具体可以包括但不限于usb接口、串行接口等。通讯单元500,用于完成当前设备与其他设备的通讯。键盘600,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。显示器700,用于对程序烧录过程的相关信息进行实时显示,以便于用户及时地了解当前程序烧录情况。鼠标800,可以用于协助用户输入数据并简化用户的操作。本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1