CN112905217B - 嵌入式程序的程序更新方法、终端、系统及存储介质 - Google Patents

嵌入式程序的程序更新方法、终端、系统及存储介质 Download PDF

Info

Publication number
CN112905217B
CN112905217B CN202110495111.4A CN202110495111A CN112905217B CN 112905217 B CN112905217 B CN 112905217B CN 202110495111 A CN202110495111 A CN 202110495111A CN 112905217 B CN112905217 B CN 112905217B
Authority
CN
China
Prior art keywords
program
file
update
address
update file
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.)
Active
Application number
CN202110495111.4A
Other languages
English (en)
Other versions
CN112905217A (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.)
Peng Cheng Laboratory
Original Assignee
Peng Cheng Laboratory
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 Peng Cheng Laboratory filed Critical Peng Cheng Laboratory
Priority to CN202110495111.4A priority Critical patent/CN112905217B/zh
Publication of CN112905217A publication Critical patent/CN112905217A/zh
Application granted granted Critical
Publication of CN112905217B publication Critical patent/CN112905217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种嵌入式程序的程序更新方法、终端、系统及存储介质。其中,该方法包括:接收开发终端发送的更新文件,所述更新文件为开发终端根据应用终端中的嵌入式程序、以及修改的源代码文件生成的携带有地址信息的二进制文件;判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围;若是,则将更新文件写入空白地址中,更新原始程序对应的数据首行为跳转至空白地址;若否,则将更新文件写入原始程序对应的程序地址,更新原始程序为更新文件。本发明提供的方法提高存储器的使用寿命、缩短烧录时间。

Description

嵌入式程序的程序更新方法、终端、系统及存储介质
技术领域
本发明涉及程序研发技术领域,尤其涉及一种嵌入式程序的程序更新方法、终端及可读存储介质。
背景技术
嵌入式程序中,一般都是预先将执行程序烧录于一可编程只读存储器中,将可编程只读存储器中的内容解压缩后置入另一随机存储内存(RAM)内,以执行特定的工作。存储于可编程只读存储器中的数据可以重复的烧录进去,但是一个产品的研发过程中,会衍生出很多软件版本,且每个版本都要经过多轮迭代测试,甚至有些产品需要在版本未完成时边开发边验证参数和算法。现今更改程序的主要方法是将只读存储器拆下放置于烧录器上或将硬件用烧录器与开发程序计算机连接,再将需要测试的程序代码烧录进去。导致当只更改程序代码中的一个参数或一段代码时,需要生成和烧录整个软件程序镜像,开发和重启系统的时间较长;同时只读存储器的擦写次数有限,在开发的过程中频繁的擦写只读存储器将降低其使用寿命。
发明内容
本发明的主要目的是提供一种嵌入式程序的程序更新方法、终端、系统及存储介质,旨在解决现有嵌入式程序开发过程中需要反复烧录程序代码,导致存储器使用寿命降低的技术问题。
为实现上述目的,本发明提供一种嵌入式程序的程序更新方法,所述程序更新方法应用于应用终端,该方法包括:
接收开发终端发送的更新文件,所述更新文件为开发终端根据应用终端中的嵌入式程序、以及修改的源代码文件生成的携带有地址信息的二进制文件;
判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围;
若是,则将更新文件写入空白地址中,更新原始程序对应的数据首行为跳转至空白地址;
若否,则将更新文件写入原始程序对应的程序地址,更新原始程序为更新文件。
可选地,所述接收开发终端发送的更新文件的步骤之后包括:
当所述更新文件为函数更新文件时,执行:所述判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围的步骤;
当所述更新文件为变量更新文件时,根据地址信息将变量更新文件写入,更新地址信息对应的变量值为变量更新文件。
可选地,所述接收开发终端发送的更新文件的步骤之前包括:
启动处理模块,以加载初始化启动程序;
接收开发终端通过串口传输的与嵌入式程序对应的镜像文件,并将所述镜像文件存储至随机存储内存模块中为主程序;
将程序指针跳转至随机存储内存模块中预设首地址并开始执行随机存储内存模块中的主程序。
可选地,所述接收开发终端发送的更新文件的步骤之前包括:
启动处理模块,以加载初始化启动程序;
接收开发终端通过串口传输的与嵌入式程序对应的镜像文件,并将所述镜像文件烧录至闪存模块中;
再次启动处理模块,以加载初始化启动程序,从闪存模块中读取镜像文件存储至随机存储内存模块中为主程序;
将程序指针跳转至内存模块中预设首地址并开始执行内存模块中的主程序。
本发明还提供了一种嵌入式程序的程序更新方法,所述程序更新方法应用于程序开发系统,所述程序开发系统包括通信连接的开发终端和应用终端,所述应用终端存储有嵌入式程序,该方法包括:
控制开发终端根据嵌入式程序、以及修改的源代码文件,生成携带有地址信息的二进制更新文件,并将所述更新文件发送至应用终端;
控制应用终端判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围;
若是,则控制应用终端将更新文件写入空白地址中,更新原始程序对应的数据首行为跳转至空白地址;
若否,则将更新文件写入原始程序对应的程序地址,更新原始程序为更新文件。
可选地,所述控制开发终端根据嵌入式程序、以及修改的源代码文件,生成携带有地址信息的二进制更新文件的步骤包括:
当修改的源代码文件为修改变量文件时,根据修改变量文件,生成.s格式文件,根据嵌入式程序生成变量地址配置文件;
根据.s格式文件和变量地址配置文件生成携带有地址信息的二进制的变量更新文件;
所述将所述更新文件发送至应用终端的步骤之后包括:
当所述更新文件为变量更新文件时,根据地址信息将变量更新文件写入,更新地址信息对应的变量值为变量更新文件。
可选地,所述控制开发终端根据嵌入式程序、以及修改的源代码文件,生成携带有地址信息的二进制更新文件的步骤包括:
当修改的源代码文件为修改函数文件时,根据修改函数文件,生成.s格式文件和.o格式文件,根据嵌入式程序生成程序地址配置文件;
根据.s格式文件、.o格式文件和变量地址配置文件生成携带有地址信息的二进制的函数更新文件;
所述将所述更新文件发送至应用终端的步骤之后包括:
当所述更新文件为函数更新文件时,执行:所述判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围的步骤。
本发明还提供了一种应用终端,包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如上述嵌入式程序的程序更新方法的步骤。
本发明还提供了一种程序开发系统,所述程序开发系统包括通信连接的开发终端和应用终端,所述开发终端和应用终端分别包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如权上述嵌入式程序的程序更新方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述嵌入式程序的程序更新方法的步骤。
本发明通过将需要修改的部分生成更新文件,从而仅根据更新文件中的地址信息写入更新文件,以实现嵌入式程序中部分内容更新,从而减少不需要更新的部分进行重复烧录的情况,提高存储器的使用寿命,特别是可编程只读存储器的使用寿命;同时仅更新部分程序可缩短烧录时间,提高开发、测试效率。
附图说明
图1是本发明实施例嵌入式程序的程序更新方法的终端的硬件结构示意图;
图2为本发明嵌入式程序的程序更新方法第一实施例的流程示意图;
图3为本发明嵌入式程序的程序更新方法第二实施例的部分流程示意图;
图4为本发明嵌入式程序的程序更新方法第三实施例的部分流程示意图;
图5为本发明嵌入式程序的程序更新方法第四实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参照图1,图1为本发明各个实施例中所提供的应用终端的硬件结构示意图。所述应用终端包括通信模块01、存储器02及处理器03等部件。本领域技术人员可以理解,图1中所示出的硬件结构还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中,所述处理器03分别与所述存储器02和所述通信模块01连接,所述存储器02上存储有计算机程序,所述计算机程序同时被处理器03执行。
通信模块01,可通过网络与外部设备连接。通信模块01可以接收外部设备发出的数据,还可发送数据、指令及信息至所述外部设备,所述外部设备可以手机、平板电脑、笔记本电脑和台式电脑等电子设备。
存储器02,可用于存储软件程序以及各种数据。存储器02可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据终端的使用所创建的数据或信息等。此外,存储器02可以包括高速随机存储内存模块和非易失性存储器,例如至少一个磁盘存储器件、闪存模块、或其他易失性固态存储器件。在一实施例中,存储器02包括闪存模块和随机存储内存模块,其中闪存模块用于存储嵌入式程序的镜像文件及其数据汇总信息,包括镜像头模块、镜像数据模块等,随机存储内存模块用于运行嵌入式程序,包括主程序模块、更新程序模块、烧写程序模块等。
处理器03,是终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器02内的软件程序和/或模块,以及调用存储在存储器02内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。处理器03可包括一个或多个处理单元;优选的,处理器03可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器03中。
本领域技术人员可以理解,图1中示出的终端的硬件结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供了一种程序开发系统,程序开发系统包括通信连接的开发终端和如上所述的应用终端。其中开发终端具体可以为平板电脑、笔记本电脑和台式电脑等电子设备,以方便开发人员编写、调试嵌入式程序。开发终端包括程序地址解析模块、程序链接模块、通讯模块、程序下载模块、镜像生成模块、镜像烧写模块等。其中程序地址解析模块用于根据嵌入式程序生成程序地址配置文件和变量地址配置文件,程序地址配置文件包括嵌入式程序中函数和临时变量等参数的地址信息,变量地址配置文件包括嵌入式程序中常量等参数的地址信息。程序链接模块用于将修改源代码文件和程序地址配置文件或变量地址配置文件联合,生成携带地址信息的二进制文件;通讯模块用于通过串口、无线等方式与应用终端连接;程序下载模块用于与应用终端的随机存储内存模块中更新程序模块建立通信;镜像生成模块用于根据嵌入式程序生成镜像文件;镜像烧写模块用于将镜像文件烧录至应用终端中。
根据上述硬件结构,提出本发明方法各个实施例。
参照图2,图2为本发明嵌入式程序的程序更新方法第一实施例的流程示意图。所述程序更新方法应用于应用终端,该方法包括:
步骤S100,接收开发终端发送的更新文件,所述更新文件为开发终端根据应用终端中的嵌入式程序、以及修改的源代码文件生成的携带有地址信息的二进制文件;
具体地,嵌入式程序为应用终端中安装的系统程序。开发过程中,研发人员预先在开发终端中编写嵌入式程序,再开发终端根据嵌入式程序生成相对应的镜像文件,并将镜像文件输入、存储至应用终端,以使得应用终端可执行该镜像文件实现预想的功能。修改的源代码文件为研发人员在应用终端执行嵌入式程序的测试过程中,根据实际执行结果和预想执行结果之间的差异,在开发终端中输入的修改全部或部分嵌入式程序的代码文件。
研发人员根据需要修改的数据类型输入不同类型的修改源代码文件,需要修改的数据为嵌入式程序中的常量数据时,则输入类型为修改变量文件的修改源代码文件,根据修改变量文件,生成.s格式文件,根据嵌入式程序中的嵌入式程序生成变量地址配置文件。程序链接模块根据.s格式文件和变量地址配置文件生成携带有地址信息的二进制的变量更新文件。
步骤S100之后包括:
当所述更新文件为变量更新文件时,根据地址信息将变量更新文件写入,更新地址信息对应的变量值为变量更新文件。
例如在嵌入式程序中某一函数中的字段名称为α的常量为7,需要将常量α修改为8,则地址信息指向该字段α,通过变量更新文件将该变量值α修改为8。
步骤S100之后还包括:
当所述更新文件为函数更新文件时,执行步骤S200,判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围;
更新文件中携带有地址信息,地址信息不仅包括具体指向嵌入式程序中的具体哪个位置需要进行更新,还包括更新的代码具体的存储范围,即程序地址范围。需要更新的原始程序中对应需要更新的代码也具有程序地址范围。
若是,则执行步骤S300,将更新文件写入空白地址中,更新原始程序对应的数据首行为跳转至空白地址;
更新文件的程序地址范围大于与所述地址信息对应的原始程序的程序地址范围,则表示新的程序代码的所需要的的存储范围大于原始程序的存储范围,直接将该更新文件替换原始程序,将导致更新文件中的部分内容无法有效的存储至应用终端中,从而导致程序不能执行。所以在本发明中直接将更新文件写入空白地址中,更新原始程序对应的数据首行为跳转至空白地址,从而保证嵌入式程序执行时,可以直接通过跳转空白地址,读取到该更新的代码。
若否,则执行步骤S400,将更新文件写入原始程序对应的程序地址,更新原始程序为更新文件。
更新文件的程序地址范围小于或等于与所述地址信息对应的原始程序的程序地址范围,则表示新的程序代码的所需要的的存储范围小于或等于原始程序的存储范围,可以直接将该更新文件替换原始程序,以快速更新程序。
在本发明中,通过将需要修改的部分生成更新文件,从而仅根据更新文件中的地址信息写入更新文件,以实现嵌入式程序中部分内容更新,从而减少不需要更新的部分进行重复烧录的情况,提高存储器的使用寿命,特别是可编程只读存储器的使用寿命;同时仅更新部分程序可缩短烧录时间,提高开发、测试效率。
请参阅图3,基于第一实施例,本申请提出第二实施例,在步骤S100之前包括:
步骤S510,启动处理模块,以加载初始化启动程序;
用户修改应用终端通过串口启动,加载bootloader程序,等待开发终端通过串口发出的指令。
步骤S520,接收开发终端通过串口传输的与嵌入式程序对应的镜像文件,并将所述镜像文件烧录至闪存模块中;
具体地,在应用终端写入嵌入式程序前,开发终端根据嵌入式程序,生成.elf文件和.bin文件,开发终端的镜像生成模块读取.bin文件,生成满足应用终端的闪存模块的镜像文件,并通过通信模块与bootloader程序建立通信,再通过镜像烧写模块将镜像文件烧写至闪存模块中。
步骤S530,再次启动处理模块,以加载初始化启动程序,从闪存模块中读取镜像文件存储至随机存储内存模块中为主程序;
与步骤S510不同之处在于,用户修改应用终端为闪存启动,运行bootloader程序,此时bootloader程序将会从闪存模块中读取镜像文件,并拷贝到随机存储内存模块中。本领域技术人员可以设定日常启动为串口启动或闪存启动,即若未接收到用户发出的修改指令,则重新启动后的启动方式为日常启动。
步骤S540,将程序指针跳转至随机存储内存模块中预设首地址并开始执行所述随机存储内存模块中的主程序。
主程序为随机存储内存模块执行时可使得应用终端完成预期功能的程序,即嵌入式程序中的主体部分。预设首地址为主程序所占的存储区域中的第一个单元的地址。在本实施例中,给出了通过闪存模块启动应用终端的方法。
请参阅图4,基于第一实施例,本申请提出第三实施例,在步骤S100之前包括:
步骤S610,启动处理模块,以加载初始化启动程序;
用户修改应用终端通过串口启动,加载bootloader程序,等待开发终端通过串口发出的指令。
步骤S620,接收开发终端通过串口传输的与嵌入式程序对应的镜像文件,并将所述镜像文件存储至随机存储内存模块中为主程序;
具体地,在应用终端写入嵌入式程序前,开发终端根据嵌入式程序,生成.s文件、.elf文件和.bin文件,开发终端的镜像生成模块读取.bin文件,生成满足应用终端的闪存模块的镜像文件,并通过通信模块与bootloader程序建立通信,再将镜像文件存储至随机存储内存模块为主程序。步骤S620和步骤S520中的镜像文件未适配闪存启动或串口启动具有一定差异。
步骤S630,将程序指针跳转至随机存储内存模块中预设首地址并开始执行所述随机存储内存模块中预存的主程序。
在本实施例中,给出了通过串口启动应用终端的方法。
请参阅图5,本发明还提供了一种嵌入式程序的程序更新方法,所述程序更新方法应用于程序开发系统,所述程序开发系统包括通信连接的开发终端和应用终端,所述应用终端存储有嵌入式程序,该方法包括:
步骤S10,控制开发终端根据嵌入式程序中的嵌入式程序、以及修改的源代码文件,生成携带有地址信息的二进制更新文件,并将所述更新文件发送至应用终端;
具体地,当修改的源代码文件为修改变量文件时,根据修改变量文件,生成.s格式文件,根据嵌入式程序中的嵌入式程序生成变量地址配置文件;
根据.s格式文件和变量地址配置文件生成携带有地址信息的二进制的变量更新文件;步骤S10之后,执行:当所述更新文件为变量更新文件时,根据地址信息将变量更新文件写入,更新地址信息对应的变量值为变量更新文件。
开发终端根据嵌入式程序,生成.s格式文件、.o格式文件等,其中通过.s格式文件可以得到各个字段的名称,通过.elf文件或.o格式文件可以得到各个字段的位置,进一步将字段名称和字段位置对应生成变量地址配置文件和程序地址配置文件。
进一步地,控制开发终端更新变量地址配置文件中的更新地址信息对应的变量值。
当修改的源代码文件为修改函数文件时,根据修改函数文件,生成.s格式文件和.o格式文件,根据嵌入式程序中的嵌入式程序生成程序地址配置文件;
根据.s格式文件、.o格式文件和变量地址配置文件生成携带有地址信息的二进制的函数更新文件;当为修改函数文件时,仅通过.o格式文件即可定位修改的函数的字段位置,而不需要通过.elf文件获取多个字段位置。
当所述更新文件为函数更新文件时,在步骤S10之后,还执行步骤S20,控制应用终端判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围;
若是,则步骤S30,控制应用终端将更新文件写入空白地址中,更新原始程序对应的数据首行为跳转至空白地址;
进一步地,控制开发终端更新程序地址配置文件中原始程序对应的地址信息为该空白地址,更新程序地址配置文件中原始程序对应的程序地址范围为该更新文件的程序地址范围。
若否,则步骤S40,将更新文件写入原始程序对应的程序地址,更新原始程序为更新文件。
在本发明中,通过将需要修改的部分生成更新文件,从而仅根据更新文件中的地址信息写入更新文件,以实现嵌入式程序中部分内容更新,从而减少不需要更新的部分进行重复烧录的情况,提高存储器的使用寿命,特别是可编程只读存储器的使用寿命;同时仅更新部分程序可缩短烧录时间,提高开发、测试效率。
本发明应用于程序开发系统的程序更新方法的具体实施例与上述应用于应用终端的嵌入式程序的程序更新方法各实施例基本相同,在此不作赘述。
本发明还提出一种可读存储介质,其上存储有计算机程序。所述可读存储介质可以是图1的显示终端中的存储器02,也可以包括闪存模块(FLASH Memory)和随机存储内存模块(Random Access Memory,RAM),所述可读存储介质包括若干信息用以使得该终端执行本发明各个实施例所述的方法。
本发明可读存储介质的具体实施例与上述嵌入式程序的程序更新方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种嵌入式程序的程序更新方法,其特征在于,所述程序更新方法应用于应用终端,该方法包括:
接收开发终端发送的更新文件,所述更新文件为开发终端根据应用终端中的嵌入式程序、以及修改的源代码文件生成的携带有地址信息的二进制文件;
判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围;
若是,则将更新文件写入随机存储内存模块的空白地址中,更新原始程序对应的数据首行为跳转至空白地址;
若否,则将更新文件写入原始程序在随机存储内存模块中对应的程序地址,更新原始程序为更新文件。
2.如权利要求1所述的嵌入式程序的程序更新方法,其特征在于,所述接收开发终端发送的更新文件的步骤之后包括:
当所述更新文件为函数更新文件时,执行:所述判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围的步骤;
当所述更新文件为变量更新文件时,根据地址信息将变量更新文件写入,更新地址信息对应的变量值为变量更新文件。
3.如权利要求1所述的嵌入式程序的程序更新方法,其特征在于,所述接收开发终端发送的更新文件的步骤之前包括:
启动处理模块,以加载初始化启动程序;
接收开发终端通过串口传输的与嵌入式程序对应的镜像文件,并将所述镜像文件存储至随机存储内存模块中为主程序;
将程序指针跳转至随机存储内存模块中预设首地址并开始执行随机存储内存模块中的主程序。
4.如权利要求1所述的嵌入式程序的程序更新方法,其特征在于,所述接收开发终端发送的更新文件的步骤之前包括:
启动处理模块,以加载初始化启动程序;
接收开发终端通过串口传输的与嵌入式程序对应的镜像文件,并将所述镜像文件烧录至闪存模块中;
再次启动处理模块,以加载初始化启动程序,从闪存模块中读取镜像文件存储至随机存储内存模块中为主程序;
将程序指针跳转至内存模块中预设首地址并开始执行内存模块中的主程序。
5.一种嵌入式程序的程序更新方法,其特征在于,所述程序更新方法应用于程序开发系统,所述程序开发系统包括通信连接的开发终端和应用终端,所述应用终端存储有嵌入式程序,该方法包括:
控制开发终端根据嵌入式程序、以及修改的源代码文件,生成携带有地址信息的二进制更新文件,并将所述更新文件发送至应用终端;
控制应用终端判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围;
若是,则控制应用终端将更新文件写入随机存储内存模块的空白地址中,更新原始程序对应的数据首行为跳转至空白地址;
若否,则将更新文件写入原始程序随机存储内存模块中对应的程序地址,更新原始程序为更新文件。
6.如权利要求5所述的嵌入式程序的程序更新方法,其特征在于,所述控制开发终端根据嵌入式程序、以及修改的源代码文件,生成携带有地址信息的二进制更新文件的步骤包括:
当修改的源代码文件为修改变量文件时,根据修改变量文件,生成.s格式文件,根据嵌入式程序生成变量地址配置文件;
根据.s格式文件和变量地址配置文件生成携带有地址信息的二进制的变量更新文件;
所述将所述更新文件发送至应用终端的步骤之后包括:
当所述更新文件为变量更新文件时,根据地址信息将变量更新文件写入,更新地址信息对应的变量值为变量更新文件。
7.如权利要求5所述的嵌入式程序的程序更新方法,其特征在于,所述控制开发终端根据嵌入式程序、以及修改的源代码文件,生成携带有地址信息的二进制更新文件的步骤包括:
当修改的源代码文件为修改函数文件时,根据修改函数文件,生成.s格式文件和.o格式文件,根据嵌入式程序生成程序地址配置文件;
根据.s格式文件、.o格式文件和变量地址配置文件生成携带有地址信息的二进制的函数更新文件;
所述将所述更新文件发送至应用终端的步骤之后包括:
当所述更新文件为函数更新文件时,执行:所述判断更新文件的程序地址范围是否大于与所述地址信息对应的原始程序的程序地址范围的步骤。
8.一种应用终端,其特征在于,包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述嵌入式程序的程序更新方法的步骤。
9.一种程序开发系统,其特征在于,所述程序开发系统包括通信连接的开发终端和应用终端,所述开发终端和应用终端分别包括存储器、处理器、以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被处理器执行时实现如权利要求5至7中任一项所述嵌入式程序的程序更新方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述嵌入式程序的程序更新方法的步骤或如权利要求5至7中任一项所述嵌入式程序的程序更新方法的步骤。
CN202110495111.4A 2021-05-07 2021-05-07 嵌入式程序的程序更新方法、终端、系统及存储介质 Active CN112905217B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110495111.4A CN112905217B (zh) 2021-05-07 2021-05-07 嵌入式程序的程序更新方法、终端、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110495111.4A CN112905217B (zh) 2021-05-07 2021-05-07 嵌入式程序的程序更新方法、终端、系统及存储介质

Publications (2)

Publication Number Publication Date
CN112905217A CN112905217A (zh) 2021-06-04
CN112905217B true CN112905217B (zh) 2021-08-20

Family

ID=76108960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110495111.4A Active CN112905217B (zh) 2021-05-07 2021-05-07 嵌入式程序的程序更新方法、终端、系统及存储介质

Country Status (1)

Country Link
CN (1) CN112905217B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170460A (zh) * 2017-12-15 2018-06-15 杭州中天微系统有限公司 一种嵌入式系统增量升级的方法及装置
CN109426511A (zh) * 2017-08-18 2019-03-05 西安诺瓦电子科技有限公司 软核更新方法和系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211265A (zh) * 2006-12-28 2008-07-02 英华达(上海)电子有限公司 一种终端嵌入式系统的软件更新方法和装置
US7886141B2 (en) * 2007-10-27 2011-02-08 Asix Electronics Corporation Method and systems for advanced reprogrammable boot codes and in-application programming of embedded microprocessor systems
CN107515768A (zh) * 2017-10-19 2017-12-26 中国电建集团成都勘测设计研究院有限公司 嵌入式系统的启动和刷新方法及其刷新程序的构造方法
CN110764813A (zh) * 2019-10-31 2020-02-07 京东方科技集团股份有限公司 系统软件的升级方法及其运行方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109426511A (zh) * 2017-08-18 2019-03-05 西安诺瓦电子科技有限公司 软核更新方法和系统
CN108170460A (zh) * 2017-12-15 2018-06-15 杭州中天微系统有限公司 一种嵌入式系统增量升级的方法及装置

Also Published As

Publication number Publication date
CN112905217A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
CN109933348B (zh) 一种电子控制单元中Bootloader的更新方法和装置
JP4903686B2 (ja) フラッシュメモリのプログラミング
CN107506221B (zh) 应用程序升级方法、装置及设备
CN102902556B (zh) 一种嵌入式设备的多级引导加载方法
US6523101B1 (en) Installed-software development assistance system
US20070169114A1 (en) Application suite installer with automatic detection of content and configurable options
CN107291481B (zh) 一种组件更新方法、装置和系统
CN106293849B (zh) 一种应用更新方法和终端
US20040103172A1 (en) Method of updating an operation system
CN110989986B (zh) 基于软件模板的软件生成方法、装置和计算机设备
CN111078256A (zh) 自动化测试环境的升级方法、终端及可读存储介质
CN112905217B (zh) 嵌入式程序的程序更新方法、终端、系统及存储介质
CN117707543A (zh) 一种应用安装包制作和安装方法、计算设备及存储介质
CN116954674A (zh) eMMC固件升级方法、固件升级设备和存储装置
JPH1021060A (ja) プログラム自動更新処理機能を有する通信システムおよびプログラム更新処理を実行するプログラムを備えた記録媒体
CN116643761A (zh) 一种定制化镜像制作及部署方法、装置、终端及介质
EP1835398A1 (en) Frequency converter controller, peripheral device, method and program
KR102094447B1 (ko) Bms sw의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법
CN115145577A (zh) 一种宏内核操作系统二次开发命令行指令处理方法、装置、电子设备和存储介质
JP2003131880A (ja) 情報処理装置、プログラム起動方法及び起動制御プログラム
CN114296764A (zh) 系统升级方法、装置、存储介质和电子设备
JP2006318197A (ja) コントローラ支援装置、プログラム
CN108664259B (zh) 一种进行应用安装的方法和终端
KR101113342B1 (ko) 이동통신 단말기의 부트로더 버전 관리 방법
KR100321999B1 (ko) 스크립트를이용한프로그램패치방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant