CN116627476B - 一种固件更新方法、系统、电子设备及存储介质 - Google Patents

一种固件更新方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN116627476B
CN116627476B CN202310915525.7A CN202310915525A CN116627476B CN 116627476 B CN116627476 B CN 116627476B CN 202310915525 A CN202310915525 A CN 202310915525A CN 116627476 B CN116627476 B CN 116627476B
Authority
CN
China
Prior art keywords
file
emmc
equipment
rtt
upgraded
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
CN202310915525.7A
Other languages
English (en)
Other versions
CN116627476A (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.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202310915525.7A priority Critical patent/CN116627476B/zh
Publication of CN116627476A publication Critical patent/CN116627476A/zh
Application granted granted Critical
Publication of CN116627476B publication Critical patent/CN116627476B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0002Serial port, e.g. RS232C
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请实施例提供了一种固件更新方法、系统、电子设备及存储介质,涉及电子信息技术领域,应用于编程设备,编程设备存储有RTT文件、待更新至ROM中的第一文件、待更新至EMMC中的第二文件,上述方法包括:通过仿真器向ROM中写入RTT文件,以使待升级设备运行RTT文件形成RTT系统;通过仿真器控制RTT系统向EMMC中更新第二文件;通过仿真器向ROM中更新第一文件;通过仿真器控制待升级设备重启,以使待升级设备基于第一文件及第二文件进行重启。应用本申请实施例能够简化文件更新过程,完成对所有固件的快速升级安装。

Description

一种固件更新方法、系统、电子设备及存储介质
技术领域
本申请涉及电子信息技术领域,特别是涉及一种固件更新方法、系统、电子设备及存储介质。
背景技术
在开发过程中,研发人员会根据开发需求对编程设备中的代码进行修改,修改完成后,需要将编程设备中修改后的代码更新至待升级设备,然后待升级设备基于更新后的代码重新启动待升级设备,从而实现待升级设备上固件的安装升级。
参见图1,图1为本申请实施例提供的第一种待升级设备结构的示意图,图中待升级设备包括:PSRAM(Pseudo static random access memory,伪静态随机存储器)、MCU(Microcontroller Unit,微控制单元)、EMMC(Embedded Multi Media Card,嵌入式多媒体卡),MCU包括:处理器、RAM(Random Access Memory,随机存取存储器)、ROM(Read-OnlyMemory,只读存储器)。在启动待升级设备的过程中,处理器将基于从ROM及EMMC中读取到的文件进行处理,实现待升级设备的初始化,完成待升级设备的启动。
相关技术中,编程设备通常利用仿真器更新存储于待升级设备ROM中的文件,而对于待升级设备的EMMC,一般需要将EMMC单独拆卸后,基于能够控制EMMC的器件对EMMC中的文件进行更新,导致待升级设备中文件的更新过程较为繁琐。
发明内容
有鉴于此,本申请提供一种固件更新方法、系统、电子设备及存储介质,以简化文件更新过程,完成对所有固件的快速升级安装。
第一方面,本申请实施例提供了一种固件更新方法,应用于编程设备,所述编程设备通过仿真器与待升级设备进行连接,所述待升级设备中包括只读存储器ROM与嵌入式多媒体卡EMMC,所述编程设备存储有实时传输RTT文件、待更新至所述ROM中的第一文件、待更新至所述EMMC中的第二文件,所述方法包括:
通过所述仿真器向所述ROM中写入所述RTT文件,以使所述待升级设备运行所述RTT文件形成RTT系统;
通过所述仿真器控制所述RTT系统向所述EMMC中更新所述第二文件;
通过所述仿真器向所述ROM中更新所述第一文件;
通过所述仿真器控制所述待升级设备重启,以使所述待升级设备基于所述第一文件及所述第二文件进行重启。
由以上可见,编程设备通过仿真器与待升级设备进行连接,通过仿真器向ROM中写入RTT文件,以使待升级设备运行RTT文件形成RTT系统,由于RTT系统为能够与EMMC进行交互的系统,因此可以通过RTT系统向EMMC中更新第二文件,完成EMMC中文件的更新,然后通过仿真器向ROM中更新第一文件,完成ROM中文件的更新,从而实现了所有待更新文件的更新,最后通过仿真器控制待升级设备重新启动,以使待升级设备基于所有更新后的文件进行重启,从而简化了文件更新过程,完成了对所有固件的快速升级安装。
本申请的一个实施例中,所述第二文件包括目标运行文件和目标资源文件,所述通过所述仿真器控制所述RTT系统向所述EMMC中更新所述第二文件,包括:
通过所述仿真器控制所述RTT系统获取所述EMMC中各资源文件的大小;
依次判断所述EMMC中各资源文件的大小与所述目标资源文件中与该资源文件名称相同的文件的大小是否相同;
若大小不同,则通过所述仿真器控制所述RTT系统将所述EMMC中的资源文件更新为所述目标资源文件中与该资源文件名称相同的文件;
通过所述仿真器控制所述RTT系统将所述EMMC中的运行文件更新为所述目标运行文件。
由以上可见,通过仿真器控制RTT系统将EMMC中与目标资源文件中名称相同但大小不同的文件更新为目标资源文件中的文件,并将EMMC中的运行文件更新为目标运行文件,从而实现了EMMC中文件的更新。
本申请的一个实施例中,所述仿真器为JLink、Ulink或STLink。
由以上可见,由于JLink、Ulink或STLink支持RTT交互技术,因此编程设备可以通过JLink、Ulink或STLink控制RTT系统,从而可以通过JLink、Ulink或STLink控制RTT系统控制EMMC中文件的更新。
第二方面,本申请实施例提供了一种固件更新方法,应用于待升级设备,所述待升级设备通过仿真器与编程设备进行连接,所述待升级设备中包括只读存储器ROM与嵌入式多媒体卡EMMC,所述方法包括:
通过所述仿真器从所述编程设备接收并向所述ROM中写入实时传输RTT文件;
运行所述RTT文件形成RTT系统;
通过所述RTT系统经过所述仿真器从所述编程设备接收并向所述EMMC中更新第二文件;
通过所述仿真器从所述编程设备接收并向所述ROM中更新第一文件;
基于所述第一文件及所述第二文件进行重启。
由以上可见,待升级设备通过仿真器与编程设备进行连接,通过仿真器从编程设备接收并向ROM中写入RTT文件,并运行RTT文件形成RTT系统,由于RTT系统为能够与EMMC进行交互的系统,因此可以通过RTT系统向EMMC中更新第二文件,完成EMMC中文件的更新,然后通过仿真器从编程设备接收并向ROM中更新第一文件,完成ROM中文件的更新,从而实现了所有待更新文件的更新,最后基于第一文件及第二文件进行重启,以使待升级设备基于所有更新后的文件进行重启,从而简化了文件更新过程,完成了对所有固件的快速升级安装。
本申请的一个实施例中,接收到的所述第二文件包括目标运行文件和目标资源文件,所述通过所述RTT系统经过所述仿真器从所述编程设备接收并向所述EMMC中更新第二文件,包括:
通过所述RTT系统,获取所述EMMC中各资源文件的大小;
将所获取到的各资源文件的大小通过所述仿真器发送至所述编程设备,以使得所述编程设备依次判断所述EMMC中各资源文件的大小与所述目标资源文件中与该资源文件名称相同的文件的大小是否相同,若大小不同,则通过所述仿真器向所述待升级设备发送所述目标资源文件中与该资源文件名称相同的文件;
通过所述RTT系统,将所述EMMC中与接收到的目标资源文件名称相同的资源文件更新为所述目标资源文件;
通过所述RTT系统,经过所述仿真器从所述编程设备接收目标运行文件,并将所述EMMC中的运行文件更新为所述目标运行文件。
由以上可见,通过RTT系统将EMMC中与目标资源文件中名称相同但大小不同的文件更新为目标资源文件中的文件,并将EMMC中的运行文件更新为目标运行文件,从而实现了EMMC中文件的更新。
本申请的一个实施例中,所述仿真器为JLink、Ulink或STLink。
由以上可见,通过JLink、Ulink或STLink将待升级设备与编程设备,使得待升级设备可以通过仿真器获取编程设备中的第一文件、第二文件以及RTT文件,从而可以基于RTT文件构成的RT系统实现EMMC中文件的更新。
第三方面,本申请实施例提供了一种电子设备,包括:
一个或多个处理器和存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行第一方面中任意一项所述的方法。
第四方面,本申请实施例提供了一种电子设备,包括:
一个或多个处理器和多个存储器,其中,多个存储器包括:只读存储器ROM、嵌入式多媒体卡EMMC和目标存储器;
所述目标存储器与所述一个或多个处理器耦合,所述目标存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行第二方面中任意一项所述的方法。
第五方面,本申请实施例提供了一种固件更新系统,所述系统包括编程设备与待升级设备,所述编程设备通过仿真器与所述待升级设备进行连接,所述待升级设备中包括只读存储器ROM与嵌入式多媒体卡EMMC,所述编程设备存储有实时传输RTT文件、待更新至所述ROM中的第一文件、待更新至所述EMMC中的第二文件;
所述编程设备通过所述仿真器向所述ROM中写入所述RTT文件;
所述待升级设备运行所述RTT文件形成RTT系统;
所述编程设备通过所述仿真器控制所述RTT系统向所述EMMC中更新所述第二文件;
所述编程设备通过所述仿真器向所述ROM中更新所述第一文件;
所述编程设备通过所述仿真器控制所述待升级设备重启;
所述待升级设备基于所述第一文件及所述第二文件进行重启。
由以上可见,固件更新系统中的编程设备通过仿真器与待升级设备进行连接,编程设备通过仿真器向ROM中写入RTT文件,待升级设备运行RTT文件形成RTT系统,由于RTT系统为能够与EMMC进行交互的系统,因此编程设备可以通过RTT系统向EMMC中更新第二文件,完成待升级设备EMMC中文件的更新,然后通过仿真器向ROM中更新第一文件,完成待升级设备ROM中文件的更新,从而实现了待升级设备中所有待更新文件的更新,最后编程设备通过仿真器控制待升级设备重新启动,待升级设备可以基于所有更新后的文件进行重启,从而实现对待升级设备中所有固件的升级安装。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行第一方面中任意一项所述的方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行第一方面或第二方面所述的方法。
本申请实施例的有益效果:
本申请实施例提供了一种固件更新方法,应用于编程设备,编程设备通过仿真器与待升级设备进行连接,通过仿真器向ROM中写入RTT文件,以使待升级设备运行RTT文件形成RTT系统,由于RTT系统为能够与EMMC进行交互的系统,因此可以通过RTT系统向EMMC中更新第二文件,完成EMMC中文件的更新,然后通过仿真器向ROM中更新第一文件,完成ROM中文件的更新,从而实现了所有待更新文件的更新,最后通过仿真器控制待升级设备重新启动,以使待升级设备基于所有更新后的文件进行重启,从而简化了文件更新过程,完成了对所有固件的快速升级安装。
附图说明
图1为本申请实施例提供的第一种待升级设备结构的示意图;
图2为本申请实施例提供的第二种待升级设备的结构示意图;
图3-1为本申请实施例提供的第一种编程设备的结构示意图;
图3-2为本申请实施例提供的第二种编程设备的结构示意图;
图4为本申请实施例提供的第一种固件升级方法的流程示意图;
图5为本申请实施例提供的第二种固件升级方法的流程示意图;
图6为本申请实施例提供的一种待升级设备启动的示意图;
图7为本申请实施例提供的第三种固件升级方法的流程示意图;
图8为本申请实施例提供的第四种固件升级方法的流程示意图;
图9为本申请实施例提供的一种更新文件的示意图;
图10为本申请实施例提供的一种编程设备控制待升级设备进行升级的示意图;
图11为本申请实施例提供的一种固件更新系统的示意图;
图12为本申请实施例提供的通过固件更新系统进行固件更新系统的流程示意图。
具体实施方式
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一指令和第二指令是为了区分不同的用户指令,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中的待升级设备可以是智能手表、可穿戴电子设备、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、智能汽车、机器人、智能眼镜、智能电视等电子设备中。
如图2所示,图2为本申请实施例提供的第二种待升级设备的结构示意图,图2所示的待升级设备可以包括MCU 200、处理器210、外部存储器接口1~N220、内部存储器221、RAM221A、ROM 221B、PSRAM 222、EMMC 223、目标存储器224、通用串行总线(Universal SerialBus,USB)接口230、充电管理模块240、电源管理模块241、电池242、天线1、天线2、移动通信模块250、无线通信模块260、按键290、马达291、指示器292、摄像头1~N293、显示屏1~N294、以及用户标识模块(Subscriber Identity Module,SIM)卡接口1~N295等。其中,传感器模块280可以包括压力传感器280A、触摸传感器280B等。
可以理解的是,本申请实施例示意的结构并不构成对待升级设备的具体限定。在本申请另一些实施例中,待升级设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
目标存储器224用于存储计算机程序代码,计算机程序代码包括计算机指令,处理器210调用计算机指令以使得待机升级设备执行本申请实施例提供的应用于待机升级设备的固件更新方法。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(Application Processor,AP)、调制解调处理器(modem)、图形处理器(GraphicsProcessing Unit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器210可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(Inter-Integrated Circuit,I2C)接口、集成电路内置音频(Inter-Integrated CircuitSound,I2S)接口、脉冲编码调制(Pulse Code Modulation,PCM)接口、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)接口、移动产业处理器接口(Mobile Industry Processor Interface,MIPI)、通用输入输出(General-PurposeInput/Output,GPIO)接口、以及用户标识模块(Subscriber Identity Module,SIM)接口。
I2C接口是一种双向同步串行总线,包括一根串行数据线(Serial Data Line,SDA)和一根串行时钟线(Derail Clock Line,SCL)。在一些实施例中,处理器210可以包含多组I2C总线。处理器210可以通过不同的I2C总线接口分别耦合触摸传感器280B、充电器,闪光灯、摄像头293等。例如:处理器210可以通过I2C接口耦合触摸传感器280B,使处理器210与触摸传感器280B通过I2C总线接口通信,实现待升级设备的触摸功能。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器210与无线通信模块260。例如:处理器210通过UART接口与无线通信模块260中的蓝牙模块通信,实现蓝牙功能。
MIPI接口可以被用于连接处理器210与显示屏294,摄像头293等外围器件。MIPI接口包括摄像头串行接口(Camera Serial Interface,CSI)、以及显示屏串行接口(DisplaySerial Interface,DSI)等。在一些实施例中,处理器210和摄像头293通过CSI接口通信,实现待升级设备的拍摄功能。处理器210和显示屏294通过DSI接口通信,实现待升级设备的显示功能。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对待升级设备的结构限定。在本申请另一些实施例中,待升级设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
待升级设备的无线通信功能可以通过天线1、天线2、移动通信模块250、无线通信模块260、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。待升级设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在待升级设备上的包括2G/3G/4G/5G等无线通信的解决方案。在一些实施例中,可以通过移动通信模块250实现两个电子设备之间的通话数据的传输,例如,作为被呼叫方设备时,可以获得来自呼叫方设备的下行音频流数据,以及可以向呼叫方设备传输上行音频流数据。
无线通信模块260可以提供应用在待升级设备上的包括WLAN(Wireless LocalArea Networks,无线局域网)、BT((Bluetooth,蓝牙)、GNSS(Global NavigationSatellite System,全球导航卫星系统)、FM(Frequency Modulation,调频)、NFC(NearField Communication,近距离无线通信技术)、IR(infrared,红外技术)等无线通信的解决方案。
在一些实施例中,待升级设备的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得待升级设备可以通过无线通信技术与网络以及其他设备通信。在本申请的一个实施例中,待升级设备可以通过无线通信模块260实现与另一电子设备的局域网络连接。无线通信技术可以包括全球移动通讯系统(Global System for MobileCommunications,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址接入(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、时分同步码分多址(Time-Division-SynchronousCode Division Multiple Access,TD-SCDMA),长期演进(Long Term Evolution,LTE)、BT、GNSS、WLAN、NFC、FM、和/或IR技术等。GNSS可以包括全球卫星定位系统(GlobalPositioning System,GPS)、全球导航卫星系统(Global Navigation Satellite System,GLONASS)、北斗卫星导航系统(Beidou Navigation Satellite System,BDS)、准天顶卫星系统(Quasi-Zenith Satellite System,QZSS)、和/或星基增强系统(Satellite BasedAugmentation System,SBAS)等。
显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-MatrixOrganic Light Emitting Diode的,AMOLED)、柔性发光二极管(Flex Light-EmittingDiode,FLED)、MiniLED、MicroLED、Micro-OLED、以及量子点发光二极管(Quantum dotLight Emitting Diode,QLED)等。在一些实施例中,待升级设备可以包括1个或N个显示屏294,N为大于1的正整数。
外部存储器接口220可以用于连接外部存储卡,例如Micro 安全数码(SecureDigital Memory,SD)卡,实现扩展待升级设备的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐、视频、录音文件等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、以及至少一个功能所需的应用程序(比如声音播放功能、图像播放功能和录音功能等)等。存储数据区可存储待升级设备使用过程中所创建的数据(比如上行音频数据、下行音频数据和电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(Universal FlashStorage,UFS)等。处理器210通过运行存储在内部存储器221的指令和/或存储在设置于处理器210中的存储器的指令,执行待升级设备的各种功能应用以及数据处理。
压力传感器280A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器280A可以设置于显示屏294。在一些实施例中,当用户点击按压显示屏294上的接听键时,可实现手动接听通话功能,当用户点击按压显示屏294上的挂断键时,可实现手动挂断通话功能。
触摸传感器280B,也称“触控器件”。触摸传感器280B可以设置于显示屏294,由触摸传感器280B与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280B用于检测作用于其上或附近的触摸操作。触摸传感器280B可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280B也可以设置于待升级设备的表面,与显示屏294所处的位置不同。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。待升级设备可以接收按键输入,产生与待升级设备的用户设置以及功能控制有关的键信号输入。
马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏294不同区域的触摸操作,马达291也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和待升级设备的接触和分离。待升级设备可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口295可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口295也可以兼容不同类型的SIM卡。SIM卡接口295也可以兼容外部存储卡。待升级设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,待升级设备采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在待升级设备中,不能和待升级设备分离。
本申请实施例中的编程设备可以是平板电脑、个人计算机、个人数字助理等能够编程的电子设备。
如图3-1所示,图3-1为本申请实施例提供的第一种编程设备的结构示意图,图3-1所示的编程设备可以包括:处理器301和存储器302,存储器302与处理器301耦合,其中,处理器可以包含一个或多个。
存储器302用于存储计算机程序代码,计算机程序代码包括计算机指令,处理器301调用计算机指令以使得编程设备执行本申请实施例提供的应用于编程设备的固件更新方法。
如图3-2所示,图3-2为本申请实施例提供的第二种编程设备的结构示意图,图3-2所示的编程设备可以包括处理器310、外部存储器接口1’~N’320、内部存储器321、通用串行总线(Universal Serial Bus,USB)接口330、充电管理模块340、电源管理模块341、电池342、天线1’、天线2’、移动通信模块350、无线通信模块360、按键390、马达391、指示器392、摄像头1’~N’393、显示屏1’~N’394、以及用户标识模块(Subscriber Identity Module,SIM)卡接口1’~N’ 395等。其中,传感器模块380可以包括压力传感器380A、触摸传感器380B等。
可以理解的是,本申请实施例示意的结构并不构成对编程设备的具体限定。在本申请另一些实施例中,编程设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器310可以包括一个或多个处理单元,例如:处理器310可以包括应用处理器(Application Processor,AP)、调制解调处理器(modem)、图形处理器(GraphicsProcessing Unit,GPU)、图像信号处理器(Image Signal Processor,ISP)、控制器、视频编解码器、数字信号处理器(Digital Signal Processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器310可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器310中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器310中的存储器为高速缓冲存储器。该存储器可以保存处理器310刚用过或循环使用的指令或数据。如果处理器310需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器310的等待时间,因而提高了系统的效率。
在一些实施例中,处理器310可以包括一个或多个接口。接口可以包括集成电路(Inter-Integrated Circuit,I2C)接口、集成电路内置音频(Inter-Integrated CircuitSound,I2S)接口、脉冲编码调制(Pulse Code Modulation,PCM)接口、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)接口、移动产业处理器接口(Mobile Industry Processor Interface,MIPI)、通用输入输出(General-PurposeInput/Output,GPIO)接口、以及用户标识模块(Subscriber Identity Module,SIM)接口。
I2C接口是一种双向同步串行总线,包括一根串行数据线(Serial Data Line,SDA)和一根串行时钟线(Derail Clock Line,SCL)。在一些实施例中,处理器310可以包含多组I2C总线。处理器310可以通过不同的I2C总线接口分别耦合触摸传感器380B、充电器,闪光灯、摄像头393等。例如:处理器310可以通过I2C接口耦合触摸传感器380B,使处理器310与触摸传感器380B通过I2C总线接口通信,实现编程设备的触摸功能。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器310与无线通信模块360。例如:处理器310通过UART接口与无线通信模块360中的蓝牙模块通信,实现蓝牙功能。
MIPI接口可以被用于连接处理器310与显示屏394,摄像头393等外围器件。MIPI接口包括摄像头串行接口(Camera Serial Interface,CSI)、以及显示屏串行接口(DisplaySerial Interface,DSI)等。在一些实施例中,处理器310和摄像头393通过CSI接口通信,实现编程设备的拍摄功能。处理器310和显示屏394通过DSI接口通信,实现编程设备的显示功能。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对编程设备的结构限定。在本申请另一些实施例中,编程设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
编程设备的无线通信功能可以通过天线1’、天线2’、移动通信模块350、无线通信模块360、调制解调处理器以及基带处理器等实现。
天线1’和天线2’用于发射和接收电磁波信号。编程设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1’复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块350可以提供应用在编程设备上的包括2G/3G/4G/5G等无线通信的解决方案。在一些实施例中,可以通过移动通信模块350实现两个电子设备之间的通话数据的传输,例如,作为被呼叫方设备时,可以获得来自呼叫方设备的下行音频流数据,以及可以向呼叫方设备传输上行音频流数据。
无线通信模块360可以提供应用在编程设备上的包括WLAN(Wireless Local AreaNetworks,无线局域网)、BT((Bluetooth,蓝牙)、GNSS(Global Navigation SatelliteSystem,全球导航卫星系统)、FM(Frequency Modulation,调频)、NFC(Near FieldCommunication,近距离无线通信技术)、IR(infrared,红外技术)等无线通信的解决方案。
在一些实施例中,编程设备的天线1’和移动通信模块350耦合,天线2’和无线通信模块360耦合,使得编程设备可以通过无线通信技术与网络以及其他设备通信。在本申请的一个实施例中,编程设备可以通过无线通信模块360实现与另一电子设备的局域网络连接。无线通信技术可以包括全球移动通讯系统(Global System for Mobile Communications,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址接入(CodeDivision Multiple Access,CDMA)、宽带码分多址(Wideband Code Division MultipleAccess,WCDMA)、时分同步码分多址(Time-Division-Synchronous Code DivisionMultiple Access,TD-SCDMA),长期演进(Long Term Evolution,LTE)、BT、GNSS、WLAN、NFC、FM、和/或IR技术等。GNSS可以包括全球卫星定位系统(Global Positioning System,GPS)、全球导航卫星系统(Global Navigation Satellite System,GLONASS)、北斗卫星导航系统(Beidou Navigation Satellite System,BDS)、准天顶卫星系统(Quasi-ZenithSatellite System,QZSS)、和/或星基增强系统(Satellite Based Augmentation System,SBAS)等。
显示屏394用于显示图像,视频等。显示屏394包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-MatrixOrganic Light Emitting Diode的,AMOLED)、柔性发光二极管(Flex Light-EmittingDiode,FLED)、MiniLED、MicroLED、Micro-OLED、以及量子点发光二极管(Quantum dotLight Emitting Diode,QLED)等。在一些实施例中,编程设备可以包括1个或N’个显示屏394,N’为大于1的正整数。
外部存储器接口320可以用于连接外部存储卡,例如Micro 安全数码(SecureDigital Memory,SD)卡,实现扩展编程设备的存储能力。外部存储卡通过外部存储器接口320与处理器310通信,实现数据存储功能。例如将音乐、视频、录音文件等文件保存在外部存储卡中。
内部存储器321可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器321可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、以及至少一个功能所需的应用程序(比如声音播放功能、图像播放功能和录音功能等)等。存储数据区可存储编程设备使用过程中所创建的数据(比如上行音频数据、下行音频数据和电话本等)等。此外,内部存储器321可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(Universal FlashStorage,UFS)等。处理器310通过运行存储在内部存储器321的指令和/或存储在设置于处理器310中的存储器的指令,执行编程设备的各种功能应用以及数据处理。
压力传感器380A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器380A可以设置于显示屏394。在一些实施例中,当用户点击按压显示屏394上的接听键时,可实现手动接听通话功能,当用户点击按压显示屏394上的挂断键时,可实现手动挂断通话功能。
触摸传感器380B,也称“触控器件”。触摸传感器380B可以设置于显示屏394,由触摸传感器380B与显示屏394组成触摸屏,也称“触控屏”。触摸传感器380B用于检测作用于其上或附近的触摸操作。触摸传感器380B可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏394提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器380B也可以设置于编程设备的表面,与显示屏394所处的位置不同。
按键390包括开机键,音量键等。按键390可以是机械按键。也可以是触摸式按键。编程设备可以接收按键输入,产生与编程设备的用户设置以及功能控制有关的键信号输入。
马达391可以产生振动提示。马达391可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏394不同区域的触摸操作,马达391也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
SIM卡接口395用于连接SIM卡。SIM卡可以通过插入SIM卡接口395,或从SIM卡接口395拔出,实现和编程设备的接触和分离。编程设备可以支持1个或N’个SIM卡接口,N’为大于1的正整数。SIM卡接口395可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口395可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口395也可以兼容不同类型的SIM卡。SIM卡接口395也可以兼容外部存储卡。编程设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,编程设备采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在编程设备中,不能和编程设备分离。
为了解决相关技术中无法对待升级设备中的所有固件完成升级安装的问题,本申请实施例提供了一种固件更新方法,应用于编程设备,所述编程设备通过仿真器与待升级设备进行连接,所述待升级设备中包括ROM与EMMC,所述编程设备存储有RTT(Real TimeTransfer,实时传输)文件、待更新至所述ROM中的第一文件、待更新至所述EMMC中的第二文件。
仿真器可以通过飞线处理将仿真器的相关引脚分别与编程设备与待更新设备进行连接,以使二者之间构成通信链接,方便后续编程设备基于该链路控制待升级设备。
RTT是一项用于在嵌入式应用中进行用户I/O(Input/Output,输入/输出)交互的技术,结合了SWO(Serial Wire Output,串行线输出)和半主机的优点,具有极高的性能,能够与目标系统进行双向通信,并且具有极高的传输速率。其中,目标系统在本申请实施例中指代EMMC文件系统。
上述RTT文件为用于提供RTT交互技术的应用rtt.bin,用于初始化EMMC文件系统。
上述第一文件及第二文件为需要更新至待升级设备的已修改过代码的文件。
参见图4,图4为本申请实施例提供的第一种固件升级方法的流程示意图,应用于编程设备,上述方法可以包括以下步骤:S410-S440。
S410:通过仿真器向ROM中写入RTT文件。
具体的,编程设备通过仿真器将编程设备中存储的RTT文件烧录至ROM中,以使待升级设备运行RTT文件形成RTT系统,由于RTT系统能够与EMMC文件系统进行交交互,因此后续可以通过RTT系统对EMMC文件系统进行目录查询,文件删除等操作,来实现EMMC中的文件更新。
S420:通过仿真器控制RTT系统向EMMC中更新第二文件。
本申请的一个实施例中,编程设备可以直接控制RTT系统向EMMC中写入第二文件。
本申请的另一个实施例中,编程设备通过仿真器控制RTT系统查询EMMC文件系统中目录信息,基于目录信息确定出EMMC中与第二文件名称相同的文件,并根据第二文件对EMMC中名称相同的文件进行更新。
另外,若第二文件中存在与EMMC中所有文件名称均不同的文件,则编程设备通过仿真器控制RTT系统将第二文件中名称不同的文件直接写入EMMC中。
S430:通过仿真器向ROM中更新第一文件。
具体的,编程设备通过仿真器将ROM中与第一文件名称相同的文件删除,并向ROM中写入第一文件。
其中,第一文件为启动待升级设备所需的常用的运行文件(app.bin),如嵌入式系统固件。
S440:通过仿真器控制待升级设备重启。
具体的,编程设备通过仿真器向待升级设备发送重启指令,以使待升级设备响应于重启指令,基于第一文件及第二文件进行重启。待升级设备的重启过程可参见后续图6所示的实施例。
由以上可见,编程设备通过仿真器与待升级设备进行连接,通过仿真器向ROM中写入RTT文件,以使待升级设备运行RTT文件形成RTT系统,由于RTT系统为能够与EMMC进行交互的系统,因此可以通过RTT系统向EMMC中更新第二文件,完成EMMC中文件的更新,然后通过仿真器向ROM中更新第一文件,完成ROM中文件的更新,从而实现了所有待更新文件的更新,最后通过仿真器控制待升级设备重新启动,以使待升级设备基于所有更新后的文件进行重启,从而简化了文件更新过程,完成了对所有固件的快速升级安装。
并且,在待升级设备完成固件升级后,后续可以基于升级后的设备中不同业务的运行情况来验证业务功能是否达到要求,以验证修改后的代码是否正确。
本申请的一个实施例中,第二文件可以包括目标运行文件和目标资源文件,通过仿真器控制RTT系统向EMMC中更新第二文件。
其中,目标运行文件为启动待升级设备所需的不常用的运行文件(xip.bin),如嵌入式系统固件中不常用的运行文件,其中,由于ROM的存储空间有限,ROM难以完全存储所有嵌入式系统固件,因此可以将嵌入式系统固件分为上述目标运行文件与上述第一文件,分别存储于ROM和EMMC中。目标资源文件(res*.bin)可以为音频文件、图像文件等。目标资源文件可以包含多个,例如,目标资源文件包括:res1.bin、res2.bin、res3.bin。
参见图5,图5为本申请实施例提供的第二种固件升级方法的流程示意图,应用于编程设备,上述步骤S420可以包括以下步骤:S421-S424。
S421:通过仿真器控制RTT系统获取EMMC中各资源文件的大小。
具体的,编程设备通过仿真器控制RTT系统查询EMMC文件系统中各资源文件的大小。
一个例子1,编程设备通过仿真器控制RTT系统获取到EMMC中包含res1.bin、res2.bin、res3.bin这三个资源文件,其中,res1.bin大小为1KB、res2.bin大小为2KB、res3.bin大小为3KB。
S422:依次判断EMMC中各资源文件的大小与目标资源文件中与该资源文件名称相同的文件的大小是否相同。
对应上述例子1,若目标资源文件包括:res1.bin、res2.bin、res3.bin,且res1.bin大小为2KB、res2.bin大小为2KB、res3.bin大小为5KB,则编程设备判断出编程设备与待升级设备的res1.bin大小不同、res2.bin大小相同、res3.bin大小不同。
S423:若大小不同,则通过仿真器控制RTT系统将EMMC中的资源文件更新为目标资源文件中与该资源文件名称相同的文件。
具体的,编程设备通过仿真器控制RTT系统将EMMC中的资源文件删除,并向EMMC中写入目标资源文件中与该资源文件名称相同的文件。
对应上述例子1,编程设备通过仿真器控制RTT系统从EMMC中删除1KB的res1.bin,并写入目标资源文件中2KB的res1.bin,通过仿真器控制RTT系统从EMMC中删除3KB的res3.bin,并写入目标资源文件中4KB的res4.bin。
若大小相同,说明文件并被修改,无需更新,编程设备直接执行步骤S424。
S424:通过仿真器控制RTT系统将EMMC中的运行文件更新为目标运行文件。
具体的,编程设备通过仿真器控制RTT系统将EMMC中的运行文件删除,并向EMMC中写入目标运行文件。
由以上可见,通过仿真器控制RTT系统将EMMC中与目标资源文件中名称相同但大小不同的文件更新为目标资源文件中的文件,并将EMMC中的运行文件更新为目标运行文件,从而实现了EMMC中文件的更新。
本申请的一个实施例中,仿真器为JLink、Ulink或STLink。
由以上可见,由于JLink、Ulink或STLink支持RTT交互技术,因此编程设备可以通过JLink、Ulink或STLink控制RTT系统,从而可以通过JLink、Ulink或STLink控制RTT系统控制EMMC中文件的更新。
通过以下例子A,在图1的基础上对待升级设备重启的过程进行说明。在待升级设备关机后,通过图6所示的实施例进行启动,参见图6,图6为本申请实施例提供的一种待升级设备启动的示意图。如图6所示,待升级设备ROM中存储有更新后的app.bin,EMMC中存储有更新后的xip.bin及res1.bin、res2.bin、res3.bin,待升级设备的启动过程可以包括以下步骤A1-A4。
A1,待升级设备开始启动,app.bin从ROM加载到RAM;
A2,待升级设备进行初始化,加载EMMC文件系统;
A3,待升级设备将xip.bin与res1.bin、res2.bin、res3.bin加载至PSRAM;
A4,待升级设备基于PSRAM及RAM加载到的文件,继续进行初始化,直到完成待升级设备的启动。
本申请实施例还提供了一种固件更新方法,应用于待升级设备,待升级设备通过仿真器与编程设备进行连接,待升级设备中包括ROM与EMMC。
参见图7,图7为本申请实施例提供的第三种固件升级方法的流程示意图,应用于待升级设备,上述方法可以包括以下步骤:S710-S750。
S710:通过仿真器从编程设备接收并向ROM中写入RTT文件。
上述RTT文件为用于提供RTT交互技术的应用rtt.bin,用于初始化EMMC文件系统。
S720:运行RTT文件形成RTT系统。
上述RTT系统为能够与EMMC文件系统进行交互的系统。
S730:通过RTT系统经过仿真器从编程设备接收并向EMMC中更新第二文件。
上述第二文件为需要更新至待升级设备的已修改过代码的文件。
本申请的一个实施例中,待升级设备可以直接通过RTT系统向EMMC中写入第二文件。
本申请的另一个实施例中,待升级设备通过RTT系统查询EMMC文件系统中目录信息,基于目录信息确定出EMMC中与第二文件名称相同的文件,并根据第二文件对EMMC中名称相同的文件进行更新。
另外,若第二文件中存在与EMMC中所有文件名称均不同的文件,则待升级设备通过RTT系统将第二文件中名称不同的文件写入EMMC中。
S740:通过仿真器从编程设备接收并向ROM中更新第一文件。
上述第一文件为需要更新至待升级设备的已修改过代码的文件。
具体的,待升级设备通过仿真器从ROM中将与第一文件名称相同的文件删除,并向ROM中写入第一文件。
S750:基于第一文件及第二文件进行重启。
重启过程可参见例子A对应的实施例。
由以上可见,待升级设备通过仿真器与编程设备进行连接,通过仿真器从编程设备接收并向ROM中写入RTT文件,并运行RTT文件形成RTT系统,由于RTT系统为能够与EMMC进行交互的系统,因此可以通过RTT系统向EMMC中更新第二文件,完成EMMC中文件的更新,然后通过仿真器从编程设备接收并向ROM中更新第一文件,完成ROM中文件的更新,从而实现了所有待更新文件的更新,最后基于第一文件及第二文件进行重启,以使待升级设备基于所有更新后的文件进行重启,从而简化了文件更新过程,完成了对所有固件的快速升级安装。
本申请的一个实施例中,接收到的第二文件包括目标运行文件和目标资源文件。
其中,目标运行文件为启动待升级设备所需的不常用的运行文件(xip.bin),目标资源文件(res*.bin)可以为音频文件、图像文件等。目标资源文件可以包含多个。
参见图8,图8为本申请实施例提供的第四种固件升级方法的流程示意图,应用于待升级设备,上述步骤S730可以包括以下步骤:S731-S734。
S731:通过RTT系统,获取EMMC中各资源文件的大小。
具体的,待升级设备通过RTT系统查询EMMC文件系统中各资源文件的大小。
S732:将所获取到的各资源文件的大小通过仿真器发送至编程设备。
编程设备在接收到各资源文件的大小后,依次判断EMMC中各资源文件的大小与目标资源文件中与该资源文件名称相同的文件的大小是否相同,若大小不同,则通过仿真器向待升级设备发送目标资源文件中与该资源文件名称相同的文件。具体的判断过程可参见图5所示的实施例中的相关描述。
S733:通过RTT系统,将EMMC中与接收到的目标资源文件名称相同的资源文件更新为目标资源文件。
具体的,待升级设备通过RTT系统,将EMMC中与接收到的目标资源文件名称相同的资源文件删除,并写入目标资源文件。
S734:通过RTT系统,经过仿真器从编程设备接收目标运行文件,并将EMMC中的运行文件更新为目标运行文件。
具体的,待升级设备通过RTT系统,将EMMC中的运行文件删除,并向EMMC中写入目标运行文件。
由以上可见,通过RTT系统将EMMC中与目标资源文件中名称相同但大小不同的文件更新为目标资源文件中的文件,并将EMMC中的运行文件更新为目标运行文件,从而实现了EMMC中文件的更新。
本申请的一个实施例中,仿真器为JLink、Ulink或STLink。
由以上可见,通过JLink、Ulink或STLink将待升级设备与编程设备,使得待升级设备可以通过仿真器获取编程设备中的第一文件、第二文件以及RTT文件,从而可以基于RTT文件构成的RT系统实现EMMC中文件的更新。
一个例子中,在图1的基础上,将编程设备控制待升级设备进行升级的过程进行说明。参见图9,图9为本申请实施例提供的一种更新文件的示意图。
如图9所示,待升级设备通过JLink与编程设备连接,其中,待升级设备中ROM中存储的app.bin、EMMC中存储的xip.bin与res1.bin、res2.bin、res3.bin都为升级前的文件。编程设备中的文件从属于三个目录:构建目录、一键升级脚本目录、代码资源目录,其中,构建目录中存储有运行文件:app.bin、xip.bin,一键升级脚本目录中存储有准备文件:rtt.bin、install.sh,为预先准备好的文件,install.sh用于开始进行本申请实施例提供的固件升级方法,代码资源目录中存储有资源文件:res1.bin、res2.bin、res3.bin。编程设备中的app.bin、xip.bin、res1.bin、res2.bin、res3.bin为需要更新至待升级设备的修改了代码后的文件。图中从rtt.bin指向ROM的虚线箭头表示rtt.bin将从编程设备通过JLink写入待升级设备的ROM,其他的虚线箭头表征箭头两端的文件互相对应,箭头指向的是原始的还未被更新的文件,箭头源头为已被修改将更新至待升级设备的文件。
下面在图9的基础上结合图10对编程设备控制待升级设备进行升级的过程进行说明,图10为本申请实施例提供的一种编程设备控制待升级设备进行升级的示意图,应用于编程设备,编程设备在运行install.sh文件后,将开始控制待升级设备进行升级。升级过程包括以下步骤S1010-S1070。
S1010:通过JLink将rtt.bin写入至ROM。
本步骤对应图9中从rtt.bin指向ROM的虚线箭头,编程设备通过JLink将rtt.bin写入至ROM,以使待升级设备运行rtt.bin形成RTT系统。
S1020:通过JLink控制RTT系统获取EMMC中各资源文件的大小。
具体的,编程设备通过JLink控制RTT系统获取res1.bin、res2.bin、res3.bin的大小。
S1030:依次判断EMMC中各资源文件的大小与目标资源文件中与该资源文件名称相同的文件的大小是否相同。
上述目标资源文件即为编程设备中的res1.bin、res2.bin、res3.bin。
具体的,编程设备判断EMMC与编程设备中res1.bin大小是否相同,判断EMMC与编程设备中res2.bin大小是否相同,判断EMMC与编程设备中res3.bin大小是否相同。
S1040:若大小不同,则通过仿真器控制RTT系统将EMMC中的资源文件更新为目标资源文件中与该资源文件名称相同的文件。
本步骤对应图9中从编程设备中的资源文件指向待升级设备中资源文件的虚线箭头,表示根据编程设备中res1.bin、res2.bin、res3.bin更新待升级设备中res1.bin、res2.bin、res3.bin。
例如,若EMMC与编程设备中res1.bin大小不同,则编程设备通过仿真器控制RTT系统删除EMMC中res1.bin,写入编程设备中res1.bin。
若大小相同则执行步骤S1050。
S1050:通过仿真器控制RTT系统将EMMC中的xip.bin更新为编程设备中的xip.bin。
本步骤对应图9中从编程设备中的xip.bin指向待升级设备中xip.bin的虚线箭头,表示删除待升级设备中xip.bin,向EMMC中写入编程设备中xip.bin。
S1060:通过仿真器将ROM中app.bin更新为编程设备中的app.bin。
本步骤对应图9中从编程设备中的app.bin指向待升级设备中app.bin的虚线箭头,表示删除待升级设备中app.bin,向ROM中写入编程设备中app.bin。
S1070:通过仿真器控制待升级设备重启。
由以上可见,通过install.sh文件即可运行本申请实施例中的升级过程,从而可以一键式开始待升级设备的升级,提升了固件升级的效率。
本申请实施例还提供了一种固件更新系统,参见图11,图11为本申请实施例提供的一种固件更新系统的示意图,系统包括编程设备与待升级设备,编程设备通过仿真器与待升级设备进行连接。
其中,待升级设备中包括ROM与EMMC,编程设备存储有实时传输RTT文件、待更新至ROM中的第一文件、待更新至EMMC中的第二文件。
参见图12,图12为本申请实施例提供的通过固件更新系统进行固件更新系统的流程示意图。上述过程可以通过以下步骤S1210-S1260。实现固件升级。
S1210:编程设备通过仿真器向ROM中写入RTT文件;
S1220:待升级设备运行RTT文件形成RTT系统;
S1230:编程设备通过仿真器控制RTT系统向EMMC中更新第二文件;
S1240:编程设备通过仿真器向ROM中更新第一文件;
S1250:编程设备通过仿真器控制待升级设备重启;
S1260:待升级设备基于第一文件及第二文件进行重启。
具体的固件升级过程可参见本申请前述的实施例。
由以上可见,固件更新系统中的编程设备通过仿真器与待升级设备进行连接,编程设备通过仿真器向ROM中写入RTT文件,待升级设备运行RTT文件形成RTT系统,由于RTT系统为能够与EMMC进行交互的系统,因此编程设备可以通过RTT系统向EMMC中更新第二文件,完成待升级设备EMMC中文件的更新,然后通过仿真器向ROM中更新第一文件,完成待升级设备ROM中文件的更新,从而实现了待升级设备中所有待更新文件的更新,最后编程设备通过仿真器控制待升级设备重新启动,待升级设备可以基于所有更新后的文件进行重启,从而实现对待升级设备中所有固件的升级安装。
本申请的一个实施例中,上述述第二文件包括目标运行文件和目标资源文件,上述步骤S1230可以包括以下步骤B1-B4:
B1:编程设备通过仿真器控制RTT系统获取EMMC中各资源文件的大小;
B2:编程设备依次判断EMMC中各资源文件的大小与目标资源文件中与该资源文件名称相同的文件的大小是否相同;
B3:若大小不同,编程设备则通过仿真器控制RTT系统将EMMC中的资源文件更新为目标资源文件中与该资源文件名称相同的文件;
B4:编程设备通过仿真器控制RTT系统将EMMC中的运行文件更新为目标运行文件。
由以上可见,固件更新系统中的编程设备通过仿真器控制RTT系统将EMMC中与目标资源文件中名称相同但大小不同的文件更新为目标资源文件中的文件,并将EMMC中的运行文件更新为目标运行文件,从而实现了待升级设备中EMMC中文件的更新。
本申请的一个实施例中,仿真器为JLink、Ulink或STLink。
由以上可见,由于JLink、Ulink或STLink支持RTT交互技术,因此固件更新系统中的编程设备可以通过JLink、Ulink或STLink控制RTT系统,从而可以通过JLink、Ulink或STLink控制RTT系统控制固件更新系统中待升级设备EMMC中文件的更新。
具体实现中,本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述实施例中的部分或全部步骤。上述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
具体实现中,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在计算机上执行时,使得计算机执行上述方法实施例中的部分或全部步骤。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程 系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit ,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、光盘只读存储器(Compact Disc Read Only Memory,CD-ROMs)、磁光盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(Erasable ProgrammableRead Only Memory ,EPROM)、电可擦除可编程只读存储器(Electrically ErasableProgrammable Read Only Memory ,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明书附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (10)

1.一种固件更新方法,其特征在于,应用于编程设备,所述编程设备通过仿真器与待升级设备进行连接,所述待升级设备中包括只读存储器ROM与嵌入式多媒体卡EMMC,所述编程设备存储有实时传输RTT文件、待更新至所述ROM中的第一文件、待更新至所述EMMC中的第二文件,所述方法包括:
通过所述仿真器向所述ROM中写入所述RTT文件,以使所述待升级设备运行所述RTT文件形成RTT系统;
通过所述仿真器控制所述RTT系统向所述EMMC中更新所述第二文件;
通过所述仿真器向所述ROM中更新所述第一文件;
通过所述仿真器控制所述待升级设备重启,以使所述待升级设备基于所述第一文件及所述第二文件进行重启。
2.根据权利要求1所述的方法,其特征在于,所述第二文件包括目标运行文件和目标资源文件,所述通过所述仿真器控制所述RTT系统向所述EMMC中更新所述第二文件,包括:
通过所述仿真器控制所述RTT系统获取所述EMMC中各资源文件的大小;
依次判断所述EMMC中各资源文件的大小与所述目标资源文件中与该资源文件名称相同的文件的大小是否相同;
若大小不同,则通过所述仿真器控制所述RTT系统将所述EMMC中的资源文件更新为所述目标资源文件中与该资源文件名称相同的文件;
通过所述仿真器控制所述RTT系统将所述EMMC中的运行文件更新为所述目标运行文件。
3.根据权利要求1或2所述的方法,其特征在于,所述仿真器为JLink、Ulink或STLink。
4.一种固件更新方法,其特征在于,应用于待升级设备,所述待升级设备通过仿真器与编程设备进行连接,所述待升级设备中包括只读存储器ROM与嵌入式多媒体卡EMMC,所述方法包括:
通过所述仿真器从所述编程设备接收并向所述ROM中写入实时传输RTT文件;
运行所述RTT文件形成RTT系统;
通过所述RTT系统经过所述仿真器从所述编程设备接收并向所述EMMC中更新第二文件;
通过所述仿真器从所述编程设备接收并向所述ROM中更新第一文件;
基于所述第一文件及所述第二文件进行重启。
5.根据权利要求4所述的方法,其特征在于,接收到的所述第二文件包括目标运行文件和目标资源文件,所述通过所述RTT系统经过所述仿真器从所述编程设备接收并向所述EMMC中更新第二文件,包括:
通过所述RTT系统,获取所述EMMC中各资源文件的大小;
将所获取到的各资源文件的大小通过所述仿真器发送至所述编程设备,以使得所述编程设备依次判断所述EMMC中各资源文件的大小与所述目标资源文件中与该资源文件名称相同的文件的大小是否相同,若大小不同,则通过所述仿真器向所述待升级设备发送所述目标资源文件中与该资源文件名称相同的文件;
通过所述RTT系统,将所述EMMC中与接收到的目标资源文件名称相同的资源文件更新为所述目标资源文件;
通过所述RTT系统,经过所述仿真器从所述编程设备接收目标运行文件,并将所述EMMC中的运行文件更新为所述目标运行文件。
6.根据权利要求4或5所述的方法,其特征在于,所述仿真器为JLink、Ulink或STLink。
7.一种固件更新系统,其特征在于,所述系统包括编程设备与待升级设备,所述编程设备通过仿真器与所述待升级设备进行连接,所述待升级设备中包括只读存储器ROM与嵌入式多媒体卡EMMC,所述编程设备存储有实时传输RTT文件、待更新至所述ROM中的第一文件、待更新至所述EMMC中的第二文件;
所述编程设备通过所述仿真器向所述ROM中写入所述RTT文件;
所述待升级设备运行所述RTT文件形成RTT系统;
所述编程设备通过所述仿真器控制所述RTT系统向所述EMMC中更新所述第二文件;
所述编程设备通过所述仿真器向所述ROM中更新所述第一文件;
所述编程设备通过所述仿真器控制所述待升级设备重启;
所述待升级设备基于所述第一文件及所述第二文件进行重启。
8.一种电子设备,其特征在于,包括:
一个或多个处理器和存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至3中任一项所述的方法。
9.一种电子设备,其特征在于,包括:
一个或多个处理器和多个存储器,其中,多个存储器包括:只读存储器ROM、嵌入式多媒体卡EMMC和目标存储器;
所述目标存储器与所述一个或多个处理器耦合,所述目标存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求4至6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至3或权利要求4至6任意一项所述的固件更新方法。
CN202310915525.7A 2023-07-25 2023-07-25 一种固件更新方法、系统、电子设备及存储介质 Active CN116627476B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310915525.7A CN116627476B (zh) 2023-07-25 2023-07-25 一种固件更新方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310915525.7A CN116627476B (zh) 2023-07-25 2023-07-25 一种固件更新方法、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN116627476A CN116627476A (zh) 2023-08-22
CN116627476B true CN116627476B (zh) 2023-12-15

Family

ID=87597695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310915525.7A Active CN116627476B (zh) 2023-07-25 2023-07-25 一种固件更新方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116627476B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958762A (zh) * 2017-08-02 2018-12-07 北京视联动力国际信息技术有限公司 一种软件的升级方法和装置
CN111258932A (zh) * 2020-01-09 2020-06-09 厦门鑫忆讯科技有限公司 加速ufs协议处理的方法与存储控制器
CN111813428A (zh) * 2020-06-02 2020-10-23 西安闻泰电子科技有限公司 终端固件的升级方法、装置、电子设备及存储介质
CN112748872A (zh) * 2019-10-31 2021-05-04 爱思开海力士有限公司 存储器系统及其操作方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409585B2 (en) * 2018-02-14 2019-09-10 Micron Technology, Inc. Over-the-air (OTA) update for firmware of a vehicle component

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108958762A (zh) * 2017-08-02 2018-12-07 北京视联动力国际信息技术有限公司 一种软件的升级方法和装置
CN112748872A (zh) * 2019-10-31 2021-05-04 爱思开海力士有限公司 存储器系统及其操作方法
CN111258932A (zh) * 2020-01-09 2020-06-09 厦门鑫忆讯科技有限公司 加速ufs协议处理的方法与存储控制器
CN111813428A (zh) * 2020-06-02 2020-10-23 西安闻泰电子科技有限公司 终端固件的升级方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN116627476A (zh) 2023-08-22

Similar Documents

Publication Publication Date Title
WO2021052437A1 (zh) 一种应用启动方法及电子设备
WO2020173377A1 (zh) 一种日志信息生成方法、装置及电子设备
CN108540193B (zh) 支持使用多频带的设备到设备通信的前端模块及电子设备
CN110633090B (zh) 补丁方法、相关装置及系统
WO2022089207A1 (zh) 一种跨设备应用交互方法、电子设备与服务器
CN114461239B (zh) 软件升级系统和软件升级方法
CN114968384B (zh) 一种功能调用方法和装置
WO2019169587A1 (zh) 一种分功能模块安装应用程序的方法
CN115309431B (zh) 一种参数更新方法、可读介质和电子设备
CN116048628B (zh) 设备启动方法及电子设备
WO2022161024A1 (zh) 升级提示方法、终端设备及计算机可读存储介质
CN113608753A (zh) 应用卸载方法、应用恢复方法、电子设备以及存储介质
CN114443083A (zh) 系统升级方法、装置、电子设备及存储介质
CN116244008B (zh) 应用启动方法、电子设备以及存储介质
CN116627476B (zh) 一种固件更新方法、系统、电子设备及存储介质
CN114253558A (zh) 一种补丁包安装方法和装置
WO2022111664A1 (zh) 打补丁的方法、相关设备及系统
CN113835802A (zh) 设备交互方法、系统、设备及计算机可读存储介质
CN116700660B (zh) 音频播放方法和电子设备
CN117009023B (zh) 显示通知信息的方法及相关装置
WO2023061014A1 (zh) 任务管理方法及装置
WO2024119895A1 (zh) 操作系统升级方法、设备和存储介质
WO2024083114A1 (zh) 一种软件分发方法、电子设备及系统
WO2024093853A1 (zh) 一种文件下载方法及相关装置
WO2023165413A1 (zh) 一种应用开发系统、方法及设备

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