底层程序升级方法、装置、计算机设备及存储介质

文档序号:1963497 发布日期:2021-12-14 浏览:21次 >En<

阅读说明:本技术 底层程序升级方法、装置、计算机设备及存储介质 (Bottom layer program upgrading method and device, computer equipment and storage medium ) 是由 甘训杰 于 2021-10-20 设计创作,主要内容包括:本发明公开了一种底层程序升级方法、装置、计算机设备及存储介质。该方法包括:读取地址空间数据;判断地址空间数据是否等于设定值;若是,则将第二区内的程序搬至第一区内;若否,则进入第一区,运行现有的程序;判断是否接收到程序升级标志;若是,则获取通过组态屏发送的第一帧数据;解析第一帧数据,以得到目标信息;回复设定内容至组态屏;判断当前是否接收到下一帧数据;若是,则存储下一帧数据至第二区;判断当前接收的数据是否是最后一帧数据;若是,则计算第二区内的校验位以及程序大小;判断校验位以及程序大小是否与目标信息一致;若是,则将地址空间数据设置为设定值。本发明可实现无需外设资源,升级代码简单,成本低,且安全性高。(The invention discloses a method and a device for upgrading a bottom layer program, computer equipment and a storage medium. The method comprises the following steps: reading address space data; judging whether the address space data is equal to a set value or not; if yes, moving the program in the second area to the first area; if not, entering a first area and operating the existing program; judging whether a program upgrading mark is received or not; if so, acquiring first frame data sent through a configuration screen; analyzing the first frame data to obtain target information; replying the setting content to the configuration screen; judging whether next frame data is received currently; if yes, storing next frame data to a second area; judging whether the currently received data is the last frame data; if yes, calculating a check bit and a program size in the second area; judging whether the check bit and the program size are consistent with the target information or not; if yes, the address space data is set as a set value. The invention can realize no need of external resources, and has the advantages of simple code upgrading, low cost and high safety.)

底层程序升级方法、装置、计算机设备及存储介质

技术领域

本发明涉及程序升级方法,更具体地说是指底层程序升级方法、装置、计 算机设备及存储介质。

背景技术

当前给芯片进行IAP(应用编程,In Application Programming)升级的策略 有WIFI、LAN升级、USB口升级。这些升级方式都是先下载程序文件,然后通 过硬件的复位,进行选择是否进入新的应用程序,这些升级方式,需要比较多 的硬件和软件的支撑才能完成,因为这些升级方式需要芯片外挂WIFI模块/LAN 模块电路,或者芯片自带USB功能/USB电路。对于资源比较少的芯片,不一 定是最优的解决方案。

现有主流程序的升级技术包括有ISP(互联网服务提供商,Internet ServiceProvide)升级即在系统编程升级、IAP升级即在应用编程升级、ICP(网络内容 服务商英文,Internet Content Provider)升级即在电路编程;针对生产好的产品, 需要进行程序更新升级,基本上都是采用IAP升级,IAP升级方式的实现很灵 活,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件 程序来编程内部存储器,可以通过现有的INTERNET或其它通讯方式很方便地 实现远程升级和维护。目前的IAP技术以有线或者无线的方式将程序包下载到 芯片中,针对于无线方式,需要增加很多硬件成本,有线方式进行IAP升级时, 大多采用U盘或者SD卡,将程序放到内部,再通过串口读取数据资料,最后 更新程序,需要控制器通过USB电路方式读取,代码复杂。

因此,有必要设计一种新的方法,实现无需外设资源,升级代码简单,成 本低,且安全性高。

发明内容

本发明的目的在于克服现有技术的缺陷,提供底层程序升级方法、装置、 计算机设备及存储介质。

为实现上述目的,本发明采用以下技术方案:底层程序升级方法,包括:

在Bootloader区读取Flash数据区特定的地址空间数据;

判断所述地址空间数据是否等于设定值;

若所述地址空间数据等于设定值,则将第二区内的程序搬至第一区内,以 进行程序替换;

若所述地址空间数据不等于设定值,则进入第一区,以运行现有的程序;

判断当前是否接收到组态屏程序发送的程序升级标志;

若当前接收到组态屏程序发送的程序升级标志,则获取通过组态屏获取的 需要升级的文件包所处理后形成的且通过Ymodem协议发送的第一帧数据;

对所述第一帧数据进行程序文件名、校验码以及程序文件大小的解析,以 得到目标信息;

回复设定内容至组态屏,以使得组态屏通过Ymodem协议发送下一帧数据;

判断当前是否接收到下一帧数据;

若当前接收到下一帧数据,则存储下一帧数据至第二区;

判断当前接收的数据是否是最后一帧数据;

若当前接收的数据是最后一帧数据,则回复完成信号至组态屏;

计算所述第二区内的校验位以及程序大小;

判断所述第二区内的校验位以及程序大小是否与所述目标信息一致;

若所述第二区内的校验位以及程序大小与所述目标信息一致,则将Flash数 据区特定的地址空间数据设置为所述设定值,并执行所述在Bootloader区读取 Flash数据区特定的地址空间数据。

其进一步技术方案为:所述判断所述第二区内的校验位以及程序大小是否 与所述目标信息一致之后,还包括:

若所述第二区内的校验位以及程序大小与所述目标信息不一致,则运行第 一区内的现有的程序。

其进一步技术方案为:所述获取通过组态屏获取的需要升级的文件包所处 理后形成的且通过Ymodem协议发送的第一帧数据,包括:

由组态屏读取U盘文件的文件名;

由组态屏根据所述文件名判断是否有符合要求的程序文件;

若有符合要求的程序文件,则由组态屏读取程序文件存储到内部存储器中;

由组态屏计算符合要求的程序文件的程序文件大小以及校验码;

由组态屏判断符合要求的程序文件的程序文件大小以及校验码是否正确;

若符合要求的程序文件的程序文件大小以及校验码正确,则由组态屏对符 合要求的程序文件进行数据处理,以形成第一帧数据;

由组态屏通过Ymodem协议发送所述第一帧数据,以获取通过组态屏获取 的需要升级的文件包所处理后形成的且通过Ymodem协议发送的第一帧数据。

其进一步技术方案为:所述由组态屏对符合要求的程序文件进行数据处理, 以形成第一帧数据,包括:

由组态屏对符合要求的程序文件进行打包和分割,以得到分割后的数据;

将所述程序文件的程序文件名、校验码、程序文件大小以及帧头写入第一 帧数据内。

其进一步技术方案为:所述判断当前接收的数据是否是最后一帧数据之后, 还包括:

若当前接收的数据不是最后一帧数据,则执行所述回复设定内容至组态屏, 以使得组态屏通过Ymodem协议发送下一帧数据。

其进一步技术方案为:所述判断当前是否接收到下一帧数据之后,还包括:

若当前没有接收到下一帧数据,则执行所述运行第一区的现有的程序。

其进一步技术方案为:所述判断当前是否接收到组态屏程序发送的程序升 级标志之后,还包括:

若当前没有接收到组态屏程序发送的程序升级标志,则执行所述运行第一 区的现有的程序。

本发明还提供了底层程序升级装置,包括:

读取单元,用于在Bootloader区读取Flash数据区特定的地址空间数据;

数据判断单元,用于判断所述地址空间数据是否等于设定值;

程序搬移单元,用于若所述地址空间数据等于设定值,则将第二区内的程 序搬至第一区内,以进行程序替换;

第一运行单元,用于若所述地址空间数据不等于设定值,则进入第一区, 以运行现有的程序;

标志判断单元,用于判断当前是否接收到组态屏程序发送的程序升级标志;

第一帧数据获取单元,用于若当前接收到组态屏程序发送的程序升级标志, 则获取通过组态屏获取的需要升级的文件包所处理后形成的且通过Ymodem协 议发送的第一帧数据;

解析单元,用于对所述第一帧数据进行程序文件名、校验码以及程序文件 大小的解析,以得到目标信息;

回复单元,用于回复设定内容至组态屏,以使得组态屏通过Ymodem协议 发送下一帧数据;

下一帧数据判断单元,用于判断当前是否接收到下一帧数据;

存储单元,用于若当前接收到下一帧数据,则存储下一帧数据至第二区;

最后一帧判断单元,用于判断当前接收的数据是否是最后一帧数据;

信号发送单元,用于若当前接收的数据是最后一帧数据,则回复完成信号 至组态屏;

计算单元,用于计算所述第二区内的校验位以及程序大小;

一致判断单元,用于判断所述第二区内的校验位以及程序大小是否与所述 目标信息一致;

设定单元,用于若所述第二区内的校验位以及程序大小与所述目标信息一 致,则将Flash数据区特定的地址空间数据设置为所述设定值,并执行所述在 Bootloader区读取Flash数据区特定的地址空间数据。

本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器, 所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述 的方法。

本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计 算机程序被处理器执行时可实现上述的方法。

本发明与现有技术相比的有益效果是:本发明通过组态屏进行通过组态屏 读取文件名,增加程序校验位和程序大小以判断是否是需要升级的文件包,防 止有恶意破坏程序文件导致升级后程序无法运行,当存在升级的文件包时,由 组态屏进行分割处理后,采用通过Ymodem协议发送,数据传输安全性高;且 程序升级时,将接收的数据存储在第二区内,再根据校验位以及程序大小字段 判断程序升级包是否符合要求,防止程序在升级过程中因干扰引起的数据传输 错误,导致升级失败,程序升级时,不是直接覆盖原有的程序,而是将程序放 到另一个区域,接收结束后,当需要升级再进行程序文件的搬移和替换,避免原有程序区域在未完成升级的时候被误覆盖,无需外设资源,升级代码简单, 成本低,且安全性高。

下面结合附图和具体实施例对本发明作进一步描述。

附图说明

为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要 使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。

图1为本发明实施例提供的底层程序升级方法的应用场景示意图;

图2为本发明实施例提供的底层程序升级方法的流程示意图;

图3为本发明实施例提供的底层程序升级方法的子流程示意图;

图4为本发明实施例提供的底层程序升级装置的示意性框图;

图5为本发明实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部 的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳 动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含” 指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个 或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施 例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使 用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该” 意在包括复数形式。

还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包 括这些组合。

请参阅图1和图2,图1为本发明实施例提供的底层程序升级方法的应用场 景示意图。图2为本发明实施例提供的底层程序升级方法的示意性流程图。该 底层程序升级方法应用于服务器中。该服务器与组态屏进行数据交互,服务器 可以为控制器,控制器与组态屏集成在同一个产品上,将组态屏的数据传输通 过Ymodem协议传输到服务器的第二区的Flash区域,而通过组态屏完成U盘 的程序读取,省去了MCU通过USB电路方式读取,节省了MCU外设资源, 代码复杂度,另外,组态屏上会与MCU进行互动,界面上提醒操作者当前的进度状态,升级过程更加直观,程序传输过程中,加入了Ymodem协议,使数据 传输更加安全可靠。

图2是本发明实施例提供的底层程序升级方法的流程示意图。如图2所示, 该方法包括以下步骤S110至S260。

S110、在Bootloader区读取Flash数据区特定的地址空间数据。

在本实施例中,地址空间数据的数值决定了是否需要进行程序升级,以确 保原有的程序区域在未完成升级时不会被误覆盖。

S120、判断所述地址空间数据是否等于设定值。

在本实施例中,当所述地址空间数据等于1时,则表明需要进行程序升级; 当不需要进行程序升级时,所述地址空间数据为0。

S130、若所述地址空间数据等于设定值,则将第二区内的程序搬至第一区 内,以进行程序替换。

当需要进行程序升级时,将存储在第二区内的程序文件搬移至第一区内, 覆盖第一区现有的程序文件,便可完成程序的替换。

程序升级时,不是直接覆盖原有的程序,而是将程序放到第二区,接收结 束后,判断是否需要升级,避免原有程序区域在未完成升级的时候被误覆盖。

S140、若所述地址空间数据不等于设定值,则进入第一区,以运行现有的 程序;

S150、判断当前是否接收到组态屏程序发送的程序升级标志。

当组态屏判断到有需要升级的程序文件包后,会发送一个程序升级标志至 服务器,以告知服务器当前有程序需要进行升级,以使得服务器可以做好接受 数据的准备。

S160、若当前没有接收到组态屏程序发送的程序升级标志,则运行第一区 内的现有的程序;

S170、若当前接收到组态屏程序发送的程序升级标志,则获取通过组态屏 获取的需要升级的文件包所处理后形成的且通过Ymodem协议发送的第一帧数 据。

在本实施例中,第一帧数据包括程序文件名、校验码、程序文件大小以及 帧头。

具体地,请参阅图3,组态屏生成第一帧数据的流程包括步骤S210~S280。

S210、由组态屏读取U盘文件的文件名;

S220、由组态屏根据所述文件名判断是否有符合要求的程序文件;

若没有符合要求的程序文件,则执行所述步骤S280。

S230、若有符合要求的程序文件,则由组态屏读取程序文件存储到内部存 储器中;

S240、由组态屏计算符合要求的程序文件的程序文件大小以及校验码;

S250、由组态屏判断符合要求的程序文件的程序文件大小以及校验码是否 正确;

S260、若符合要求的程序文件的程序文件大小以及校验码正确,则由组态 屏对符合要求的程序文件进行数据处理,以形成第一帧数据;

S270、由组态屏通过Ymodem协议发送所述第一帧数据,以获取通过组态 屏获取的需要升级的文件包所处理后形成的且通过Ymodem协议发送的第一帧 数据。

S280、若符合要求的程序文件的程序文件大小以及校验码不正确,则所述 组态屏显示读取失败。

具体地,所述由组态屏对符合要求的程序文件进行数据处理,以形成第一 帧数据,包括:由组态屏对符合要求的程序文件进行打包和分割,以得到分割 后的数据;将所述程序文件的程序文件名、校验码、程序文件大小以及帧头写 入第一帧数据内。

数据打包时,将程序文件分割成(En/128字节)帧,不足128字节的数据, 通过0xFF补足。比如En为365,则程序文件分割成3份,第三份因不足128 字节,会通过0xFF补足。

具体地,由组态屏读取程序文件存储到内部存储器中,包括:

读取过程中会对每两个字节的数据做为一个单元,每个单元进行逐个求和, 最后的2个数据不做处理,属于校验位,求和后溢出的数据不需要处理,当对 所有单元的数据完成求和后,得到的求和的余数即为校验码;程序文件大小En, 以字节的方式统计,得到每获取一个字节数据,En加1,累加到文件的倒数第 三个数据即可,En即为程序文件的大小。

由组态屏判断符合要求的程序文件的程序文件大小以及校验码是否正确, 可以是校验码与程序文件最后的2个字节数据进行比较,如果一致,则表明校 验正确。

S180、对所述第一帧数据进行程序文件名、校验码以及程序文件大小的解 析,以得到目标信息。

在本实施例中,目标信息是指从第一帧数据中解析得到的程序文件名、校 验码、程序文件大小数据;因第一帧数据包含文件名信息,校验码信息,程序 文件大小信息,则将接收到的数据进行解析,读取出三个数据信息。

第一帧数据的格式为:SOH 00FF X XXXXXXXXX 0xFF 0xFF0xFF Y YYY 0xFF0xFF0xFF Z Z CRC CRC;其中,X XXXXXXXXX代表文件名,Y YYY代 表文件大小,Z Z代表校验码。

S190、回复设定内容至组态屏,以使得组态屏通过Ymodem协议发送下一 帧数据。

具体地,回复“ACK C”至组态屏,等待第二帧数据到来,而组态屏会判断是 否接收到来自服务器回传的“ACK C”信号,如果是的话,则组态屏明确当前的数 据的帧数;发送第N帧数据,N取值为2,3,...Nmax;如果组态屏未接收到来 自服务器回传的“ACK C”信号,则组态屏会先等待10ms,并进行计数,当计数 达到100时,则表示接收超时,停止发送数据,返回主程序。

S200、判断当前是否接收到下一帧数据;

若当前没有接收到下一帧数据,则执行所述步骤S160。

S210、若当前接收到下一帧数据,则存储下一帧数据至第二区。

每次接收由组态屏发送的数据后,都是直接存储到第二区,等待接收完全 部数据后,进行是否需要升级的判断,再对第二区的程序文件进行处理。

S220、判断当前接收的数据是否是最后一帧数据;

若当前接收的数据不是最后一帧数据,则执行所述S190。

S230、若当前接收的数据是最后一帧数据,则回复完成信号至组态屏。

具体地,回复NAK至组态屏。对于组态屏而言,每次传输完一帧数据后, 都会判断是否为最后一帧数据,当是最后一帧数据时,则判断是否接收来自服 务器回传的“NAK”,在接收到服务器回传的“NAK”后,则清除计数,并提示升 级完成;若未接收到服务器回传的“NAK”,则等到10ms后,进行计数,判断计 数是否大于100,当大于100后,则表示接收超时,停止发送数据,返回主程序; 如果不是最后一帧数据时,判断是否接收到来自服务器回传的“ACK C”信号,如 果接收到,则清除计数;如果没有接收到,则判断计数是否大于100,当大于 100后,则等到10ms后,进行计数,表示接收超时,停止发送数据,返回主程 序。

S240、计算所述第二区内的校验位以及程序大小;

S250、判断所述第二区内的校验位以及程序大小是否与所述目标信息一致;

S260、若所述第二区内的校验位以及程序大小与所述目标信息一致,则将 Flash数据区特定的地址空间数据设置为所述设定值,并执行所述步骤S110。

若所述第二区内的校验位以及程序大小与所述目标信息不一致,则执行所 述步骤S160。

当接收完全部数据后,判断是否需要进行程序升级的依据是所述第二区内 的校验位以及程序大小是否与所述目标信息内的校验位和程序大小一致,一致 则表明需要进行升级,将Flash数据区特定的地址空间数据设置为1,代表存在 待升级的程序文件,以进行程序文件的搬移,否则,不需要进行升级,将Flash 数据区特定的地址空间数据设置为0。服务器接收最后一帧数据时,会根据校验 位,程序大小字段判断程序升级包是否符合要求,防止程序在升级过程中因干 扰引起的数据传输错误,导致升级失败。数据接收完成后,通过人为的设备重 启,服务器进入Bootloader区,查询数据区是否有待升级的程序包,如果有, 就将第二区的程序搬到第一区,搬移完成后,跳转到第一区执行替换后的程序。

产品本身带组态屏,通过组态屏完成U盘的程序读取,省去了服务器通过 USB电路方式读取,节省了服务器外设资源,代码复杂度;组态屏上会与服务 器进行互动,界面上提醒操作者当前的进度状态,升级过程更加直观;程序传 输过程中,加入了Ymodem协议,使数据传输更加安全可靠;组态屏可选择读 取特定的文件,只需要更新组态屏程序。如果通过服务器直接外挂USB电路方 案,读取U盘数据必须是特定的上次规定的文件名数据,不利于程序归档;组 态屏可直接设置特定Flash空间数据,不局限于升级服务器程序;可升级特定的 数据区域,比如电池包的更新,保护数值的更新等等。

上述的底层程序升级方法,通过组态屏进行通过组态屏读取文件名,增加 程序校验位和程序大小以判断是否是需要升级的文件包,防止有恶意破坏程序 文件导致升级后程序无法运行,当存在升级的文件包时,由组态屏进行分割处 理后,采用通过Ymodem协议发送,数据传输安全性高;且程序升级时,将接 收的数据存储在第二区内,再根据校验位以及程序大小字段判断程序升级包是 否符合要求,防止程序在升级过程中因干扰引起的数据传输错误,导致升级失 败,程序升级时,不是直接覆盖原有的程序,而是将程序放到另一个区域,接 收结束后,当需要升级再进行程序文件的搬移和替换,避免原有程序区域在未完成升级的时候被误覆盖,无需外设资源,升级代码简单,成本低,且安全性 高。

图4是本发明实施例提供的一种底层程序升级装置300的示意性框图。如 图4所示,对应于以上底层程序升级方法,本发明还提供一种底层程序升级装 置300。该底层程序升级装置300包括用于执行上述底层程序升级方法的单元, 该装置可以被配置于服务器中。具体地,请参阅图4,该底层程序升级装置300 包括读取单元301、数据判断单元302、程序搬移单元303、第一运行单元304、 标志判断单元305、第一帧数据获取单元306、解析单元307、回复单元308、 下一帧数据判断单元309、第二运行单元310、存储单元311、最后一帧判断单 元312、信号发送单元313、计算单元314、一致判断单元315以及设定单元316。

读取单元301,用于在Bootloader区读取Flash数据区特定的地址空间数据; 数据判断单元302,用于判断所述地址空间数据是否等于设定值;程序搬移单元 303,用于若所述地址空间数据等于设定值,则将第二区内的程序搬至第一区内, 以进行程序替换;第一运行单元304,用于若所述地址空间数据不等于设定值, 则进入第一区,以运行现有的程序;标志判断单元305,用于判断当前是否接收 到组态屏程序发送的程序升级标志;若当前没有接收到组态屏程序发送的程序 升级标志,则执行所述运行第一区的现有的程序。第一帧数据获取单元306,用 于若当前接收到组态屏程序发送的程序升级标志,则获取通过组态屏获取的需 要升级的文件包所处理后形成的且通过Ymodem协议发送的第一帧数据;解析 单元307,用于对所述第一帧数据进行程序文件名、校验码以及程序文件大小的 解析,以得到目标信息;回复单元308,用于回复设定内容至组态屏,以使得组 态屏通过Ymodem协议发送下一帧数据;下一帧数据判断单元309,用于判断 当前是否接收到下一帧数据;第二运行单元310,用于若当前没有接收到下一帧 数据,则运行第一区的现有的程序;存储单元311,用于若当前接收到下一帧数 据,则存储下一帧数据至第二区;最后一帧判断单元312,用于判断当前接收的 数据是否是最后一帧数据;若当前接收的数据不是最后一帧数据,则执行所述 回复设定内容至组态屏,以使得组态屏通过Ymodem协议发送下一帧数据。信 号发送单元313,用于若当前接收的数据是最后一帧数据,则回复完成信号至组 态屏;计算单元314,用于计算所述第二区内的校验位以及程序大小;一致判断 单元315,用于判断所述第二区内的校验位以及程序大小是否与所述目标信息一 致;若所述第二区内的校验位以及程序大小与所述目标信息不一致,则运行第 一区内的现有的程序;设定单元316,用于若所述第二区内的校验位以及程序大 小与所述目标信息一致,则将Flash数据区特定的地址空间数据设置为所述设定 值,并执行所述在Bootloader区读取Flash数据区特定的地址空间数据。

在一实施例中,所述第一帧数据获取单元306,用于由组态屏读取U盘文 件的文件名;由组态屏根据所述文件名判断是否有符合要求的程序文件;若有 符合要求的程序文件,则由组态屏读取程序文件存储到内部存储器中;由组态 屏计算符合要求的程序文件的程序文件大小以及校验码;由组态屏判断符合要 求的程序文件的程序文件大小以及校验码是否正确;若符合要求的程序文件的 程序文件大小以及校验码正确,则由组态屏对符合要求的程序文件进行数据处 理,以形成第一帧数据;由组态屏通过Ymodem协议发送所述第一帧数据,以 获取通过组态屏获取的需要升级的文件包所处理后形成的且通过Ymodem协议 发送的第一帧数据。且由组态屏对符合要求的程序文件进行数据处理,以形成 第一帧数据具体是由组态屏对符合要求的程序文件进行打包和分割,以得到分 割后的数据;将所述程序文件的程序文件名、校验码、程序文件大小以及帧头 写入第一帧数据内。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述底层程序升 级装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述, 为了描述的方便和简洁,在此不再赘述。

上述底层程序升级装置300可以实现为一种计算机程序的形式,该计算机 程序可以在如图5所示的计算机设备上运行。

请参阅图5,图5是本申请实施例提供的一种计算机设备的示意性框图。该 计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是 多个服务器组成的服务器集群。

参阅图5,该计算机设备500包括通过系统总线501连接的处理器502、存 储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器 504。

该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算 机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种 底层程序升级方法。

该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运 行。

该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供 环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种底 层程序升级方法。

该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解, 图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对 本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可 以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部 件布置。

其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实 现如下步骤:

在Bootloader区读取Flash数据区特定的地址空间数据;判断所述地址空间 数据是否等于设定值;若所述地址空间数据等于设定值,则将第二区内的程序 搬至第一区内,以进行程序替换;若所述地址空间数据不等于设定值,则进入 第一区,以运行现有的程序;判断当前是否接收到组态屏程序发送的程序升级 标志;若当前接收到组态屏程序发送的程序升级标志,则获取通过组态屏获取 的需要升级的文件包所处理后形成的且通过Ymodem协议发送的第一帧数据; 对所述第一帧数据进行程序文件名、校验码以及程序文件大小的解析,以得到 目标信息;回复设定内容至组态屏,以使得组态屏通过Ymodem协议发送下一 帧数据;判断当前是否接收到下一帧数据;若当前接收到下一帧数据,则存储 下一帧数据至第二区;判断当前接收的数据是否是最后一帧数据;若当前接收 的数据是最后一帧数据,则回复完成信号至组态屏;计算所述第二区内的校验 位以及程序大小;判断所述第二区内的校验位以及程序大小是否与所述目标信 息一致;若所述第二区内的校验位以及程序大小与所述目标信息一致,则将Flash 数据区特定的地址空间数据设置为所述设定值,并执行所述在Bootloader区读 取Flash数据区特定的地址空间数据。

在一实施例中,处理器502在实现所述判断所述第二区内的校验位以及程 序大小是否与所述目标信息一致步骤之后,还实现如下步骤:

若所述第二区内的校验位以及程序大小与所述目标信息不一致,则运行第 一区内的现有的程序。

在一实施例中,处理器502在实现所述获取通过组态屏获取的需要升级的 文件包所处理后形成的且通过Ymodem协议发送的第一帧数据步骤时,具体实 现如下步骤:

由组态屏读取U盘文件的文件名;由组态屏根据所述文件名判断是否有符 合要求的程序文件;若有符合要求的程序文件,则由组态屏读取程序文件存储 到内部存储器中;由组态屏计算符合要求的程序文件的程序文件大小以及校验 码;由组态屏判断符合要求的程序文件的程序文件大小以及校验码是否正确; 若符合要求的程序文件的程序文件大小以及校验码正确,则由组态屏对符合要 求的程序文件进行数据处理,以形成第一帧数据;由组态屏通过Ymodem协议 发送所述第一帧数据,以获取通过组态屏获取的需要升级的文件包所处理后形 成的且通过Ymodem协议发送的第一帧数据。

在一实施例中,处理器502在实现所述由组态屏对符合要求的程序文件进 行数据处理,以形成第一帧数据步骤时,具体实现如下步骤:

由组态屏对符合要求的程序文件进行打包和分割,以得到分割后的数据; 将所述程序文件的程序文件名、校验码、程序文件大小以及帧头写入第一帧数 据内。

在一实施例中,处理器502在实现所述判断当前接收的数据是否是最后一 帧数据步骤之后,还实现如下步骤:

若当前接收的数据不是最后一帧数据,则执行所述回复设定内容至组态屏, 以使得组态屏通过Ymodem协议发送下一帧数据。

在一实施例中,处理器502在实现所述判断当前是否接收到下一帧数据步 骤之后,还实现如下步骤:

若当前没有接收到下一帧数据,则执行所述运行第一区的现有的程序。

应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理 器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或 者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中, 通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分 流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程 序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介 质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的 实施例的流程步骤。

因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介 质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理 器执行如下步骤:

在Bootloader区读取Flash数据区特定的地址空间数据;判断所述地址空间 数据是否等于设定值;若所述地址空间数据等于设定值,则将第二区内的程序 搬至第一区内,以进行程序替换;若所述地址空间数据不等于设定值,则进入 第一区,以运行现有的程序;判断当前是否接收到组态屏程序发送的程序升级 标志;若当前接收到组态屏程序发送的程序升级标志,则获取通过组态屏获取 的需要升级的文件包所处理后形成的且通过Ymodem协议发送的第一帧数据; 对所述第一帧数据进行程序文件名、校验码以及程序文件大小的解析,以得到 目标信息;回复设定内容至组态屏,以使得组态屏通过Ymodem协议发送下一 帧数据;判断当前是否接收到下一帧数据;若当前接收到下一帧数据,则存储 下一帧数据至第二区;判断当前接收的数据是否是最后一帧数据;若当前接收 的数据是最后一帧数据,则回复完成信号至组态屏;计算所述第二区内的校验 位以及程序大小;判断所述第二区内的校验位以及程序大小是否与所述目标信 息一致;若所述第二区内的校验位以及程序大小与所述目标信息一致,则将Flash 数据区特定的地址空间数据设置为所述设定值,并执行所述在Bootloader区读 取Flash数据区特定的地址空间数据。

在一实施例中,所述处理器在执行所述计算机程序而实现所述判断所述第 二区内的校验位以及程序大小是否与所述目标信息一致步骤之后,还实现如下 步骤:

若所述第二区内的校验位以及程序大小与所述目标信息不一致,则运行第 一区内的现有的程序。

在一实施例中,所述处理器在执行所述计算机程序而实现所述获取通过组 态屏获取的需要升级的文件包所处理后形成的且通过Ymodem协议发送的第一 帧数据步骤时,具体实现如下步骤:

由组态屏读取U盘文件的文件名;由组态屏根据所述文件名判断是否有符 合要求的程序文件;若有符合要求的程序文件,则由组态屏读取程序文件存储 到内部存储器中;由组态屏计算符合要求的程序文件的程序文件大小以及校验 码;由组态屏判断符合要求的程序文件的程序文件大小以及校验码是否正确; 若符合要求的程序文件的程序文件大小以及校验码正确,则由组态屏对符合要 求的程序文件进行数据处理,以形成第一帧数据;由组态屏通过Ymodem协议 发送所述第一帧数据,以获取通过组态屏获取的需要升级的文件包所处理后形 成的且通过Ymodem协议发送的第一帧数据。

在一实施例中,所述处理器在执行所述计算机程序而实现所述由组态屏对 符合要求的程序文件进行数据处理,以形成第一帧数据步骤之后,还实现如下 步骤:

由组态屏对符合要求的程序文件进行打包和分割,以得到分割后的数据; 将所述程序文件的程序文件名、校验码、程序文件大小以及帧头写入第一帧数 据内。

在一实施例中,所述处理器在执行所述计算机程序而实现所述判断当前接 收的数据是否是最后一帧数据步骤之后,还实现如下步骤:

若当前接收的数据不是最后一帧数据,则执行所述回复设定内容至组态屏, 以使得组态屏通过Ymodem协议发送下一帧数据。

在一实施例中,所述处理器在执行所述计算机程序而实现所述判断当前是 否接收到下一帧数据步骤之后,还实现如下步骤:

若当前没有接收到下一帧数据,则执行所述运行第一区的现有的程序。

在一实施例中,所述处理器在执行所述计算机程序而实现所述判断当前是 否接收到组态屏程序发送的程序升级标志步骤之后,还实现如下步骤:

若当前没有接收到组态屏程序发送的程序升级标志,则执行所述运行第一 区的现有的程序。

所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示 例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现, 为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地 描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决 于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用 来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范 围。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可 以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例 如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划 分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特 征可以忽略,或不执行。

本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。 本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外, 在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各 个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使 用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软 件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干 指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等) 执行本发明各个实施例所述方法的全部或部分步骤。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。 因此,本发明的保护范围应以权利要求的保护范围为准。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:应用异常处理方法、装置以及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!