程序生成装置、程序生成程序以及程序生成方法

文档序号:6362350阅读:167来源:国知局
专利名称:程序生成装置、程序生成程序以及程序生成方法
技术领域
本发明涉及程序生成装置、程序生成程序以及程序生成方法,更详细而言,涉及生成测量由控制设备的控制器执行动作程序的执行状态的测量程序的程序生成装置、程序生成程序以及程序生成方法。
背景技术
已经提出了在使软件的动作状态迁移到其它动作状态时,能够从软件满足的多个状态迁移条件,抽出相互具有排他性的状态迁移条件的软件开发支援装置(例如,参照专利文献I)。专利文献1:日本特开2009-157751号公报

发明内容
但是,在专利文献I公开的技术中,存在如下问题:无法生成能够在减轻对软件的动作造成的影响的同时即时地测量软件的动作状态的变化的测量程序。本发明是基于上述情况而完成的,其目的在于提供一种程序生成装置、程序生成程序、以及程序生成方法等,能够生成在减轻对软件的动作造成的影响的同时即时地测量软件的动作状态的变化的测量程序。为了达成上述目的,本发明提供一种程序生成装置,其特征在于,具备:信息生成单元,生成确定由控制设备的控制器执行的动作程序的配置区域的程序区域确定信息;以及测量处理追加单元,对测量所述动作程序的执行状态的测量程序追加:程序确定处理,根据由所述信息生成单元生成的程序区域确定信息、和所述控制器的程序计数器值,确定由所述控制器执行的动作程序;以及识别信息发送处理,发送识别所确定的所述动作程序的识别信息。根据本发明的程序生成装置、程序生成程序、以及程序生成方法,能够生成在减轻对软件的动作造成的影响的同时即时地测量软件的动作状态的变化的测量程序。


图1是示出本发明的实施方式的执行状态测量系统的一个例子的结构图。图2是示出远程控制装置的一个结构例的硬件结构图。图3是示出终端装置的一个结构例的硬件结构图。图4 (a)是示出终端装置执行的程序生成处理的一个例子的流程图。(b)是示出远程控制装置执行的程序保存处理的一个例子的流程图。图5 (a)是示出远程控制装置具有的功能以及终端装置具有的功能的一个例子的功能框图。(b)是示出自动生成部的一个结构例的图。图6是示出终端装置显示的程序组装画面的一个例子的图。
图7是示出终端装置执行的自动程序生成处理的一个例子的流程图。图8是示出远程控制装置执行的程序执行处理的一个例子的流程图。图9 (a)是示出构成识别标记的指令部以及数据部的一个例子的图。(b)是示出远程控制装置输出的信号的一个例子的图。图10是示出远程控制装置执行的识别标记输出处理的一个例子的流程图。图11是示出终端装置执行的状态测量处理的一个例子的流程图。图12 (a)是示出终端装置显示的结果显示画面的一个例子的图。(b)是示出终端装置显示的结果显示画面的其它例子的图。(符号说明)1:执行状态测量系统;100:空气调节装置;200:远程控制装置(遥控器);200a:CPU ;200b:R0M ;200c:RAM ;200d:闪存;200f:通信电路;200g:视频卡;200h:LCD ;200i:操作键;201:信号输入部;202:信息存储部;203:执行部;204:定时器;205:信号输出部;208:通信部;209:动作显示部;300:终端装置;300a:CPU ;300b:R0M ;300c:RAM ;300d:硬盘;300e:媒体控制器;300f:通信电路;300g:视频卡;300h:LCD ;3001:键盘;300j:扬声器;300k:鼠标;301:程序组装部;302:自动生成部;302a:测量处理追加部;302b:信息生成部;303:终端存储部;304:信号输出部;307:信号输入部;308:测量部;309:结果显示部。
具体实施例方式以下,参照附图,说明本发明的实施方式的执行状态测量系统I。本发明的实施方式的执行状态测量系统I如图1所示,构成为包括空气调节装置100、远程控制装置(以下,称为遥控器)200、以及终端装置300。空气调节装置100例如构成为包括在大厦中设置的空气调节器(即空调)和空调的室外机。遥控器200例如设置于大厦、家的壁,经由信号线而与空气调节装置100连接。遥控器200例如控制设定温度以及室内温度、由空气调节装置100送出的送风量和风速、以及动作模式等空气调节装置100中设定的状态量。另外,遥控器200也可以控制多台空气调节装置。终端装置300是本发明的程序生成装置。终端装置300例如由个人计算机构成,生成调出测量程序(嵌入了测量程序)的动作程序。此处,动作程序是指,在遥控器200中执行的程序,而且是包括空气调节装置100的动作控制的遥控器200的动作中使用的程序。具体而言,动作程序包括进行与空气调节装置100的通信的通信程序、通过通信控制空气调节装置100的动作的控制程序、以及使通信结果、控制结果及空气调节装置100的动作状态量等显示的显示程序。这些通信程序、控制程序以及显示程序需要在遥控器200中并行地(即并列地)执行,并且要求即时性(实时性)。因此,为了测量动作程序的执行状态,难以使这些程序(即,通信程序、控制程序以及显示程序)的某一个以上的执行停止。另外,这些程序被并行地执行,所以即使例如使用状态迁移表等也难以协调这些程序使用的资源。此处,测量程序是指,测量嵌入了该测量程序的动作程序的执行状态的程序。此处,动作程序的执行状态包括开始了动作程序的执行的执行开始状态、动作程序是执行中的执行中状态、等待动作程序的执行的待机中状态、以及动作程序的执行结束了的执行结束状态。遥控器200如图2所不,包括CPU (Central Processing Unit,中央处理单兀)200a、R0M (Read Only Memory,只读存储器)200b、RAM (Random Access Memory,随机访问存储器)200c、闪存 200d、通信电路 200f、视频卡 200g、LCD (Liquid Crystal Display,液晶显示器)200h以及操作键200i。CPU200a通过依照R0M200b或者闪存200d中保存的程序执行软件处理,进行遥控器200的整体控制。闪存200d存储的程序通过终端装置300被改写。RAM200C在由CPU200a执行程序时,临时地存储作为处理对象的信息(即,数据)。通信电路200f例如在与经由3线式的通信线路连接的空气调节装置100以及终端装置300之间,发送接收数据信号。操作键200i输入与用户的操作对应的信号或者信息。视频卡200g根据从CPU200a输出的数字信号描绘(即绘制)图像,并且输出表示所描绘的图像的图像信号。IXD200h是依照从视频卡200g输出的图像信号显示图像的显示部。另外,遥控器200也可以代替IXD200h而具备F1DP (Plasma Display Panel,等离子显示面板)或者EL (Electroluminescence,电致发光)显示器。终端装置300如图3所示,构成为包括CPU300a、R0M300b、RAM300c、硬盘300d、媒体控制器300e、通信电路300f、视频卡300g、LCD300h、键盘3001、扬声器300j、以及指示设备(以下称为鼠标)300k。CPU300a通过依照R0M300b或者硬盘300d中保存的程序执行软件处理,进行终端装置300的整体控制。RAM300c、通信电路300f、视频卡300g以及LCD300h与RAM200c、通信电路200f以及视频卡200g相同,所以省略说明。硬盘300d存储保存了各种信息(即数据)的表(即表格)、表示各种程序的源代码的电子文件(以下称为源文件)、以及由各种程序调出的库程序。在硬盘300d存储的各种源文件中,包括成为动作程序的部件的部件程序(以下称为动作部件程序)的源文件、和成为动作程序中嵌入的测量程序的部件的部件程序(以下称为测量部件程序)的源文件。另外,终端装置300也可以代替硬盘300d而具备闪存。媒体控制器300e从包括闪存、CD (Compact Disc,高密度盘)、DVD (DigitalVersatile Disc,数字通用盘)、以及蓝光光盘(Blu_ray Disc)(注册商标)的记录介质读出各种数据以及程序。键盘300i以及鼠标300k输入与用户的操作对应的信号或者信息。扬声器300j根据从CPU300a输出的信号输出声音。通过终端装置300的CPU300a通过使用图3所示的硬件来执行图4 (a)的程序生成处理,实现图5 (a)所示那样的程序组装部301、自动生成部302、终端存储部303、信号输出部304以及结果显示部309。另外,自动生成部302构成为包括图3 (b)的测量处理追加部302a以及彳η息生成部302b。
以规定周期发生的定时器中断或者事件的发生为触发而执行图4 (a)的程序生成处理。如果开始程序生成处理的执行,则程序组装部301通过确认从构成为包括图1 (b)的键盘300i以及鼠标300j的输入部输入的信号,判别是否由用户进行了请求动作程序的生成的要求(以下称为程序生成要求)(步骤S01)。此时,在判别为没有程序生成要求的情况下(步骤SOl ;“否”),程序组装部301结束程序生成处理的执行。
在步骤SOl中,判别为有程序生成要求的情况下(步骤SOI ;“是”),程序组装部301使图6所示那样的程序的组装中使用的画面(以下称为程序组装画面)FA显示于结果显示部309。之后,程序组装部301根据从输入部输入的信号组装程序(S卩,确定在执行时调出构成程序的部分程序的顺序等)(步骤S02)。在图6的程序组装画面FA中,显示开始地点显示IS、程序开始指令显示ICS、部件程序显示IPl以及IP2、程序结束指令显示ICP、以及结束地点显示IP和制约时间显示IL。开始地点显示IS表现所生成的动作程序的开头。程序开始指令显示ICS表现发送表示所生成的动作程序成为执行开始状态的指令(以下,称为程序开始指令)的测量部件程序。部件程序显示IPl以及IP2表现例如通过动作程序调出的动作部件程序。程序结束指令显示ICP表现发送表示所生成的动作程序成为执行结束状态的指令(以下,称为程序结束指令)的测量部件程序。结束地点显示IP表现所生成的动作程序的末尾。制约时间显示IL表现从程序开始指令的送出至程序结束指令的送出的时间必需比制约时间短。其原因为,空气调节装置100的动作控制中使用的动作程序要求实时性。包括动作部件程序以及测量部件程序的部件程序是指,相比于动作程序是小规模、且在集中的规定的处理的执行中使用的程序。使用部件程序来执行的处理的种类例如有“例外处理”、“条件判定处理”、“代入处理”、“保存处理”、“测量处理”等。“例外处理”是指,在满足了既定的例外条件的情况下使部分程序中止、或者使调出了部分程序的动作程序或者测量程序的执行中止的处理。“条件判定处理”是指,在指定的执行条件逻辑式是真的情况下执行的处理。“代入处理”是指,进行指定的运算或者指定的函数的调出,将所调出的函数的返回值代入指定的变量的处理。“测量处理”是为了测量动作程序的执行状态而使用的处理。另外,这些各种部件程序的源文件预先存储于图5 (a)的终端存储部303。当然,也可以根据所生成的动作程序,通过终端装置300新生成部件程序的源文件。在图6的程序组装画面FA中,以越是通过面向画面更位于左侧的显示来表现的部件程序,在动作程序执行时越被先调出或者执行的方式组装。即,程序组装画面FA是显示按照执行部件程序的顺序排列表现部件程序的块状的显示的视觉上的时序图或者框图的画面。接下来,说明程序的组装方法。程序组装部301以将终端存储部303中存储的部件程序的程序名等显示于程序组装画面FA的方式,控制结果显示部309。接下来,用户根据所显示的程序名等决定组装中使用的部件程序。之后,程序组装部301根据从输入部输入的信号,确定由用户指示成用于组装的部件程序,根据从输入部输入的信号,确定用户所指定的程序组装画面FA上的位置。接下来,程序组装部301以在所确定的程序组装画面FA上的位置,显示指示的部件程序的方式,控制结果显示部309。根据该结构,用户能够仅通过操作输入部而变更表现部件程序的显示的位置而容易地变更动作程序执行时的部件程序的调出顺序。另外,程序组装部301根据从输入部输入的信号,确定对动作程序的执行开始至结束的时间(即执行时间)所要求的限制时间。之后,程序组装部301以将连接图6的程序开始指令显示ICS、和程序结束指令显示ICP的线段显示于程序组装画面FA,并在与该显示的线段对应的位置显示限制时间的方式,控制结果显示部309。
在执行了图4 Ca)的步骤S02之后,自动生成部302执行自动地生成在步骤S02中组装的程序的、图7所示那样的自动程序生成处理(步骤S03)。如果开始了图7的自动程序生成处理的执行,则图5 (b)所示的自动生成部302的测量处理追加部302a例如为了以规定周期测量执行中的动作程序以及执行中的任务的变化,例如,使用定时器中断用的测量部件程序的源代码,生成与图6的程序组装画面FA中显示的顺序无关地执行的测量程序(即通过定时器的中断而动作的测量程序)的源代码,对源文件追加输出所生成的源代码(步骤S11)。另外,在步骤Sll中追加的代码包括表示后述图8的步骤S45至S50那样的测量处理的代码。在图7的步骤Sll之后,自动生成部302开始将由程序组装部301组装的程序的源代码输出到源文件(步骤S12)。具体而言,自动生成部302将在图6的程序组装画面FA上排列的多个块显示,从在接近处理的开始的位置(即面向画面为左侧)中显示的块显示起依次作为处理对象,开始对源文件输出通过作为处理对象的块显示来表现的部件程序的源代码。接下来,自动生成部302判别成为源代码的输出对象的部件程序是动作部件程序还是测量部件程序(步骤S13)。此时,自动生成部302如果判别为是动作部件程序(步骤S13 ;“是”),则从图5 Ca)的终端存储部303检索成为输出对象的动作部件程序的源代码,将所检索的源代码追加输出(即追加记载)到动作程序的源文件(步骤S14)。另外,在步骤S14中追加的代码也可以包括表示后述图8的步骤S42以及S44那样的处理的代码。相对于此,如果判别为部件程序是测量部件程序(步骤S13 ;“否”),则测量处理追加部302a与步骤S14同样地检索源代码,将所检索的测量部件程序的源代码追加输出到测量程序的源文件,根据需要,将测量程序的调出处理的源代码追加输出到动作程序的源文件(步骤S15)。另外,在步骤S15中追加的代码与在步骤Sll中追加的代码同样地,包括表示后述图8的步骤S44至S50那样的测量处理的代码。在步骤S14或者步骤S15的执行之后,自动生成部302判别是否将编入到程序的部件程序的源代码全部输出(步骤S16)。此时,自动生成部302如果判别为尚未输出所有源代码(步骤S16 ;“否”),则从上述步骤S13起反复上述处理。相对于此,自动生成部302如果判别为输出了所有源代码(步骤S16;“是”),则对源代码文件进行预编译而生成二进制数据(即,二进制程序),并对所生成的二进制程序进行预链接(步骤S17)。此时,自动生成部302确定控制装置210为了执行所生成的程序而使用的堆栈区的范围(以下称为堆栈范围)以及所生成的程序配置于控制装置210的范围(以下称为程序范围)。此处,遥控器200具有的CPU200a通过时间表在各任务中依次执行多个动作程序。此时,遥控器200还有时在多个任务中执行同一程序。在该情况下,在各任务中,执行相同的程序,但在程序的执行中使用的堆栈区域(以下称为堆栈区)不同。堆栈区是图2的RAM200C中的存储区域,是指在任务中CPU200a执行程序时,临时地存储程序的执行中使用的变量的区域。在步骤S17之后,图5 (b)所示的自动生成部302的信息生成部302b在生成了所划定的堆栈区的识别信息(以下,称为堆栈ID)之后,将表示所生成的堆栈ID的数据、和表示堆栈区的开始地址的数据以及表示结束地址的数据追加到堆栈区列表。之后,自动生成部302将追加了数据的堆栈区列表输出到电子文件(以下,称为堆栈区列表文件)(步骤S18)。
另外,堆栈区列表是指,例如在遥控器200的地址总线的总线宽度是4字节宽度的情况下,对于将表示堆栈范围的开始地址的4字节的数据、表示堆栈范围的结束地址的4字节的数据、以及表示堆栈ID的2字节的数据作为I个组的10字节的数据,能够保持最大256个的列表。在步骤S18之后,信息生成部302b在生成了所生成的动作程序的识别信息(以下,称为动作程序ID)之后,将表示所生成的程序ID的数据、和表示动作程序的程序范围的开始地址的数据以及表示结束地址的数据追加到程序区域列表。之后,自动生成部302将追加了数据的程序区域列表输出到电子文件(以下,称为程序区域列表文件)(步骤S19)。另外,程序区域列表是能够保持多个将表示配置程序的范围的开始地址的4字节的数据、表示配置程序的范围的结束地址的4字节的数据、以及表示动作程序ID的2字节的数据作为I个组的10字节的数据的列表。另外,表示程序区域列表的开始地址的数据、表示结束地址的数据、以及表示动作程序ID的数据无需分别一定是4字节、4字节、以及2字节。在执行了步骤S19之后,自动生成部302将堆栈区列表文件、和程序区域列表文件包含于编译对象之后再次执行编译(步骤S20)。通过该处理,例如,在步骤S17中生成的二进制程序能够参照堆栈区以及程序区域列表。在步骤S20之后,自动生成部302在将表示在程序组装部301中确定的制约时间的信息、和所生成的动作程序(即,要求了制约时间的程序)的程序ID对应起来保存到信息存储部202之后,结束自动程序生成处理的执行。在执行了图4 (a)的步骤S03的处理之后,图5的信号输出部304在将在步骤S03中生成的动作程序、从动作程序调出的测量程序、由测量程序参照的程序区域列表文件以及堆栈区列表文件、以及指定保存它们的地址的信息发送到遥控器200之后(步骤S04),结束程序生成处理的执行。接下来,说明接收从终端装置300发送的程序的遥控器200。通过图2所示的遥控器200的CPU200a使用图2所示的硬件执行图4 (b)所示那样的程序保存处理,实现图5所示那样的信号输入部201以及信息存储部202。如果探测到遥控器200针对终端装置300的连接,则图5的信号输入部201开始图4 (b)的程序保存处理的执行。首先,信号输入部201在等待了程序的接收(例如,对信息存储部202写入程序那样地命令的写入命令的接收)规定时间之后(步骤S31),判别是否接收到程序(步骤S32)。此时,信号输入部201在判别为未接收到程序的情况下(步骤S32 ;“否”),从步骤S31反复上述处理。相对于此,信号输入部201在判别为接收到程序的情况下(步骤S32 ;“是”),接收从终端装置300转送的动作程序、测量程序、程序区域列表文件、以及堆栈区列表文件、和指定保存它们的地址的信息,在由所接收的信息指定的信息存储部202的地址,保存这些程序以及文件(步骤S33)。之后,信号输入部201确认所保存的程序以及文件的内容是否正常。此时,信号输入部201如果确认为是正常,则结束程序保存处理的执行。相对于此,信号输入部201如果确认为是异常,则在从信息存储部202削除了所保存的程序以及文件之后,结束程序保存处理的执行。此处,如果接通图2所示的遥控器200的电源,则遥控器200的CPU200a开始进行执行信息存储部202中保存的动作程序以及测量程序的、图8所示那样的程序执行处理。通过CPU200a使用图2所示的硬件执行该程序执行处理,实现图5所示那样的执行部203、定时器204、信号输出部205、通信部208、以及动作显示部209。如果开始了图8的程序执行处理,则图5的执行部203开始信息存储部202中存储的动作程序以及动作程序中嵌入的测量程序的执行(步骤S41 )。具体而言,执行部203针对每个任务起动信息存储部202中存储的控制程序、通信程序以及显示程序等多个动作程序。此时,执行部203依照信息存储部202中存储的堆栈区列表中记载的开始地址和结束地址,确定在所起动的任务中在动作程序的执行中使用的堆栈区。接下来,执行部203将所确定的堆栈区的堆栈ID和任务的任务ID对应起来保存到信息存储部202。之后,执行部203通过时间表在各任务中按照规定的次序执行动作程序(以下,称为执行任务)。在步骤S41之后,执行部203判别接下来执行的程序是否为测量程序(步骤S42)。另外,执行部203在定时器204发生了规定周期的定时器事件的情况、或者程序计数器到达终端装置300的用户在程序的组装中指定的位置的情况下,执行测量程序。在步骤S42中,执行部203如果判别为接下来执行的程序并非测量程序(步骤S42 ;“否”),则执行动作程序(步骤S43)。具体而言,执行部203在控制遥控器200的动作、或者以发送进行空气调节装置100的动作控制的命令的方式控制通信部208、或者以显示通信结果、控制结果以及空气调节装置100的动作状态量等的方式控制了动作显示部209之后,返回步骤S42而反复上述处理。在步骤S42中,执行部203如果判别为接下来执行的程序是测量程序(步骤S42 ;“是”),则读出CPU200a的堆栈指针寄存器的值以及程序计数器寄存器的值,将所读出的值保存到信息存储部202 (步骤S44)。另外,程序计数器寄存器表示CPU200a所执行的程序命令的位置。如果CPU200a执行程序计数器寄存器表示的位置的命令,则程序计数器寄存器的值递增“I”。接下来,执行部203依照测量程序执行步骤S45至S50的处理。在步骤S45中,执行部203从信息存储部202中存储的堆栈区列表,检索开始地址是保存到信息存储部202的堆栈指针寄存器值之前、并且结束地址是堆栈指针寄存器值之后的堆栈区的堆栈ID (步骤S45)。之后,执行部203检索信息存储部202与堆栈ID对应起来存储的任务ID。之后,执行部203从信息存储部202中存储的程序区域列表,检索开始地址是保存到信息存储部202的程序计数器寄存器值之前、并且结束地址是比程序计数器寄存器值之后的程序区域的程序ID (步骤S46)。执行部203根据在后述步骤S50中已经在信息存储部202中保存的堆栈ID、和在步骤S45中检索的堆栈ID,判断程序的执行中使用的堆栈区是否变化,并根据在后述步骤S50中保存的程序ID、和在步骤S46中检索的程序ID,判别执行中的程序是否变化(步骤S47)。在步骤S47中,执行部203如果判别为使用中的堆栈区以及执行中的程序都未变化(步骤S47 ;“否”),则返回步骤S42而反复上述处理。相对于此,执行部203如果判别为使用中的堆栈区或者执行中的程序变化了(步骤S47 ;“是”),则计算图9 (a)所示那样的识别标记的指令部以及数据部的值(步骤S48)。此处,识别标记是指对信号赋予的标记,是识别执行状态变化了的程序或者任务并且表示变化了的执行状态的标识。具体而言,识别标记是基于比特串的非同步通信用的信号。识别标记包括图9 (a)所示那样的任务开始指令、任务结束指令、程序开始指令以及程序结束指令。这些指令是分别具有I字节的指令部和数据部的2字节(B卩,16比特)的比特串。比特串是通过电压电平用“High (高)”电平和“Low (低)”电平这2值来表现的。任务开始指令如图9 (a)所示,具有表示开始了任务的执行的指令部“0x01”、和表示成为执行开始状态的任务的任务ID的数据部。同样地,任务结束指令具有表示结束了任务的执行的指令部“0x02”、和表示成为执行结束状态的任务的任务ID的数据部。进而,程序开始指令具有表示开始了程序的执行的指令部“0x03”、和表示成为执行开始状态的程序的程序ID的数据部。同样地,程序结束指令具有表示结束了程序的执行的指令部“0x04”、和表示成为执行结束状态的程序的程序ID的数据部。S卩,在步骤S48中,执行部203如果判别为使用中的堆栈区变化了(参照步骤S47 ;“是”),则生成具有“0x01”的指令部、和表示使用通过在步骤S45中检索的堆栈ID识别的堆栈而执行的任务ID的数据部的任务开始指令,生成具有“0x02”的指令部、和表示在步骤S50中保存的任务ID的数据部的识别标记(即,任务结束指令)。同样地,执行部203如果判别为执行中的程序变化了,则生成具有“0x03”的指令部、和表示在步骤S46中检索的程序ID的数据部的程序开始指令,生成具有“0x04”的指令部、和表示在步骤S50中保存的程序ID的数据部的程序结束指令。在步骤S48之后,执行部203在将识别标记(即,指令)追加到发送队列之后,对信号输出部205进行指示,以输出发送队列中积蓄的识别标记。之后,信号输出部205依照来自执行部203的指示,执行图10所示那样的识别标记输出处理(步骤S49)。如果开始了图10的识别标记输出处理,则信号输出部205存储当前的输出信号电平(步骤S61)。接下来,信号输出部205使输出信号的信号电平成为“Low (低)”电平(步骤S62)。之后,信号输出部205在读出了 I个在发送队列中储存的识别标记之后,依次输出所读出的识别标记的指令部(8比特)的第I比特至第8比特之后(步骤S63),依次输出识别标记的数据部(8比特)的第I比特至第8比特(步骤S64)。接下来,信号输出部205判别在发送队列中是否残留识别标记(步骤S65),如果判别为残留了识别标记(步骤S65 ;“是”),则返回步骤S63而反复上述处理。相对于此,信号输出部205如果判别为在发送队列中未残留识别标记(步骤S65 ;“否”),则在以使在步骤S61中保存到信息存储部202的信号电平反转了的电平开始了信号输出之后(步骤S66),结束识别标记输出处理的执行。作为具体例,信号输出部205在图9 (b)所示那样的输出识别标记I之后至输出识别标记2的时间T2中,输出使输出识别标记I之前的时间Tl中的信号电平“Low (低)”反转了的“High (高)”电平的信号。另外,信号输出部205在输出识别标记2之后至接下来输出识别标记的时间T3中,输出使时间T2中的信号电平“High (高)”反转了的“Low (低)”电平的信号。
根据这些结构,在输出了规定电平的信号值之后,例如,输出表示数据部那样的动作程序或者任务的识别信息(即,程序ID或者任务ID)的信号,如果表示识别信息的信号的发送结束,则输出使规定电平反转了的信号。因此,例如,能够使用示波器容易地测量由于信号值的反转而动作程序或者任务的执行状态变化之后至接下来执行状态变化为止的时间(即,动作程序或者任务的执行时间)。另外,由于用规定电平的信号值和使规定电平的信号值反转了的信号值来表示动作程序的识别信息(即,程序ID),所以与为了掌握动作程序或者任务的执行状态,使用 UART (Universal Asynchronous Receiver Transmitter,通用异步收发器)等非同步通信来输出任务的调度日志的情况不同,无需针对所输出的信号的专用的解码器。进而,相比于使用UART的情况,响应性良好、并且对动作程序的执行造成的影响少。在图8的步骤S49之后,执行部203在将在步骤S45以及S46中分别检索的堆栈ID、任务ID以及程序ID保存到信息存储部202之后(步骤S50),从步骤S42反复上述处理。接收从遥控器200输出的信号的终端装置300的CPU300a通过使用图2所示的硬件执行图11所示那样的状态测量处理,作为图5所示那样的信号输入部307、测量部308以及结果显示部309发挥功能。将从遥控器200输出的信号的上升沿作为触发,信号输入部307开始图11的状态测量处理的执行。信号输入部307首先接收16比特量的数据(步骤S71)。接下来,信号输入部307将所接收的数据(S卩,识别标记)、和表示数据的接收时刻的信息对应起来保存到信息存储部202 (步骤S72)。接下来,测量部308判别所保存的数据是否为任务开始指令(步骤S73)。具体而言,测量部308判别所保存的数据的指令部是否为图9(a)所示那样的任务开始指令的指令部“0x01”。此时,测量部308如果判别为所保存的数据是任务开始指令(步骤S73 ;“是”),则从所保存的数据抽出表示任务ID的数据部,将由所抽出的数据部表示的任务ID推压到(push)在信息存储部202中划定的画面缓冲器的任务用的堆栈变量(步骤S74)。另外,测量部308将作为画面缓冲器的变量值的、表示通过该任务ID识别的任务的状态的变量的值变更为表示任务是执行中的执行中状态的值。如果在步骤S73中,判别为所保存的数据并非任务开始指令(步骤S73 ;“否”),则测量部308判别所保存的数据是否为任务结束指令(步骤S75)。具体而言,测量部308判别所保存的数据的指令部是否为图9 (a)所示那样的任务结束指令的指令部“0x02”。此时,测量部308如果判别为所保存的数据是任务结束指令(步骤S75 ;“是”),则在从所保存的数据抽出了表示任务ID的数据部之后,从任务用的堆栈变量取出由所抽出的数据部表示的任务ID (步骤S76)。另外,测量部308将表示用该任务ID识别的任务的状态的变量的值变更为表示等待任务的执行的待机中状态的值。如果在步骤S75中,判别为所保存的数据并非任务结束指令(步骤S75 ;“否”),则测量部308判别所保存的数据是否为程序开始指令(步骤S77)。具体而言,测量部308判别所保存的数据的指令部是否为图9 (a)所示那样的程序开始指令的指令部“0x03”。此时,测量部308如果判别为所保存的数据是程序开始指令(步骤S77 ;“是”),则在从所保存的数据抽出了表示程序ID的数据部之后,将用所抽出的数据部表示的程序ID推压到画面缓冲器的程序用的堆栈变量(步骤S78)。另外,测量部308将表示用该程序ID识别的动作程序的状态的变量的值变更为表示执行着程序的执行中状态的值。
如果在步骤S77中,判别为所保存的数据并非程序开始指令(步骤S77 ;“否”),则测量部308判别所保存的数据是否为程序结束指令(步骤S79)。具体而言,测量部308判别所保存的数据的指令部是否为图9 (a)所示那样的程序结束指令的指令部“0x04”。此时,测量部308如果判别为所保存的数据是程序结束指令(步骤S79 ;“是”),则在从所保存的数据抽出了表示程序ID的数据部之后,从程序用的堆栈变量取出用所抽出的数据部表示的程序ID (步骤S80)。另外,测量部308将表示用该程序ID识别的动作程序的状态的变量的值变更为表示等待程序的执行的待机中状态的值。在步骤S74、步骤S76、步骤S78、或者步骤S80之后,测量部308以将表示画面缓冲器的任务的状态的变量的值以及表示动作程序的状态的变量的值的变化、和这些变量值变化了的时刻(即,在信息存储部202中保存的指令的接收时刻)对应起来显示的方式,控制结果显示部309 (步骤S81)。之后,测量部308结束状态测量处理的执行。具体而言,在步骤S81中,结果显示部309显示图12 (a)所示那样的结果显示画面FC1。结果显示画面FCl显示了表现动作程序的执行时刻的时间线TL、表示显示程序的执行状态的显示块H)、表示通信程序的执行状态的显示块PT、以及表示控制程序的执行状态的显示块PC。作为具体例,举出以下情况进行说明:信号输入部307在时刻tl,输入了具有表示通信程序的程序ID的数据部的程序开始指令,在时刻t2,输入了具有表示通信程序的程序ID的数据部的程序结束指令。结果显示部309在将表示通信程序的执行状态的显示块PT的显示从时刻tl切换为表示执行中状态的显示之后,从时刻t2将显示块PT的显示切换为表示待机中状态的显示。之后,测量部308检索表示与通信程序的程序ID对应起来在信息存储部202中存储的制约时间的信息,将用所检索的信息表示的制约时间与通信程序的程序名或者程序ID对应起来显示。另外,测量部308测量(即判别)用所检索的信息表示的制约时间是否比时刻tl至时刻t2为止的时间(即通信程序的执行时间)短规定时间以上。测量部308如果测量到通信程序的执行时间比制约时间短规定时间以上,则例如进行“收敛于设想内。”等表示执行时间比制约时间短的显示。相对于此,测量部308如果测量到通信程序的执行时间比制约时间长规定时间以上,则例如进行“未收敛于设想内。”等表示执行时间比制约时间长的警告显示或者错误显示。进而,测量部308如果测量到制约时间与通信程序的执行时间的差异比规定时间短,则例如进行“是与设想相同的程度。”等表示制约时间和执行时间大致一致的显示。进而,在由遥控器200执行了多个用相同的程序ID识别的动作程序的情况下,结果显示部309显示图12 (b)所示那样的结果显示画面FC2。图12 (b)的结果显示画面FC2将识别所执行的动作程序的程序ID、和执行该动作程序的任务ID对应起来显示多个。具体而言,在遥控器200中,为了对通过2个通信端口的各个端口通信的数据进行通信,通过2个任务并行地执行了用相同的程序ID识别的通信程序。因此,在图12 (b)的结果显示画面FC2中,显示了时间线TL、表示在用任务ID “002”识别的任务中执行的通信程序的执行状态的显示块PT1、以及表示在用任务ID “003”识别的任务中执行的通信程序的执行状态的显示块PT2。另外,面向画面在显示块PTl的左侧,将在显示块PTl中表示执行状态的程序的名称、和识别执行该程序的任务的任务ID对应起来显示。同样地,在显示块PT2的左侦牝将在显示块PT2中表示执行状态的程序的名称、和识别执行该程序的任务的任务ID对应起来显示。因此,如果信号输入部307输入了程序开始指令和任务开始指令,则结果显示部309在表示用程序开始指令的程序ID识别的程序的执行状态的显示块内,将表示用任务开始指令的数据部表示的任务ID识别的任务中执行的程序的执行状态的显示块的显示切换为表示执行中状态的显示。另外,结果显示部309也可以将显示块、在显示块中表示执行状态的程序的名称以及程序ID的一个以上、和执行了程序的任务的任务ID对应起来显示。同样地,如果信号输入部307输入了程序结束指令和任务结束指令,则结果显示部309在表示用程序结束指令的程序ID识别的程序的执行状态的显示块内,将表示用任务结束指令的数据部表示的任务ID识别的任务中执行的程序的执行状态的显示块的显示切换为表示待机中状态的显示。根据这些结构,显示动作程序的名称、例如根据程序开始指令的接收时刻计算的动作程序的执行时间、以及对动作程序的执行时间所要求的制约时间。另外,特别地显示所计算的动作程序的执行时间是否超过对该动作程序的执行时间所要求的制约时间。因此,用户能够容易地验证由要求实时性的远程控制装置200执行的动作程序的执行时间是否满足制约时间。另外,根据这些结构,例如,根据程序区域列表等确定配置了动作程序的区域的程序区域确定信息、和动作程序的执行中使用的程序计数器值,确定由远程控制装置200执行的动作程序。因此,针对动作程序的测量处理的追加少,所以能够生成在减轻对动作程序的动作造成的影响的同时测量动作程序的执行状态的测量程序。进而,根据这些结构,例如,根据堆栈区列表等确定堆栈区的堆栈区确定信息、和表示动作程序的执行中使用的堆栈区的堆栈指针值,确定由远程控制装置200执行的任务。因此,能够生成在减轻对动作程序的动作造成的影响的同时测量软件的执行中使用的任务的执行状态的测量程序。另外,进而根据这些结构,显示任务的识别信息(S卩,任务ID)、在该任务中执行的动作程序的名称、以及表示该任务的执行状态是执行开始状态的开始状态信息的接收时刻。因此,即使控制器200在多个任务中执行了同一动作程序,用户也能够容易地验证在各个任务中动作程序成为执行开始状态的时刻。另外,既可以作为预先具备用于实现本实施方式的功能的结构的终端装置300提供,也可以通过程序的应用使既存的终端装置作为本实施方式的程序生成装置发挥功能。即,通过以能够使控制既存的终端装置的计算机(CPU等)执行的方式应用用于实现上述实施方式中例示的终端装置300的各功能结构的控制程序,能够作为本实施方式的终端装置300发挥功能。这样的程序的分发方法是任意的,例如,除了能够在存储卡、CD-ROM、或者DVD-ROM等记录介质中储存而分发以外,还能够经由因特网等通信介质分发。另外,本发明的程序生成方法能够使用终端装置300来实施。另外,在OS (Operating System,操作系统)分担上述功能而实现的情况、或者通过OS和应用程序的协作而实现上述功能的情况等下,也可以仅将OS以外的部分储存到介质而分发,并且也可以进行下载等。
另外,本发明能够不脱离本发明的广义的精神和范围而实现各种实施方式以及变形。另外,上述实施方式用于说明本发明而未限定本发明的范围。即,本发明的范围并非由实施方式示出而由权利要求书示出。另外,在权利要求书的范围内以及与其等同的发明的意义的范围内实施的各种变形被视为本发明的范围内。
本申请基于在2010年11月26日申请的日本专利申请2010-263519号。在本说明书中作为参照取入了日本专利申请2010-263519号的说明书、权利要求书、附图整体。产业上的可利用性本发明适用于在生成对控制空调器、照明等设备的控制器所执行的动作程序的执行状态进行测量的测量程序的程序生成装置,该程序生成装置生成对控制器并行地执行的动作程序的执行状态进行测量的测量程序。
权利要求
1.一种程序生成装置,其特征在于,具备: 信息生成单元,生成程序区域确定信息,该程序区域确定信息是确定由控制设备的控制器执行的动作程序的配置区域的信息;以及 测量处理追加单元,对测量所述动作程序的执行状态的测量程序追加:程序确定处理,根据由所述信息生成单元生成的程序区域确定信息、和所述控制器的程序计数器值,确定由所述控制器执行的动作程序;以及识别信息发送处理,发送识别所确定的所述动作程序的识别息。
2.根据权利要求1所述的程序生成装置,其特征在于, 所述信息生成单元还生成堆栈区确定信息,该堆栈区确定信息确定所述控制器在所述动作程序的执行中使用的堆栈区, 所述测量处理追加单元对所述测量程序还追加任务确定处理,该任务确定处理中根据由所述信息生成单元生成的堆栈区确定信息、和所述控制器的堆栈指针值,确定由所述控制器使用所述堆栈区执行的任务, 所述识别信息发送处理还发 送识别所确定的所述任务的识别信息。
3.根据权利要求2所述的程序生成装置,其特征在于, 在所述识别信息发送处理中,在输出规定电平的信号值之后,输出通过所述规定电平的信号值和使所述规定电平的信号值反转了的信号值来表示所确定的所述动作程序的识别信息的信号,如果表示所述识别信息的信号的发送结束,则输出使所述规定电平反转了的信号。
4.根据权利要求1至3中的任意一项所述的程序生成装置,其特征在于, 在所述识别信息发送处理中,在所确定的所述动作程序的识别信息变化了的情况下,还发送变化后的识别信息、和表示用变化后的所述识别信息识别的动作程序的执行状态是执行开始状态的开始状态信息, 所述程序生成装置还具备: 通信单元,从所述控制器接收由所述控制器执行的所述动作程序的识别信息、和所述开始状态信息;以及 显示单元,显示用由所述通信单元接收的识别信息识别的动作程序的程序名、根据所述开始状态信息的接收时刻计算出的所述动作程序的执行时间、以及对所述动作程序的执行时间所要求的制约时间。
5.根据权利要求4所述的程序生成装置,其特征在于, 还具备测量单元,该测量单元测量所计算出的所述动作程序的执行时间是否超过对于所述动作程序的执行时间所要求的制约时间, 所述显示单元还显示所述测量单元测量出的结果。
6.根据权利要求5所述的程序生成装置,其特征在于, 所述控制器在多个任务中使用分别不同的堆栈区并行地执行动作程序, 在所述识别信息发送处理中,在所确定的所述任务的识别信息变化了的情况下,还发送变化后的识别信息、和表示用变化后的所述识别信息识别的任务中的动作程序的执行状态是执行开始状态的开始状态信息, 所述通信单元从所述控制器接收由所述控制器执行的所述任务的识别信息、和所述开始状态信息, 所述显示单元将用由所述通信单元接收的识别信息识别的任务的识别信息、在所述任务中执行的动作程序的程序名、以及所述开始状态信息的接收时刻对应起来显示。
7.一种程序生成程序,其特征在于,使计算机作为如下单元发挥功能: 信息生成单元,生成确定由控制设备的控制器执行的动作程序的配置区域的程序区域确定信息;以及 测量处理追加单元,对测量所述动作程序的执行状态的测量程序追加:程序确定处理,根据由所述信息生成单元生成的程序区域确定信息、和所述控制器的程序计数器值,确定由所述控制器执行的动作程序;以及识别信息发送处理,发送识别所确定的所述动作程序的识别息。
8.一种程序生成方法,其特征在于,具有: 信息生成步骤,生成程序区域确定信息,该程序区域确定信息是确定由控制设备的控制器执行的动作程序的配置区域的信息;以及 测量处理追加步骤,对测量所述动作程序的执行状态的测量程序追加:程序确定处理,根据由所述信息生成步骤生成的程序区域确定信息、和所述控制器的程序计数器值,确定由所述控制器执行的动作程序;以及识别信息发送处理,发送识别所确定的所述动作程序的识别息。
全文摘要
作为程序生成装置的终端装置(300)生成确定由远程控制装置(200)执行的动作程序的配置区域的程序区域确定信息。另外,终端装置(300)对测量动作程序的执行状态的测量程序追加程序确定处理,该程序确定处理根据程序区域确定信息、和远程控制装置(200)的程序计数器值,确定由远程控制装置(200)执行的动作程序。由此,能够生成在减轻对软件的动作造成的影响的同时即时地测量软件的动作状态的变化的测量程序。
文档编号G06F11/30GK103221926SQ20118005655
公开日2013年7月24日 申请日期2011年1月26日 优先权日2010年11月26日
发明者胜仓真, 中田成宪 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1