CN106030539A - 软件搭载设备和软件更新方法 - Google Patents
软件搭载设备和软件更新方法 Download PDFInfo
- Publication number
- CN106030539A CN106030539A CN201480075765.XA CN201480075765A CN106030539A CN 106030539 A CN106030539 A CN 106030539A CN 201480075765 A CN201480075765 A CN 201480075765A CN 106030539 A CN106030539 A CN 106030539A
- Authority
- CN
- China
- Prior art keywords
- program
- cycle
- command string
- software
- execution
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
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)
- Debugging And Monitoring (AREA)
Abstract
本发明是为了在较少的存储区域实现软件的更新而完成的,具有软件搭载设备1,其特征在于,具有:存储部,其存储了第1程序(100)和第2程序(200),其中,第1程序(100)控制与设备连接的器件14,第2程序(200)的程序大小比第1程序(100)小,包含第1程序(100)的多个功能中的一部分功能;和控制部,其与存储部连接,在受理了第1程序(100)的更新请求的情况下,停止第1程序的执行,改写更新第1程序(100),并且,在第1程序的更新中,执行第2程序的一部分功能。
Description
技术领域
本发明涉及软件搭载设备中的软件更新方法。
背景技术
在能够通过互联网等通信手段下载并更新软件的信息设备中,要求一边继续设备的动作一边同时进行软件的更新。
针对这种要求,提出了预先确保用于保存包括修正程序在内的所有更新程序的区域的方法。
在该方法中,在执行现行程序的状态下将更新程序下载到预先确保的区域。然后,在下载结束后,从现行程序替换为更新程序。
在专利文献1中,提出了下述这样的方法:在多个OS(Operating System:操作系统)在同一H/W上进行动作的环境下,调整在各个OS的软件更新时所执行的处理内容相同的处理的执行顺序,以使得并列执行的时间缩短。
在专利文献2中,提出了下述这样的方法:具有用于判断设备的使用和不使用时的单元,在不使用时自动从服务器下载软件。
在专利文献3中,提出了下述这样的方法:能够在通常状态和待机状态之间进行切换,并在该待机状态下进行应用的下载,其中,通常状态是通常的通电状态,可执行应用,在待机状态下,限制电力消耗且不执行应用。
现有技术文献
专利文献
专利文献1:日本特开2012-181578号公报
专利文献2:日本特开2012-018657号公报
专利文献3:日本特开2013-099557号公报
发明内容
发明要解决的课题
在现有的软件搭载设备中,需要预先准备与成为更新对象的程序同等的空闲存储区域。在现有的软件搭载设备中,在接收到更新的通知后,将更新程序下载到所述空闲存储区域。然后,在下载完成后,从现有程序切换到更新程序。
因此,在现有的软件搭载设备中,存在另外需要与软件的更新规模对应的存储区域、存储区域的成本增加的课题。
用于解决问题的手段
本发明是为了解决上述那样的课题而完成的,提供软件搭载设备,其特征在于,存储部,其存储了第1程序和第2程序,其中,所述第1程序控制与设备连接的器件,所述第2程序的程序大小比所述第1程序小,包含所述第1程序的多个功能中的一部分功能;和控制部,其与所述存储部连接,在受理了所述第1程序的更新请求的情况下,停止所述第1程序的执行,改写更新所述第1程序,并且,在所述第1程序的更新中,执行所述第2程序的所述一部分功能。
发明的效果
本发明能够以较少的存储区域进行软件的更新。
附图说明
图1是本发明实施方式中的系统结构图。
图2是本发明实施方式中的软件搭载设备的硬件结构图。
图3是在本发明实施方式1中的软件搭载设备上进行动作的软件结构图。
图4是本发明实施方式中的程序切换部的结构图。
图5是示出本发明实施方式1中的整体处理的动作的流程图。
图6是示出本发明实施方式1中的周期执行命令串的提取例的图。
图7是本发明实施方式1中的执行命令的示例。
图8是示出本发明实施方式1中的从主程序向子程序的切换的图。
图9是在本发明实施方式2中的软件搭载设备上进行动作的软件结构图。
图10是示出本发明实施方式2中的整体处理的动作的流程图。
图11是示出本发明实施方式2中的周期输出模式的提取的示例的图。
图12是示出本发明实施方式2中的从主程序向子程序的切换的图。
图13是在本发明实施方式3中的软件搭载设备上进行动作的软件结构图。
图14是示出本发明的实施方式3中的整体处理的动作的流程图。
图15是示出包含本发明实施方式3中的NOP的周期输出模式的提取的示例的图。
图16是示出本发明实施方式3中的针对周期执行命令串内的无处理时间的扩展处理的追加的示例的图。
具体实施方式
实施方式1.
图1是本发明实施方式中的系统结构图。本实施方式中的系统由软件搭载设备1、软件发布服务器2和网络3构成。软件搭载设备1是白色家电等嵌入设备或个人计算机等,通过网络进行软件的下载以及对所下载的软件进行更新。软件发布服务器2具有通过网络对软件搭载设备1发布更新程序(软件)的功能。网络3是互联网等通信手段。网络3可以是无线,也可以是有线。
图2是本发明的实施方式中的软件搭载设备1的硬件结构图。图2中,软件搭载设备1除CPU10(Central Processing Unit)、ROM11(Rrad Only Memory)、RAM12(Random Access Memory)外,还具有通信模块13、器件14、LED(Light EmittingDiode)15、电子蜂鸣器16、定时器17、电源开关18等多个硬件。
ROM11提供用于保存程序命令串和固定数据的区域。闪存等相当于ROM11,能够改写所写入的程序内容。
RAM12提供用于保存和参照程序要使用的数据的作业区域。
通信模块13通过互联网等网络基础设施在通信设备彼此之间进行数据的收发。
器件14是软件搭载设备1所具有的器件。作为器件的一例,可以列举出用于使冰箱的风扇、压缩机、空调的风扇、百叶窗等进行动作的步进电机、PWM(Pulse WidthModulation)电机等。另外,在图2的软件搭载设备1中,虽然仅记述了1个器件14,但也可以由多个器件构成。
LED15是根据点亮、闪烁等的光的模式输出来向用户通知设备的动作情况等的半导体元件。
电子蜂鸣器16是利用电子音响的鸣动来向用户通知设备的动作情况的设备。
定时器17除了测量时刻外,还测量执行程序命令的定时及针对器件14的输出定时等。
电源开关18是用于操作软件搭载设备1的电源的按钮,该开关的搭载位置可以是主体配件及遥控器等。
图3是在本发明实施方式中的软件搭载设备1上进行动作的软件的整体结构图。这些软件存储于ROM11或RAM12,由作为控制部的CPU10执行。在图3中,主程序(第1程序)100是以作为软件搭载设备1的产品的功能为特征的程序,平时,该主程序100进行与软件搭载设备1连接的器件的控制。
子程序200具有当产生针对主程序100的更新请求时、代替主程序100执行器件的控制的命令,具有与主程序100的更新相关的软件模块。
程序切换部300是这样的程序:当从软件发布服务器2等的外部接收到针对主程序100的更新请求、或者对外部进行更新请求的询问、其结果是接收到更新请求时,对子程序200指示更新。此外,程序切换部300具有这样的功能:在针对主程序100的更新完成后,结束利用子程序200执行的器件的控制,使器件的控制返回至已替换为更新程序的主程序100。
首先,对主程序100的详细情况进行说明。OS110是用于使主程序100动作的基本软件。在该OS110上进行动作的应用、应用a(120a)、应用b(120b)、应用n(120n)是安装有软件搭载设备1的各个功能的程序。此外,OS100中所嵌入的驱动a(130a)、驱动b(130b)、驱动m(130m)是器件驱动,并且是用于控制软件搭载设备1所具有的硬件(器件)的程序。
接下来,对子程序200的详细情况进行叙述。调度部210受理来自程序切换部300的动作指示。动作指示有两种,第一种是用于调查主程序100的动作情况的解析指示。第二种是这样的更新执行指示:执行利用更新程序来替换主程序100的内容的更新作业以及代替更新作业中的主程序100来执行器件的控制。
在接收到解析指示时,调用调度部210。被调用的解析部220收集主程序100的执行命令,根据所收集的执行命令的串(执行命令串)对执行命令的周期性进行模式判定。解析部220根据该模式判定,提取CPU10周期性地执行的命令组,将其作为周期执行命令串存储于存储区域230。解析部220在结束解析后通知程序切换部300已完成。
存储区域230是用于保存由解析部220提取的周期执行命令串的区域(存储部),并且是由子程序200确保区域而得到的ROM11、RAM12上的存储区域。
接下来,对与主程序100的更新相关的模块进行说明。调度部210当接收到更新执行指示时调用执行部240和更新部250。执行部240是这样的模块:执行预先从主程序100的软件动作中提取并保存在存储区域230的周期程序(第2程序)。另一方面,更新部250是这样的模块:在由执行部240执行从主程序100的软件动作中提取的周期程序的期间,经由通信模块13从软件发布服务器2接收更新程序,进行主程序100的改写更新。
接下来,对程序切换部300的详细情况进行说明。程序切换部300是对主程序100和子程序200发出启动或停止的指示的程序。当软件搭载设备1启动时,程序切换部300首先被调用,使CPU10执行主程序100。
图4是表示程序切换部300内部的软件结构的图。在图4中,更新请求接收部310接收软件发布服务器2对软件搭载设备1在发布更新程序之前发送的更新请求。该接收是经由图2的通信模块13进行的。当更新请求接收部310接收到更新请求时,经由程序启动停止部320对子程序200发送解析指示。程序启动停止部320对主程序100和子程序200发送动作指示。
接收到解析指示的子程序200执行主程序100的解析,在解析结束时,返回解析完成通知。接收到该解析完成通知的周期定时同步部330经由程序启动停止部320对主程序100发送停止指示,对子程序200发送更新执行指示。
接收到更新执行指示的子程序200执行主程序100的更新处理,在更新结束时,将更新完成通知发送给更新完成接收部340。接收到该通知的更新完成接收部340经由程序启动停止部320对子程序200发送停止的指示,对主程序100发送执行指示。另外,由于程序切换部300在刚刚启动后就启动主程序100,因此,通过重新启动软件搭载设备1,能够使主程序100启动。
接下来,使用图5对本实施方式1中的整体处理的动作进行说明。在此,以在软件搭载设备1执行器件控制的过程中从软件发布服务器2发出了软件更新通知的情况为例进行说明。
在本实施方式中,假设软件发布服务器2从外部(未图示)取得主程序100的更新程序。关于取得方法,可以从另外的网络接收,也可以通过外部存储装置或介质取得。
此外,假设软件发布服务器2管理在软件搭载设备1中使用的主程序100的版本,在取得更新程序后,进行比较,仅在判断为需要更新的情况下将更新请求发送给软件设备1。
另外,也可以是,软件发布服务器2将接收到的更新程序全部发送给软件搭载设备1,由软件搭载设备1判定是否需要更新。
除此之外,也可以是,软件搭载设备1询问有无更新程序,仅在存在更新程序的情况下,软件发布服务器2发送更新请求。
首先,更新请求接收部310从软件发布服务器2接收软件的更新请求(S101)。接下来,更新请求接收部310经由程序启动停止部320对子程序200发送调查主程序100的动作情况的解析指示。
作为对子程序200发送解析指示的方法,从程序启动停止部320可以调用可判断为解析指示的参数和调度部210。此外,也可以预先准备能够由程序启动停止部320和调度部210共同访问的存储区域,调度部210轮询该区域,程序启动停止部320变更该区域的值,由此,对子程序200发送解析指示。
接收到解析指示的调度部210调用解析部220。解析部220进行主程序100的解析。在进行解析时,解析部220记录主程序100进行动作的执行命令(S102)。
为了取得主程序100进行动作的执行命令的信息,存在下述这样的方法:从CPU10的程序计数寄存器参照保存有机器语言的存储器;使在主程序100上进行动作的应用(120a~120n)和OS110的执行命令以机器语言的形式输出至存储器上的区域或日志文件中,并对其进行参照。
解析部220解析所记录的执行命令的串(执行命令串),从执行命令串中提取周期执行命令串,保存到存储区域230(S103)。使用图6和图7对执行命令串的解析进行说明。
图6是表示本实施方式中的周期执行命令串的提取例的图。以下,虽然对检测周期性地执行的命令并提取在更新处理中执行的命令的方法进行说明,但本发明并不限定于此,也可以使用检测与预先确定的功能对应的命令并提取命令的方法。例如,也可以将表示主程序100中的指定范围的地址预先存储于ROM11,或者由软件搭载设备1从发布服务器2取得表示主程序100中的特定范围的地址,确定并提取命令。
在图6中,执行命令610a~610m是CPU10所执行的主程序100的机器语言。在图6中,示出了沿着执行时刻自左开始依次执行的情况。另外,将多个执行命令汇总而成的执行命令称作执行命令串。在图6的示例中,将执行命令610a~610m汇总而成的执行命令称作执行命令串610。周期执行命令串620是作为对执行命令串610(执行命令610a~610m)进行解析的结果而周期性地重复的执行命令串。
作为从主程序100收集执行命令的方法,也可以将在主程序100上进行动作的应用(120a~120n)正在执行的命令输出至日志,由解析部220参照该命令。此外,也可以将OS110正在执行的命令输出至日志,由解析部220参照该命令。
解析部220进行所收集的执行命令的记录,进行解析。如图6所示,像A、B、C、D、A、B、C、D、A、B、C、D、A那样,在某一规定期间内连续地检测同一重复模式的情况下,例如,在该情况下,将A、B、C、D作为周期执行命令串620进行提取。然后,解析部220将提取出的周期执行命令串620保存到存储区域230。
作为解析对象的规定期间和重复模式的数量取决于由软件搭载设备1执行的所有应用(120a~120n)以何种程度周期性地动作,因此,将预先统计调查而得到的、例如100毫秒的期间、模式数量为5次等的值作为预先给出的条件来使用。
另外,关于用于判定周期性的模式提取算法,也可以利用在自然信息处理等中使用的模式识别算法等算法。
图7中示出执行命令的示例。收集数据701是解析部220所收集的执行命令的集合,解析数据702表示在解析部220对收集数据701进行解析之后提取的周期执行命令串。
收集数据701和解析数据702的左侧的列是用于识别执行命令的执行ID。另外,在图7的执行命令的栏中,为了容易理解,用汇编语言(助记符)进行了标示,但实际上代入了机器语言。
例如,像收集数据701那样,在重复连续地产生相同执行命令的情况下,解析部220提取执行ID0x3502至执行ID0x3505的期间以及执行ID0x3506至执行ID0x350B的期间作为周期执行命令串。
在无法提取周期执行命令串的情况下(S104:否),再次进行执行命令的记录(S102)。虽然在图5中未示出,但也可以在进行执行命令的记录(S102)的重复时,不立刻进行重复,而是暂时等待后再执行。暂时等待的时间可以预先确定,也可以使用和更新程序一起发送的值。
在已提取周期执行命令串(S103)的情况下(S104:是),解析部220将解析完成通知发送给程序切换部300。接收到解析完成通知的周期定时同步部330进行从主程序100向子程序200的切换。首先,周期定时同步部330基于从解析部220接收到的周期执行命令串的信息,计算用于进行从主程序100向周期执行命令串的执行位置的切换的定时(S105)。
作为计算定时的方法,存在以下的方法。作为解析完成通知,解析部220发送周期执行命令串的最初的执行命令的执行ID、该最初的执行命令被主程序100执行的时刻以及执行周期执行命令串所花费的周期时间,或者,除了解析完成通知外,还发送周期执行命令串的最初的执行命令的执行ID、该最初的执行命令被主程序100执行的时刻以及执行周期执行命令串所花费的周期时间。另外,在使用该方法的情况下,在利用解析部220收集主程序100的执行命令时还需要预先记录该时刻。
周期定时同步部330根据当前的时刻(例如t1)、主程序100最后执行的时刻(t0)和执行周期执行命令串所花费的周期时间(tc)计算接下来要执行的周期执行命令串的最初的执行命令的预测时刻(tn)。然后,周期定时同步部330在预测时刻(tn)进行从主程序100向子程序200的切换(S106)。
图8示出从主程序100向子程序200的切换的示例。参照图8的示例,周期执行命令串620的A在主程序100最后执行的时刻t0加上周期时间tc而得到的tn停止主程序100的执行,对子程序200发出周期执行命令串620的执行指示。
存在这样的方法:在周期定时同步部330进行从主程序100向子程序200的切换时,使用程序启动停止部320。程序启动停止部320对主程序100发送停止动作指示。
关于发送停止动作指示的方法,可以在主程序100侧预先准备用于接收停止指示的应用,从程序启动停止部320调用,也可以预先准备能够由程序切换部300和主程序100共同访问的存储区域,程序启动停止部320通过变更该区域的值来对主程序100发送停止动作指示。
然后,针对子程序200,程序启动停止部320将更新执行指示发送给调度部210。
接收到更新执行指示的调度部210同时执行执行部240和更新部250。一方的执行部240参照存储区域230开始执行周期执行命令串。另外,执行部240重复地持续执行周期执行命令串。
另一方的更新部250经由通信模块13下载更新程序,进行主程序100的改写更新(S107)。在进行更新的期间,由执行部240执行软件搭载设备1所需要的一部分处理,由此,为了更新程序,无需新的存储器,能够直接将更新程序下载到主程序100。
更新部250在更新程序的下载完成之后,将完成通知发送给程序切换部300(S108)。
接收到完成通知的程序切换部300进行设备的停止(S109),进行软件搭载设备1的再启动(S110)。另外,根据与软件搭载设备1连接的器件14,例如在启动时需要时间的器件等的情况下,器件14的动作会暂时中断,因此,程序切换部300也可以不自动进行再启动,而是通过手动地操作电源开关18来调整再启动的定时。
软件搭载设备1再启动之后,程序切换部300启动被更新的主程序100(S111)。
通过形成为上述那样的结构,限定为主程序100所具有的多个功能中的、在更新中也需要执行的一部分功能,将程序的一部分复制到存储装置中进行使用。因此,被复制的程序的尺寸比主程序100小,能够节省软件的更新所需的存储区域的容量。此外,能够在继续针对器件14的动作的同时进行更新作业。
另外,在本实施方式中,解析部220在从软件发布服务器2接收到软件的更新请求之后进行周期执行命令串的提取,但也可以从接收更新请求之前进行周期执行命令串的提取。此外,也可以不利用解析部220进行周期执行命令串的提取,而是在更新主程序100的期间,将软件搭载设备1控制器件14所需的周期执行命令串预先保存到存储区域230。此时,周期定时同步单元330将对主程序100发送停止指示的定时也一并预先保存到存储区域230。
关于软件搭载设备1控制器件14所需的周期执行命令串,可以在工厂出货时预先存入存储区域230,也可以事后写入。或者,也可以与更新部250从软件发布服务器2接收的更新程序一同接收,保存到存储区域230。
实施方式2.
在本实施方式中,对参照与设备连接的器件14的动作以提取重复动作的处理的情况进行说明。
图9是本发明的实施方式中的、在软件搭载设备1上进行动作的软件的整体结构图。
图9中,周期输出解析部920是监视主程序100的器件驱动的动作的软件,用于根据该动作的执行顺序和定时来判别该动作的周期性,提取周期输出模式,将能执行相同的周期输出的周期执行命令串保存到存储区域230。
图9中,与图3相同的标号表示相同或相应的部分,对于除周期输出解析部920以外的部分,进行与实施方式1中使用的图3中记载的部分相同的动作。
接下来,使用图10对本实施方式2中的整个动作进行说明。与实施方式1时相同,以在软件搭载设备1执行过程中从软件发布服务器2发出软件更新通知的情况为例进行说明。
关于本实施方式2中的动作,与在实施方式1中叙述的顺序相同,以下,仅对与在实施方式1中说明的动作之间的差异进行说明。
更新请求接收部310发送调查主程序100的动作情况的解析指示。另外,该指示能够通过下述方式来实现:通过从程序启动停止部320调用调度部210来发送解析指示,或者,也可以通过下述方式来实现:预先准备能够由程序启动停止部320和调度部210共同访问的存储区域,调度部210轮询该区域,程序启动停止部320变更该区域的值,由此,对子程序200发送解析指示。
接收到输出的解析指示的调度部210调用周期输出解析部920来执行。周期输出解析部920进行主程序100的解析。在进行解析时,周期输出解析部920监视在主程序100上动作的器件驱动(驱动a~驱动m),进行这些器件驱动的执行顺序(输出命令)和它们的执行时刻的记录(S202)。
要取得输出命令的信息,存在下述方法:轮询并参照被分配了用于进行器件控制的器件寄存器的存储区域的方法、以及预先设计器件驱动以使得在进行对器件的控制时发生中断,并利用周期输出解析部920接收该中断的方法。
另外,周期输出的记录目的地可以是周期输出解析部920临时准备的RAM12上的存储区域,也可以是存储区域230。
周期输出解析部920解析所记录的周期输出,从预先准备好的执行命令串一览中提取能执行相同的周期输出的执行命令串,作为周期执行命令串保存到存储区域230(S203)。关于周期执行命令串,与实施方式1相同。
另外,也可以将预先准备好的执行命令串设为只有1个,将其作为重复执行的周期执行命令串。在重复执行时,作为传递给执行命令串的参数,也可以传递时刻、写入存储器的地址、写入值、写入值的时间。使用图11对周期输出的解析进行说明。
图11是表示本实施方式中的周期输出模式的提取例的图。图11中,器件输出记录1110a~1110i是针对器件14的输出模式和其执行时刻的记录。在图11中,示出了沿着执行时刻自左开始依次执行的情况。周期输出模式1120是对器件输出记录1110a~1110i进行解析的结果、周期性地重复的输出模式。执行命令串一览1130是用于执行特定的输出模式的执行命令串的一览。预先调查发出何种输出命令,预先准备进行相同输出的执行命令串。图11中,示出了输出模式α的情况下的执行命令串f_E、输出模式β的情况下的执行命令串f_F、输出模式γ的情况下的执行命令串f_G、输出模式Δ的情况下的执行命令串f_H的示例。
例如,设存在电机X和电机Y作为器件14,对电机X输出1的状态为a毫秒(将此作为输出模式α),对电机X输出2的状态为b毫秒(将此作为输出模式β),对电机Y输出3的状态为c毫秒(将此作为输出模式γ),像输出模式α、输出模式β、输出模式γ、输出模式α、输出模式β、输出模式γ那样,在某一规定期间内连续地检测出同一重复模式的情况下(图11的器件输出记录的示例),提取输出模式α、输出模式β、输出模式γ作为周期输出模式1120。
周期输出解析部920通过参照执行命令串一览1130生成用于执行所提取的周期输出模式1120的周期执行命令串的组合1140。然后,周期输出解析部920将周期执行命令的组合1140保存到存储区域230。
另外,作为解析对象的规定期间和重复输出模式的数量取决于由软件搭载设备1执行的所有器件驱动以何种程度周期性地动作,因此,将预先统计调查而得到的结果、例如100毫秒的期间、输出模式数量为5次等的值作为已给出的条件来使用。
另外,关于用于判定周期性的模式提取算法,也可以利用在自然信息处理等中使用的模式识别算法等算法。
此外,对器件访问的时间存在根据器件的情况(温度、湿度等环境以及随时间老化)进行变动的情况。因此,例如,如果是上述的示例,只要遵守α、β、γ这样的输出模式,对于所述输出模式各自的执行期间,即使稍稍有所增减也是允许的。允许的范围取决于与软件搭载设备1连接的器件,因此,将预先统计调查而得到的结果、例如增减1%以内等的值作为已给出的条件来使用。
返回图10的处理流程的说明,在无法指定周期输出模式的情况下(S204:否),监视在主程序100上动作的器件驱动(驱动a~驱动m),再次进行这些器件驱动的执行顺序(输出命令)和它们的执行时刻的记录(S202)。虽然在图10中未示出,但也可以在进行执行顺序和执行时刻的记录(S202)的重复时,不立刻进行重复,而是暂时等待之后再执行。暂时等待的时间可以预先确定,也可以使用和更新程序一起发送来的值。
在周期输出模式的指定(S203)已完成的情况下(S204:是),周期输出解析部920将解析完成通知发送给程序切换部300。接收到解析完成通知的周期定时同步部330进行从主程序100向子程序200的切换。首先,周期定时同步部330基于从周期输出解析部920接收到的周期输出模式的信息,计算用于进行从主程序100向执行部240进行执行的切换的定时(S205)。
作为计算定时的方法,存在以下的方法。作为解析完成通知,周期输出解析部920发送周期执行命令串的组合1140的最初的执行命令串的执行ID、与该最初的执行命令串相当的器件14的输出被主程序100执行的时刻以及执行周期执行命令串所花费的周期时间,或者,除解析完成通知外,还发送周期执行命令串的组合1140的最初的执行命令串的执行ID、与该最初的执行命令串相当的器件14的输出被主程序100执行的时刻以及执行周期执行命令串所花费的周期时间。另外,在使用该方法的情况下,在利用周期输出解析部920收集主程序100的输出模式时还需要预先记录其时刻。
周期定时同步部330根据当前的时刻(例如t1)、主程序100最后输出输出模式的时刻(t0)和执行周期执行命令串的组合1140所花费的周期时间(tc)计算接下来要执行的周期执行命令串的最初的执行命令的预测时刻(tn)。然后,周期定时同步部330在预测时刻(tn)进行从主程序100向子程序200的切换。(S206)。
图12中示出从主程序100向子程序200的切换的示例。参照图12的示例,周期输出模式1120的α在主程序100最后执行的时刻t0加上周期时间tc而得到的tn停止主程序100的执行,而对子程序200发出周期执行命令串的组合1140的执行指示。
存在这样的方法:在周期定时同步部330进行从主程序100向子程序200的切换时,使用程序启动停止部320。程序启动停止部320对主程序100发送停止动作指示。
关于发送停止动作指示的方法,可以在主程序100侧预先准备用于接收停止指示的应用,从程序启动停止部320调用,也可以预先准备能够由程序切换部300和主程序100共同访问的存储区域,程序启动停止部320通过变更该区域的值来对主程序100发送停止动作指示。
然后,针对子程序200,程序启动停止部320将更新执行指示发送给调度部210。
接收到该指示的调度部210同时执行执行部240和更新部250。执行部240参照存储区域230开始周期执行命令串的执行。另外,执行部240重复继续执行周期执行命令串。
关于之后的处理,与实施方式1中叙述的顺序相同。
通过形成为上述那样的结构,能够节省软件的更新所需的存储区域的容量。此外,能够在继续针对器件的动作的同时进行更新作业。
另外,在本实施方式中,周期输出解析部920在从软件发布服务器2接收到软件的更新请求之后再进行周期输出模式的提取,但也可以从接收更新请求之前进行周期输出模式的提取。
实施方式3.
在本实施方式中,对针对解析部220进行了解析的周期执行命令串620解析无处理期间并插入用户预先静态地准备的扩展处理程序的情况进行说明。
通过插入用户预先静态地准备的扩展处理程序,能够在执行周期执行命令串620的过程中执行扩展处理程序。
例如,只要预先静态地准备遥控器等外部中断的受理或LED的闪烁程序作为扩展处理程序,能够在执行周期执行命令串620的过程中执行遥控器的受理处理或LED的闪烁处理。
图13是本发明的实施方式中的、在软件搭载设备1上进行动作的软件的整体结构图。
在图13中,扩展处理存储区域2040是用户预先静态地准备的扩展处理程序。扩展处理程序是在执行周期执行命令串620的过程中想要进一步执行的程序,也可以是所述的遥控器等外部中断的受理或LED的闪烁程序等。另外,也可以使得能够经由外部存储装置或通信模块取得在扩展处理存储区域2040准备的扩展处理程序。
在图13中,无处理期间提取部2010是这样的部分:从保存在存储区域230的周期执行命令串中提取连续地持续无处理的期间(无处理期间),保存到无处理期间存储区域2020。
另外,在本实施方式中,虽然将无处理期间存储区域2020和扩展处理存储区域2040形成为与存储区域230分开的结构,但也可以是将保存在无处理期间存储区域2020和扩展处理存储区域2040的内容保存到存储区域230的结构。
在图13中,扩展处理分割插入部2030是这样的部分:从无处理期间存储区域2020参照无处理期间,对保存在扩展处理存储区域2040的扩展处理命令串按无处理期间的长度进行分割,以其分割数量复制周期执行命令串,针对复制成的各个周期执行命令串,将分割后的扩展处理命令串复制到其无处理期间部分,将这些扩展处理命令串作为1个周期执行命令串保存到存储区域230。
在图13中,与图3相同的标号表示相同或相当的部分,对于除无处理期间提取部2010、无处理期间存储区域2020、扩展处理分割插入部2030、扩展处理存储区域2040以外的部分,进行与实施方式1中使用的图3中记载的部分相同的动作。
接下来,使用图14对本实施方式3中的整个动作进行说明。与实施方式1时相同,以在软件搭载设备1执行过程中从软件发布服务器2接收到软件更新通知的情况为例进行说明。
关于本实施方式3中的动作,与在实施方式1中叙述的顺序相同,以下,仅对与在实施方式1中进行了说明的动作之间的差异进行说明。
无处理期间提取部2010是这样的部分:针对保存在存储区域230的周期执行命令串进行无处理期间的提取。
无处理期间是指,汇编程序中的NOP(No Operation:非操作指令)命令等、CPU对计算处理和寄存器不进行访问的状态所持续的期间。
无处理期间提取部2010将该无处理期间的信息保存到无处理期间存储区域2020(S301)。根据以上的处理可知,在周期执行命令串中,在哪个定时无处理。
无处理期间提取部2010将无处理期间的信息保存到无处理期间存储区域2020之后,调用扩展处理分割插入部2030。
扩展处理分割插入部2030是这样的部分:在上述周期执行命令串的无处理期间复制保存在扩展处理存储区域2030的扩展处理程序,作为新的周期执行命令串保存到存储区域230(S302)。
更新部250在更新程序的下载完成之后,确认存储区域230中所保存的周期执行命令串,判断在中断处理中是否存在外部中断处理(S303)。关于判断的方法,可以直接确认周期执行命令串的内部,也可以是,扩展处理分割插入部2030在更新周期执行命令串时将表示该情况的信息保存到存储区域230的一部分。
例如,在欲利用遥控器等的外部中断来中断周期执行而再启动的情况下,将接收外部中断信号的处理定义为扩展处理。
更新部250在接收到外部中断信号的情况下(S304:是),将更新程序的下载完成通知发送到程序切换部300,程序切换部300进行设备的停止,实施再启动。
在不接收外部中断信号的情况下(S304:否),更新部250待机直至受理外部中断信号为止。另外,虽然未图示,更新部250继续待机直至受理外部中断信号为止,因此,也可以在经过了预先设定好的时间的情况下,自动使处理前进至S108。
图15和图16是表示本实施方式的无处理期间提取部2010中的无处理期间的提取和对无处理期间追加扩展处理的示例的图。
在图15中,执行命令串2110a~2110m是在收集主程序100的执行命令而得到的执行命令串、周期性地像2110c、2110g和2110k那样出现NOP的示例。
关于提取重复模式的方法,与实施方式1相同,将所提取的周期执行命令串作为第1周期执行命令串2120。第1周期执行命令串2120中包含NOP2120nop。
使用图16对无处理期间提取部2010提取无处理期间并保存扩展处理时的详细情况进行说明。在本实施方式中,作为保存在扩展处理存储区域2040的扩展处理,以存在命令长度为topt的扩展处理2130的情况为例。
无处理期间提取部2010从所提取的周期执行命令串2120中提取连续的NOP处理的连续期间2120nop,保存到无处理期间存储区域2020。
接下来,扩展处理分割插入部2030参照保存在扩展处理存储区域2040的扩展处理2130,比较无处理期间2120nop及其命令长度。
此时,在扩展处理2130的命令长度topt比无处理期间2020nop的命令长度tnop长的情况下,按照tnop对扩展处理2130进行时间分割。
例如,将进行了时间分割的扩展处理分别作为扩展处理2131(扩1)、扩展处理2132(扩2)进行保存。
接下来,扩展处理分割插入部2030复制周期执行命令串2120,准备与上述时间分割数量对应的量(该情况下为2个),生成周期执行命令串2141、周期执行命令串2142。
然后,针对各个周期执行命令串的无处理期间2120nop,复制扩展处理2131、扩展处理2132。另外,周期执行命令串2141的无处理期间2120nop和扩展处理2131的处理时间相同,因此,正好匹配,但周期执行命令串2141的无处理期间2120nop和扩展处理2132的处理时间不一致,因此,在附图的示例中,NOP2133多余。
接下来,扩展处理分割插入部2030连结所复制的周期执行命令串,保存到存储区域230。在本实施方式的示例中,连结周期执行命令串2141和周期执行命令串2142,生成1个周期执行命令串2150,保存到存储区域230。
关于之后的处理,与实施方式1中叙述的顺序相同。
另外,关于用于进行无处理期间的提取的模式提取算法,也可以利用在自然信息处理等中使用的模式识别算法等算法。
或者,也可以在扩展处理中保存用户的任意的程序。例如,如果是使LED闪烁的程序,可以在更新程序的下载中使产品所附带的LED闪烁。
例如,如果是接收遥控器的中断并再启动(跳转至复位向量)的程序,可以在更新程序的下载完成之后接收遥控器的信号,使周期执行在用户的定时停止并再启动。
另外,虽然扩展处理可以是用户的任意的程序,但不得是OS的系统呼叫或调用原有程序库等、依赖于OS或原有程序库的程序。这是因为,周期处理只有根据周期执行命令串才成立,不包含OS等的处理。
通过形成为上述的结构,能够节省软件的更新所需的存储区域的容量。此外,能够在继续针对器件的动作的同时进行更新作业。此外,在软件的更新中还可以执行预先准备好的任意的程序。
另外,在上述的说明中,虽然将存储区域230作为存储部,但也可以将存储主程序100、子程序200、程序切换部300的区域一并作为存储部。
附图说明
1:软件搭载设备;2:软件发布服务器;3:网络;10:CPU;11:ROM;12:RAM;13:通信模块;14:器件;15:LED;16:电子蜂鸣器;17:定时器;18:电源开关;100:主程序;110:OS;120a~120n:应用;130a~130m:器件驱动;200:子程序;210:调度部;220:解析部;230:存储区域;240:执行部;250:更新部;300:程序切换部;310:更新请求接收部;320:程序启动停止部;330:周期定时同步部;340:更新完成接收部;610a~610m:执行命令串;620:周期执行命令串;701:示出解析部220所收集的执行命令串的表;702:示出解析部220进行了解析后被提取的周期执行命令串的表;920:周期输出解析部;1110a~1110i:器件输出记录;1120:周期输出模式;1130:执行命令串一览;1140:周期执行命令串的组合;2010:无处理期间提取部;2020:无处理期间存储区域;2030:扩展处理分割插入部;2040:扩展处理存储区域;2110a~2110h:执行命令串;2120:nop无处理期间;2130:扩展处理命令串;2131:扩展处理命令串;2132:扩展处理命令串;2133:NOP;2141:周期执行命令串;2142:周期执行命令串;2150:周期执行命令串。
Claims (6)
1.一种软件搭载设备,其特征在于,所述软件搭载设备具有:
存储部,其存储了第1程序和第2程序,其中,所述第1程序控制与设备连接的器件,所述第2程序的程序大小比所述第1程序小,包含所述第1程序的多个功能中的一部分功能;和
控制部,其与所述存储部连接,在受理了所述第1程序的更新请求的情况下,停止所述第1程序的执行,改写更新所述第1程序,并且,在所述第1程序的更新中,执行所述第2程序的所述一部分功能。
2.根据权利要求1所述的软件搭载设备,其特征在于,
所述控制部参照所述第1程序为了控制器件而正在执行的命令,提取重复执行的命令作为周期执行命令串,并将所提取的周期执行命令串作为所述第2程序存储于所述存储部。
3.根据权利要求1所述的软件搭载设备,其特征在于,
所述控制部针对所述器件,检测重复进行的动作,提取与重复动作的处理对应的多个命令作为周期执行命令串,并将所提取的周期执行命令串作为所述第2程序存储于所述存储部。
4.根据权利要求2所述的软件搭载设备,其特征在于,
所述控制部针对所述周期执行命令串,提取未进行处理的无处理期间,并且将在更新中要执行的扩展处理插入到所述无处理期间中。
5.根据权利要求4所述的软件搭载设备,其特征在于,
所述控制部分割所述扩展处理而插入到多个所述无处理期间中。
6.一种软件更新方法,其特征在于,包括如下的步骤:
发送针对第1程序的更新请求,该第1程序控制与设备连接的器件;
提取周期执行命令串并存储于存储部中,该周期执行命令串用于在更新所述第1程序的期间仅继续进行所述器件的一部分控制;
在受理了所述更新请求的情况下,所述设备停止所述第1程序的执行并执行所述周期执行命令串;
向正在执行所述周期执行命令串的所述设备发送所述第1程序的更新程序;以及
在所述更新程序的下载结束后,所述设备停止所述周期执行命令串的执行,执行被替换为所述更新程序的所述第1程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014036463 | 2014-02-27 | ||
JP2014-036463 | 2014-02-27 | ||
PCT/JP2014/005658 WO2015128914A1 (ja) | 2014-02-27 | 2014-11-11 | ソフトウェア搭載機器及びソフトウェア更新方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106030539A true CN106030539A (zh) | 2016-10-12 |
Family
ID=54008288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480075765.XA Pending CN106030539A (zh) | 2014-02-27 | 2014-11-11 | 软件搭载设备和软件更新方法 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP6042025B2 (zh) |
CN (1) | CN106030539A (zh) |
TW (1) | TW201533664A (zh) |
WO (1) | WO2015128914A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427564A (zh) * | 2017-02-15 | 2018-08-21 | 株式会社电装天 | 控制器和控制程序更新方法 |
CN111026425A (zh) * | 2019-12-11 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 服务更新方法、装置、服务器及介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017169044A (ja) * | 2016-03-16 | 2017-09-21 | 日本電気株式会社 | 設定装置、通信システム、通信装置の設定更新方法及びプログラム |
JP2018081543A (ja) * | 2016-11-17 | 2018-05-24 | セイコーエプソン株式会社 | 表示装置、頭部装着型表示装置、表示装置の制御方法、及び、プログラム |
US20240126528A1 (en) * | 2019-10-18 | 2024-04-18 | Hitachi Astemo, Ltd. | Redundant system and load drive control device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132401A (ja) * | 1998-10-27 | 2000-05-12 | Matsushita Electric Ind Co Ltd | 車載用制御装置 |
CN1864139A (zh) * | 2003-08-05 | 2006-11-15 | 松下电器产业株式会社 | 程序执行装置 |
JP2008158801A (ja) * | 2006-12-22 | 2008-07-10 | Matsushita Electric Works Ltd | 認証装置及び認証システム |
JP2009265923A (ja) * | 2008-04-24 | 2009-11-12 | Mitsubishi Electric Corp | ソフトウェア書き換え装置及びソフトウェア書き換え方法及びソフトウェア書き換えプログラム |
JP2010125925A (ja) * | 2008-11-26 | 2010-06-10 | Toyota Motor Corp | ソフトウェア管理装置 |
CN103064797A (zh) * | 2012-12-21 | 2013-04-24 | 华为技术有限公司 | 数据处理方法和虚拟机管理平台 |
-
2014
- 2014-11-11 JP JP2016504868A patent/JP6042025B2/ja not_active Expired - Fee Related
- 2014-11-11 WO PCT/JP2014/005658 patent/WO2015128914A1/ja active Application Filing
- 2014-11-11 CN CN201480075765.XA patent/CN106030539A/zh active Pending
- 2014-11-14 TW TW103139501A patent/TW201533664A/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000132401A (ja) * | 1998-10-27 | 2000-05-12 | Matsushita Electric Ind Co Ltd | 車載用制御装置 |
CN1864139A (zh) * | 2003-08-05 | 2006-11-15 | 松下电器产业株式会社 | 程序执行装置 |
JP2008158801A (ja) * | 2006-12-22 | 2008-07-10 | Matsushita Electric Works Ltd | 認証装置及び認証システム |
JP2009265923A (ja) * | 2008-04-24 | 2009-11-12 | Mitsubishi Electric Corp | ソフトウェア書き換え装置及びソフトウェア書き換え方法及びソフトウェア書き換えプログラム |
JP2010125925A (ja) * | 2008-11-26 | 2010-06-10 | Toyota Motor Corp | ソフトウェア管理装置 |
CN103064797A (zh) * | 2012-12-21 | 2013-04-24 | 华为技术有限公司 | 数据处理方法和虚拟机管理平台 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427564A (zh) * | 2017-02-15 | 2018-08-21 | 株式会社电装天 | 控制器和控制程序更新方法 |
CN108427564B (zh) * | 2017-02-15 | 2021-04-13 | 株式会社电装天 | 控制器和控制程序更新方法 |
CN111026425A (zh) * | 2019-12-11 | 2020-04-17 | 腾讯科技(深圳)有限公司 | 服务更新方法、装置、服务器及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2015128914A1 (ja) | 2015-09-03 |
TW201533664A (zh) | 2015-09-01 |
JP6042025B2 (ja) | 2016-12-14 |
JPWO2015128914A1 (ja) | 2017-03-30 |
WO2015128914A9 (ja) | 2016-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106030539A (zh) | 软件搭载设备和软件更新方法 | |
US8447707B2 (en) | Automated control of a power network using metadata and automated creation of predictive process models | |
CN106528262B (zh) | 镜像部署方法、装置 | |
US10520935B2 (en) | Distributed control system, control device, control method, and computer program product | |
CN104967619B (zh) | 文件推送方法、装置和系统 | |
CN106708740B (zh) | 脚本测试方法及装置 | |
WO2015139164A1 (zh) | 一种任务调度的方法、装置及设备 | |
EP3451093B1 (en) | Work assistance device, work assistance method, and work assistance program | |
KR20190038750A (ko) | 멀티 타스크 스케줄링 방법, 시스템, 애플리케이션 서버 및 컴퓨터 판독 가능한 저장매체 | |
CN108804697A (zh) | 基于Spark的数据同步方法、装置、计算机设备和存储介质 | |
EP1990700B1 (en) | Method for managing and controlling time of computer system and computer system | |
CN110928553A (zh) | 深度学习模型的部署方法、装置和系统 | |
JP4815195B2 (ja) | ジョブ実行管理方法、ジョブ実行管理システム及びジョブ実行管理プログラム | |
JP2020114178A (ja) | 電力制御装置、電力制御方法及び電力制御プログラム | |
US20200133707A1 (en) | Power efficient workload placement and scheduling in a virtualized computing environment | |
US20160062871A1 (en) | Program information generating system, method, and computer program product | |
CN111181773A (zh) | 面向异构边云协同智能系统的多组件应用的延迟预测方法 | |
CN110083535A (zh) | 一种软件测试方法及装置 | |
CN104424099A (zh) | 软件测试方法及系统 | |
Khelifati et al. | A multi-agent scheduling approach for the joint scheduling of jobs and maintenance operations in the flow shop sequencing problem | |
CN105224453A (zh) | 系统兼容性的自动测试方法及装置 | |
CN106919407B (zh) | 电脑内嵌产品资料同步更新的方法 | |
CN102193884B (zh) | 数据传送电路和方法 | |
CN113759869B (zh) | 智能家电测试方法及装置 | |
JP2009246690A (ja) | ネットワーク負荷分散システム、ネットワーク負荷分散方法、及びネットワーク負荷分散プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20190809 |
|
AD01 | Patent right deemed abandoned |