国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      軟件搭載設(shè)備和軟件更新方法

      文檔序號:10663566閱讀:344來源:國知局
      軟件搭載設(shè)備和軟件更新方法
      【專利摘要】本發(fā)明是為了在較少的存儲區(qū)域?qū)崿F(xiàn)軟件的更新而完成的,具有軟件搭載設(shè)備1,其特征在于,具有:存儲部,其存儲了第1程序(100)和第2程序(200),其中,第1程序(100)控制與設(shè)備連接的器件14,第2程序(200)的程序大小比第1程序(100)小,包含第1程序(100)的多個(gè)功能中的一部分功能;和控制部,其與存儲部連接,在受理了第1程序(100)的更新請求的情況下,停止第1程序的執(zhí)行,改寫更新第1程序(100),并且,在第1程序的更新中,執(zhí)行第2程序的一部分功能。
      【專利說明】
      軟件搭載設(shè)備和軟件更新方法
      技術(shù)領(lǐng)域
      [0001 ]本發(fā)明涉及軟件搭載設(shè)備中的軟件更新方法。
      【背景技術(shù)】
      [0002]在能夠通過互聯(lián)網(wǎng)等通信手段下載并更新軟件的信息設(shè)備中,要求一邊繼續(xù)設(shè)備的動(dòng)作一邊同時(shí)進(jìn)行軟件的更新。
      [0003]針對這種要求,提出了預(yù)先確保用于保存包括修正程序在內(nèi)的所有更新程序的區(qū)域的方法。
      [0004]在該方法中,在執(zhí)行現(xiàn)行程序的狀態(tài)下將更新程序下載到預(yù)先確保的區(qū)域。然后,在下載結(jié)束后,從現(xiàn)行程序替換為更新程序。
      [0005]在專利文獻(xiàn)I中,提出了下述這樣的方法:在多個(gè)0S(0peratingSystem:操作系統(tǒng))在同一H/W上進(jìn)行動(dòng)作的環(huán)境下,調(diào)整在各個(gè)OS的軟件更新時(shí)所執(zhí)行的處理內(nèi)容相同的處理的執(zhí)行順序,以使得并列執(zhí)行的時(shí)間縮短。
      [0006]在專利文獻(xiàn)2中,提出了下述這樣的方法:具有用于判斷設(shè)備的使用和不使用時(shí)的單元,在不使用時(shí)自動(dòng)從服務(wù)器下載軟件。
      [0007]在專利文獻(xiàn)3中,提出了下述這樣的方法:能夠在通常狀態(tài)和待機(jī)狀態(tài)之間進(jìn)行切換,并在該待機(jī)狀態(tài)下進(jìn)行應(yīng)用的下載,其中,通常狀態(tài)是通常的通電狀態(tài),可執(zhí)行應(yīng)用,在待機(jī)狀態(tài)下,限制電力消耗且不執(zhí)行應(yīng)用。
      [0008]現(xiàn)有技術(shù)文獻(xiàn)
      [0009]專利文獻(xiàn)
      [0010]專利文獻(xiàn)1:日本特開2012-181578號公報(bào)
      [0011]專利文獻(xiàn)2:日本特開2012-018657號公報(bào)
      [0012]專利文獻(xiàn)3:日本特開2013-099557號公報(bào)

      【發(fā)明內(nèi)容】

      [0013]發(fā)明要解決的課題
      [0014]在現(xiàn)有的軟件搭載設(shè)備中,需要預(yù)先準(zhǔn)備與成為更新對象的程序同等的空閑存儲區(qū)域。在現(xiàn)有的軟件搭載設(shè)備中,在接收到更新的通知后,將更新程序下載到所述空閑存儲區(qū)域。然后,在下載完成后,從現(xiàn)有程序切換到更新程序。
      [0015]因此,在現(xiàn)有的軟件搭載設(shè)備中,存在另外需要與軟件的更新規(guī)模對應(yīng)的存儲區(qū)域、存儲區(qū)域的成本增加的課題。
      [0016]用于解決問題的手段
      [0017]本發(fā)明是為了解決上述那樣的課題而完成的,提供軟件搭載設(shè)備,其特征在于,存儲部,其存儲了第I程序和第2程序,其中,所述第I程序控制與設(shè)備連接的器件,所述第2程序的程序大小比所述第I程序小,包含所述第I程序的多個(gè)功能中的一部分功能;和控制部,其與所述存儲部連接,在受理了所述第I程序的更新請求的情況下,停止所述第I程序的執(zhí)行,改寫更新所述第I程序,并且,在所述第I程序的更新中,執(zhí)行所述第2程序的所述一部分功能。
      [0018]發(fā)明的效果
      [0019]本發(fā)明能夠以較少的存儲區(qū)域進(jìn)行軟件的更新。
      【附圖說明】
      [0020]圖1是本發(fā)明實(shí)施方式中的系統(tǒng)結(jié)構(gòu)圖。
      [0021]圖2是本發(fā)明實(shí)施方式中的軟件搭載設(shè)備的硬件結(jié)構(gòu)圖。
      [0022]圖3是在本發(fā)明實(shí)施方式I中的軟件搭載設(shè)備上進(jìn)行動(dòng)作的軟件結(jié)構(gòu)圖。
      [0023]圖4是本發(fā)明實(shí)施方式中的程序切換部的結(jié)構(gòu)圖。
      [0024]圖5是示出本發(fā)明實(shí)施方式I中的整體處理的動(dòng)作的流程圖。
      [0025]圖6是示出本發(fā)明實(shí)施方式I中的周期執(zhí)行命令串的提取例的圖。
      [0026]圖7是本發(fā)明實(shí)施方式I中的執(zhí)行命令的示例。
      [0027]圖8是示出本發(fā)明實(shí)施方式I中的從主程序向子程序的切換的圖。
      [0028]圖9是在本發(fā)明實(shí)施方式2中的軟件搭載設(shè)備上進(jìn)行動(dòng)作的軟件結(jié)構(gòu)圖。
      [0029]圖10是示出本發(fā)明實(shí)施方式2中的整體處理的動(dòng)作的流程圖。
      [0030]圖11是示出本發(fā)明實(shí)施方式2中的周期輸出模式的提取的示例的圖。
      [0031]圖12是示出本發(fā)明實(shí)施方式2中的從主程序向子程序的切換的圖。
      [0032]圖13是在本發(fā)明實(shí)施方式3中的軟件搭載設(shè)備上進(jìn)行動(dòng)作的軟件結(jié)構(gòu)圖。
      [0033]圖14是示出本發(fā)明的實(shí)施方式3中的整體處理的動(dòng)作的流程圖。
      [0034]圖15是示出包含本發(fā)明實(shí)施方式3中的NOP的周期輸出模式的提取的示例的圖。
      [0035]圖16是示出本發(fā)明實(shí)施方式3中的針對周期執(zhí)行命令串內(nèi)的無處理時(shí)間的擴(kuò)展處理的追加的示例的圖。
      【具體實(shí)施方式】
      [0036]實(shí)施方式1.
      [0037]圖1是本發(fā)明實(shí)施方式中的系統(tǒng)結(jié)構(gòu)圖。本實(shí)施方式中的系統(tǒng)由軟件搭載設(shè)備1、軟件發(fā)布服務(wù)器2和網(wǎng)絡(luò)3構(gòu)成。軟件搭載設(shè)備I是白色家電等嵌入設(shè)備或個(gè)人計(jì)算機(jī)等,通過網(wǎng)絡(luò)進(jìn)行軟件的下載以及對所下載的軟件進(jìn)行更新。軟件發(fā)布服務(wù)器2具有通過網(wǎng)絡(luò)對軟件搭載設(shè)備I發(fā)布更新程序(軟件)的功能。網(wǎng)絡(luò)3是互聯(lián)網(wǎng)等通信手段。網(wǎng)絡(luò)3可以是無線,也可以是有線。
      [0038]圖2是本發(fā)明的實(shí)施方式中的軟件搭載設(shè)備I的硬件結(jié)構(gòu)圖。圖2中,軟件搭載設(shè)備I除CPU10(Central Processing Unit)nROMl1(Rrad Only Memory)、RAMl2(Random AccessMemory)外,還具有通信模塊13、器件14、LED(Light Emitting D1de) 15、電子蜂鳴器16、定時(shí)器17、電源開關(guān)18等多個(gè)硬件。
      [0039]ROMl I提供用于保存程序命令串和固定數(shù)據(jù)的區(qū)域。閃存等相當(dāng)于ROMl I,能夠改寫所寫入的程序內(nèi)容。
      [0040]RAM12提供用于保存和參照程序要使用的數(shù)據(jù)的作業(yè)區(qū)域。
      [0041]通信模塊13通過互聯(lián)網(wǎng)等網(wǎng)絡(luò)基礎(chǔ)設(shè)施在通信設(shè)備彼此之間進(jìn)行數(shù)據(jù)的收發(fā)。
      [0042]器件14是軟件搭載設(shè)備I所具有的器件。作為器件的一例,可以列舉出用于使冰箱的風(fēng)扇、壓縮機(jī)、空調(diào)的風(fēng)扇、百葉窗等進(jìn)行動(dòng)作的步進(jìn)電機(jī)、PWM(PuI se WidthModulat1n)電機(jī)等。另外,在圖2的軟件搭載設(shè)備I中,雖然僅記述了 I個(gè)器件14,但也可以由多個(gè)器件構(gòu)成。
      [0043]LED15是根據(jù)點(diǎn)亮、閃爍等的光的模式輸出來向用戶通知設(shè)備的動(dòng)作情況等的半導(dǎo)體元件。
      [0044]電子蜂鳴器16是利用電子音響的鳴動(dòng)來向用戶通知設(shè)備的動(dòng)作情況的設(shè)備。
      [0045]定時(shí)器17除了測量時(shí)刻外,還測量執(zhí)行程序命令的定時(shí)及針對器件14的輸出定時(shí)等。
      [0046]電源開關(guān)18是用于操作軟件搭載設(shè)備I的電源的按鈕,該開關(guān)的搭載位置可以是主體配件及遙控器等。
      [0047]圖3是在本發(fā)明實(shí)施方式中的軟件搭載設(shè)備I上進(jìn)行動(dòng)作的軟件的整體結(jié)構(gòu)圖。這些軟件存儲于ROMll或RAM12,由作為控制部的CPUlO執(zhí)行。在圖3中,主程序(第I程序)100是以作為軟件搭載設(shè)備I的產(chǎn)品的功能為特征的程序,平時(shí),該主程序100進(jìn)行與軟件搭載設(shè)備I連接的器件的控制。
      [0048]子程序200具有當(dāng)產(chǎn)生針對主程序100的更新請求時(shí)、代替主程序100執(zhí)行器件的控制的命令,具有與主程序100的更新相關(guān)的軟件模塊。
      [0049]程序切換部300是這樣的程序:當(dāng)從軟件發(fā)布服務(wù)器2等的外部接收到針對主程序100的更新請求、或者對外部進(jìn)行更新請求的詢問、其結(jié)果是接收到更新請求時(shí),對子程序200指示更新。此外,程序切換部300具有這樣的功能:在針對主程序100的更新完成后,結(jié)束利用子程序200執(zhí)行的器件的控制,使器件的控制返回至已替換為更新程序的主程序100。
      [0050]首先,對主程序100的詳細(xì)情況進(jìn)行說明。OSl10是用于使主程序100動(dòng)作的基本軟件。在該0S110上進(jìn)行動(dòng)作的應(yīng)用、應(yīng)用a(120a)、應(yīng)用b(120b)、應(yīng)用n(120n)是安裝有軟件搭載設(shè)備I的各個(gè)功能的程序。此外,0S100中所嵌入的驅(qū)動(dòng)a(130a)、驅(qū)動(dòng)b(130b)、驅(qū)動(dòng)m(130m)是器件驅(qū)動(dòng),并且是用于控制軟件搭載設(shè)備I所具有的硬件(器件)的程序。
      [0051]接下來,對子程序200的詳細(xì)情況進(jìn)行敘述。調(diào)度部210受理來自程序切換部300的動(dòng)作指示。動(dòng)作指示有兩種,第一種是用于調(diào)查主程序100的動(dòng)作情況的解析指示。第二種是這樣的更新執(zhí)行指示:執(zhí)行利用更新程序來替換主程序100的內(nèi)容的更新作業(yè)以及代替更新作業(yè)中的主程序100來執(zhí)行器件的控制。
      [0052]在接收到解析指示時(shí),調(diào)用調(diào)度部210。被調(diào)用的解析部220收集主程序100的執(zhí)行命令,根據(jù)所收集的執(zhí)行命令的串(執(zhí)行命令串)對執(zhí)行命令的周期性進(jìn)行模式判定。解析部220根據(jù)該模式判定,提取CPUlO周期性地執(zhí)行的命令組,將其作為周期執(zhí)行命令串存儲于存儲區(qū)域230。解析部220在結(jié)束解析后通知程序切換部300已完成。
      [0053]存儲區(qū)域230是用于保存由解析部220提取的周期執(zhí)行命令串的區(qū)域(存儲部),并且是由子程序200確保區(qū)域而得到的ROMl 1、RAMl 2上的存儲區(qū)域。
      [0054]接下來,對與主程序100的更新相關(guān)的模塊進(jìn)行說明。調(diào)度部210當(dāng)接收到更新執(zhí)行指示時(shí)調(diào)用執(zhí)行部240和更新部250。執(zhí)行部240是這樣的模塊:執(zhí)行預(yù)先從主程序100的軟件動(dòng)作中提取并保存在存儲區(qū)域230的周期程序(第2程序)。另一方面,更新部250是這樣的模塊:在由執(zhí)行部240執(zhí)行從主程序100的軟件動(dòng)作中提取的周期程序的期間,經(jīng)由通信模塊13從軟件發(fā)布服務(wù)器2接收更新程序,進(jìn)行主程序100的改寫更新。
      [0055]接下來,對程序切換部300的詳細(xì)情況進(jìn)行說明。程序切換部300是對主程序100和子程序200發(fā)出啟動(dòng)或停止的指示的程序。當(dāng)軟件搭載設(shè)備I啟動(dòng)時(shí),程序切換部300首先被調(diào)用,使CPUl O執(zhí)行主程序100。
      [0056]圖4是表示程序切換部300內(nèi)部的軟件結(jié)構(gòu)的圖。在圖4中,更新請求接收部310接收軟件發(fā)布服務(wù)器2對軟件搭載設(shè)備I在發(fā)布更新程序之前發(fā)送的更新請求。該接收是經(jīng)由圖2的通信模塊13進(jìn)行的。當(dāng)更新請求接收部310接收到更新請求時(shí),經(jīng)由程序啟動(dòng)停止部320對子程序200發(fā)送解析指示。程序啟動(dòng)停止部320對主程序100和子程序200發(fā)送動(dòng)作指不O
      [0057]接收到解析指示的子程序200執(zhí)行主程序100的解析,在解析結(jié)束時(shí),返回解析完成通知。接收到該解析完成通知的周期定時(shí)同步部330經(jīng)由程序啟動(dòng)停止部320對主程序100發(fā)送停止指示,對子程序200發(fā)送更新執(zhí)行指示。
      [0058]接收到更新執(zhí)行指示的子程序200執(zhí)行主程序100的更新處理,在更新結(jié)束時(shí),將更新完成通知發(fā)送給更新完成接收部340。接收到該通知的更新完成接收部340經(jīng)由程序啟動(dòng)停止部320對子程序200發(fā)送停止的指示,對主程序100發(fā)送執(zhí)行指示。另外,由于程序切換部300在剛剛啟動(dòng)后就啟動(dòng)主程序100,因此,通過重新啟動(dòng)軟件搭載設(shè)備I,能夠使主程序100啟動(dòng)。
      [0059]接下來,使用圖5對本實(shí)施方式I中的整體處理的動(dòng)作進(jìn)行說明。在此,以在軟件搭載設(shè)備I執(zhí)行器件控制的過程中從軟件發(fā)布服務(wù)器2發(fā)出了軟件更新通知的情況為例進(jìn)行說明。
      [0060]在本實(shí)施方式中,假設(shè)軟件發(fā)布服務(wù)器2從外部(未圖示)取得主程序100的更新程序。關(guān)于取得方法,可以從另外的網(wǎng)絡(luò)接收,也可以通過外部存儲裝置或介質(zhì)取得。
      [0061]此外,假設(shè)軟件發(fā)布服務(wù)器2管理在軟件搭載設(shè)備I中使用的主程序100的版本,在取得更新程序后,進(jìn)行比較,僅在判斷為需要更新的情況下將更新請求發(fā)送給軟件設(shè)備I。
      [0062]另外,也可以是,軟件發(fā)布服務(wù)器2將接收到的更新程序全部發(fā)送給軟件搭載設(shè)備I,由軟件搭載設(shè)備I判定是否需要更新。
      [0063]除此之外,也可以是,軟件搭載設(shè)備I詢問有無更新程序,僅在存在更新程序的情況下,軟件發(fā)布服務(wù)器2發(fā)送更新請求。
      [0064]首先,更新請求接收部310從軟件發(fā)布服務(wù)器2接收軟件的更新請求(SlOl)。接下來,更新請求接收部310經(jīng)由程序啟動(dòng)停止部320對子程序200發(fā)送調(diào)查主程序100的動(dòng)作情況的解析指示。
      [0065]作為對子程序200發(fā)送解析指示的方法,從程序啟動(dòng)停止部320可以調(diào)用可判斷為解析指示的參數(shù)和調(diào)度部210。此外,也可以預(yù)先準(zhǔn)備能夠由程序啟動(dòng)停止部320和調(diào)度部210共同訪問的存儲區(qū)域,調(diào)度部210輪詢該區(qū)域,程序啟動(dòng)停止部320變更該區(qū)域的值,由此,對子程序200發(fā)送解析指示。
      [0066]接收到解析指示的調(diào)度部210調(diào)用解析部220。解析部220進(jìn)行主程序100的解析。在進(jìn)行解析時(shí),解析部220記錄主程序100進(jìn)行動(dòng)作的執(zhí)行命令(S102)。
      [0067]為了取得主程序100進(jìn)行動(dòng)作的執(zhí)行命令的信息,存在下述這樣的方法:從CPUlO的程序計(jì)數(shù)寄存器參照保存有機(jī)器語言的存儲器;使在主程序100上進(jìn)行動(dòng)作的應(yīng)用(120a?120η)和OSllO的執(zhí)行命令以機(jī)器語言的形式輸出至存儲器上的區(qū)域或日志文件中,并對其進(jìn)行參照。
      [0068]解析部220解析所記錄的執(zhí)行命令的串(執(zhí)行命令串),從執(zhí)行命令串中提取周期執(zhí)行命令串,保存到存儲區(qū)域230(S103)。使用圖6和圖7對執(zhí)行命令串的解析進(jìn)行說明。
      [0069]圖6是表示本實(shí)施方式中的周期執(zhí)行命令串的提取例的圖。以下,雖然對檢測周期性地執(zhí)行的命令并提取在更新處理中執(zhí)行的命令的方法進(jìn)行說明,但本發(fā)明并不限定于此,也可以使用檢測與預(yù)先確定的功能對應(yīng)的命令并提取命令的方法。例如,也可以將表示主程序100中的指定范圍的地址預(yù)先存儲于ROMll,或者由軟件搭載設(shè)備I從發(fā)布服務(wù)器2取得表示主程序100中的特定范圍的地址,確定并提取命令。
      [0070 ] 在圖6中,執(zhí)行命令61 Oa?61 Om是CPU1所執(zhí)行的主程序100的機(jī)器語言。在圖6中,示出了沿著執(zhí)行時(shí)刻自左開始依次執(zhí)行的情況。另外,將多個(gè)執(zhí)行命令匯總而成的執(zhí)行命令稱作執(zhí)行命令串。在圖6的示例中,將執(zhí)行命令610a?610m匯總而成的執(zhí)行命令稱作執(zhí)行命令串610。周期執(zhí)行命令串620是作為對執(zhí)行命令串610(執(zhí)行命令610a?610m)進(jìn)行解析的結(jié)果而周期性地重復(fù)的執(zhí)行命令串。
      [0071]作為從主程序100收集執(zhí)行命令的方法,也可以將在主程序100上進(jìn)行動(dòng)作的應(yīng)用(120a?120η)正在執(zhí)行的命令輸出至日志,由解析部220參照該命令。此外,也可以將OSl 10正在執(zhí)行的命令輸出至日志,由解析部220參照該命令。
      [0072]解析部220進(jìn)行所收集的執(zhí)行命令的記錄,進(jìn)行解析。如圖6所示,像A、B、C、D、A、B、C、D、A、B、C、D、A那樣,在某一規(guī)定期間內(nèi)連續(xù)地檢測同一重復(fù)模式的情況下,例如,在該情況下,將A、B、C、D作為周期執(zhí)行命令串620進(jìn)行提取。然后,解析部220將提取出的周期執(zhí)行命令串620保存到存儲區(qū)域230。
      [0073]作為解析對象的規(guī)定期間和重復(fù)模式的數(shù)量取決于由軟件搭載設(shè)備I執(zhí)行的所有應(yīng)用(120a?120η)以何種程度周期性地動(dòng)作,因此,將預(yù)先統(tǒng)計(jì)調(diào)查而得到的、例如100毫秒的期間、模式數(shù)量為5次等的值作為預(yù)先給出的條件來使用。
      [0074]另外,關(guān)于用于判定周期性的模式提取算法,也可以利用在自然信息處理等中使用的模式識別算法等算法。
      [0075]圖7中示出執(zhí)行命令的示例。收集數(shù)據(jù)701是解析部220所收集的執(zhí)行命令的集合,解析數(shù)據(jù)702表示在解析部220對收集數(shù)據(jù)701進(jìn)行解析之后提取的周期執(zhí)行命令串。
      [0076]收集數(shù)據(jù)701和解析數(shù)據(jù)702的左側(cè)的列是用于識別執(zhí)行命令的執(zhí)行ID。另外,在圖7的執(zhí)行命令的欄中,為了容易理解,用匯編語言(助記符)進(jìn)行了標(biāo)示,但實(shí)際上代入了機(jī)器語言。
      [0077]例如,像收集數(shù)據(jù)701那樣,在重復(fù)連續(xù)地產(chǎn)生相同執(zhí)行命令的情況下,解析部220提取執(zhí)行ID0x3502至執(zhí)行ID0x3505的期間以及執(zhí)行ID0x3506至執(zhí)行ID0x350B的期間作為周期執(zhí)行命令串。
      [0078]在無法提取周期執(zhí)行命令串的情況下(S104:否),再次進(jìn)行執(zhí)行命令的記錄(S102)。雖然在圖5中未示出,但也可以在進(jìn)行執(zhí)行命令的記錄(S102)的重復(fù)時(shí),不立刻進(jìn)行重復(fù),而是暫時(shí)等待后再執(zhí)行。暫時(shí)等待的時(shí)間可以預(yù)先確定,也可以使用和更新程序一起發(fā)送的值。
      [0079]在已提取周期執(zhí)行命令串(S103)的情況下(S104:是),解析部220將解析完成通知發(fā)送給程序切換部300。接收到解析完成通知的周期定時(shí)同步部330進(jìn)行從主程序100向子程序200的切換。首先,周期定時(shí)同步部330基于從解析部220接收到的周期執(zhí)行命令串的信息,計(jì)算用于進(jìn)行從主程序100向周期執(zhí)行命令串的執(zhí)行位置的切換的定時(shí)(S105)。
      [0080]作為計(jì)算定時(shí)的方法,存在以下的方法。作為解析完成通知,解析部220發(fā)送周期執(zhí)行命令串的最初的執(zhí)行命令的執(zhí)行ID、該最初的執(zhí)行命令被主程序100執(zhí)行的時(shí)刻以及執(zhí)行周期執(zhí)行命令串所花費(fèi)的周期時(shí)間,或者,除了解析完成通知外,還發(fā)送周期執(zhí)行命令串的最初的執(zhí)彳丁命令的執(zhí)彳丁 ID、該最初的執(zhí)彳丁命令被主程序100執(zhí)彳丁的時(shí)刻以及執(zhí)彳丁周期執(zhí)行命令串所花費(fèi)的周期時(shí)間。另外,在使用該方法的情況下,在利用解析部220收集主程序100的執(zhí)行命令時(shí)還需要預(yù)先記錄該時(shí)刻。
      [0081]周期定時(shí)同步部330根據(jù)當(dāng)前的時(shí)刻(例如tl)、主程序100最后執(zhí)行的時(shí)刻(t0)和執(zhí)行周期執(zhí)行命令串所花費(fèi)的周期時(shí)間(tc)計(jì)算接下來要執(zhí)行的周期執(zhí)行命令串的最初的執(zhí)行命令的預(yù)測時(shí)刻(tn)。然后,周期定時(shí)同步部330在預(yù)測時(shí)刻(tn)進(jìn)行從主程序100向子程序200的切換(S106)。
      [0082I圖8示出從主程序100向子程序200的切換的示例。參照圖8的示例,周期執(zhí)行命令串620的A在主程序100最后執(zhí)行的時(shí)刻t0加上周期時(shí)間tc而得到的tn停止主程序100的執(zhí)行,對子程序200發(fā)出周期執(zhí)行命令串620的執(zhí)行指示。
      [0083]存在這樣的方法:在周期定時(shí)同步部330進(jìn)行從主程序100向子程序200的切換時(shí),使用程序啟動(dòng)停止部320。程序啟動(dòng)停止部320對主程序100發(fā)送停止動(dòng)作指示。
      [0084]關(guān)于發(fā)送停止動(dòng)作指示的方法,可以在主程序100側(cè)預(yù)先準(zhǔn)備用于接收停止指示的應(yīng)用,從程序啟動(dòng)停止部320調(diào)用,也可以預(yù)先準(zhǔn)備能夠由程序切換部300和主程序100共同訪問的存儲區(qū)域,程序啟動(dòng)停止部320通過變更該區(qū)域的值來對主程序100發(fā)送停止動(dòng)作指示。
      [0085]然后,針對子程序200,程序啟動(dòng)停止部320將更新執(zhí)行指示發(fā)送給調(diào)度部210。
      [0086]接收到更新執(zhí)行指示的調(diào)度部210同時(shí)執(zhí)行執(zhí)行部240和更新部250。一方的執(zhí)行部240參照存儲區(qū)域230開始執(zhí)行周期執(zhí)行命令串。另外,執(zhí)行部240重復(fù)地持續(xù)執(zhí)行周期執(zhí)行命令串。
      [0087]另一方的更新部250經(jīng)由通信模塊13下載更新程序,進(jìn)行主程序100的改寫更新
      (5107)。在進(jìn)行更新的期間,由執(zhí)行部240執(zhí)行軟件搭載設(shè)備I所需要的一部分處理,由此,為了更新程序,無需新的存儲器,能夠直接將更新程序下載到主程序100。
      [0088]更新部250在更新程序的下載完成之后,將完成通知發(fā)送給程序切換部300
      (5108)。
      [0089]接收到完成通知的程序切換部300進(jìn)行設(shè)備的停止(S109),進(jìn)行軟件搭載設(shè)備I的再啟動(dòng)(SllO)。另外,根據(jù)與軟件搭載設(shè)備I連接的器件14,例如在啟動(dòng)時(shí)需要時(shí)間的器件等的情況下,器件14的動(dòng)作會(huì)暫時(shí)中斷,因此,程序切換部300也可以不自動(dòng)進(jìn)行再啟動(dòng),而是通過手動(dòng)地操作電源開關(guān)18來調(diào)整再啟動(dòng)的定時(shí)。
      [0090]軟件搭載設(shè)備I再啟動(dòng)之后,程序切換部300啟動(dòng)被更新的主程序10(Slll)。
      [0091]通過形成為上述那樣的結(jié)構(gòu),限定為主程序100所具有的多個(gè)功能中的、在更新中也需要執(zhí)行的一部分功能,將程序的一部分復(fù)制到存儲裝置中進(jìn)行使用。因此,被復(fù)制的程序的尺寸比主程序100小,能夠節(jié)省軟件的更新所需的存儲區(qū)域的容量。此外,能夠在繼續(xù)針對器件14的動(dòng)作的同時(shí)進(jìn)行更新作業(yè)。
      [0092]另外,在本實(shí)施方式中,解析部220在從軟件發(fā)布服務(wù)器2接收到軟件的更新請求之后進(jìn)行周期執(zhí)行命令串的提取,但也可以從接收更新請求之前進(jìn)行周期執(zhí)行命令串的提取。此外,也可以不利用解析部220進(jìn)行周期執(zhí)行命令串的提取,而是在更新主程序100的期間,將軟件搭載設(shè)備I控制器件14所需的周期執(zhí)行命令串預(yù)先保存到存儲區(qū)域230。此時(shí),周期定時(shí)同步單元330將對主程序100發(fā)送停止指示的定時(shí)也一并預(yù)先保存到存儲區(qū)域230。
      [0093]關(guān)于軟件搭載設(shè)備I控制器件14所需的周期執(zhí)行命令串,可以在工廠出貨時(shí)預(yù)先存入存儲區(qū)域230,也可以事后寫入?;蛘撸部梢耘c更新部250從軟件發(fā)布服務(wù)器2接收的更新程序一同接收,保存到存儲區(qū)域230。
      [0094]實(shí)施方式2.
      [0095]在本實(shí)施方式中,對參照與設(shè)備連接的器件14的動(dòng)作以提取重復(fù)動(dòng)作的處理的情況進(jìn)行說明。
      [0096]圖9是本發(fā)明的實(shí)施方式中的、在軟件搭載設(shè)備I上進(jìn)行動(dòng)作的軟件的整體結(jié)構(gòu)圖。
      [0097]圖9中,周期輸出解析部920是監(jiān)視主程序100的器件驅(qū)動(dòng)的動(dòng)作的軟件,用于根據(jù)該動(dòng)作的執(zhí)行順序和定時(shí)來判別該動(dòng)作的周期性,提取周期輸出模式,將能執(zhí)行相同的周期輸出的周期執(zhí)行命令串保存到存儲區(qū)域230。
      [0098]圖9中,與圖3相同的標(biāo)號表不相同或相應(yīng)的部分,對于除周期輸出解析部920以外的部分,進(jìn)行與實(shí)施方式I中使用的圖3中記載的部分相同的動(dòng)作。
      [0099]接下來,使用圖10對本實(shí)施方式2中的整個(gè)動(dòng)作進(jìn)行說明。與實(shí)施方式I時(shí)相同,以在軟件搭載設(shè)備I執(zhí)行過程中從軟件發(fā)布服務(wù)器2發(fā)出軟件更新通知的情況為例進(jìn)行說明。
      [0100]關(guān)于本實(shí)施方式2中的動(dòng)作,與在實(shí)施方式I中敘述的順序相同,以下,僅對與在實(shí)施方式I中說明的動(dòng)作之間的差異進(jìn)行說明。
      [0101]更新請求接收部310發(fā)送調(diào)查主程序100的動(dòng)作情況的解析指示。另外,該指示能夠通過下述方式來實(shí)現(xiàn):通過從程序啟動(dòng)停止部320調(diào)用調(diào)度部210來發(fā)送解析指示,或者,也可以通過下述方式來實(shí)現(xiàn):預(yù)先準(zhǔn)備能夠由程序啟動(dòng)停止部320和調(diào)度部210共同訪問的存儲區(qū)域,調(diào)度部210輪詢該區(qū)域,程序啟動(dòng)停止部320變更該區(qū)域的值,由此,對子程序200發(fā)送解析指示。
      [0102]接收到輸出的解析指示的調(diào)度部210調(diào)用周期輸出解析部920來執(zhí)行。周期輸出解析部920進(jìn)行主程序100的解析。在進(jìn)行解析時(shí),周期輸出解析部920監(jiān)視在主程序100上動(dòng)作的器件驅(qū)動(dòng)(驅(qū)動(dòng)a?驅(qū)動(dòng)m),進(jìn)行這些器件驅(qū)動(dòng)的執(zhí)行順序(輸出命令)和它們的執(zhí)行時(shí)刻的記錄(S202)。
      [0103]要取得輸出命令的信息,存在下述方法:輪詢并參照被分配了用于進(jìn)行器件控制的器件寄存器的存儲區(qū)域的方法、以及預(yù)先設(shè)計(jì)器件驅(qū)動(dòng)以使得在進(jìn)行對器件的控制時(shí)發(fā)生中斷,并利用周期輸出解析部920接收該中斷的方法。
      [0104]另外,周期輸出的記錄目的地可以是周期輸出解析部920臨時(shí)準(zhǔn)備的RAM12上的存儲區(qū)域,也可以是存儲區(qū)域230。
      [0105]周期輸出解析部920解析所記錄的周期輸出,從預(yù)先準(zhǔn)備好的執(zhí)行命令串一覽中提取能執(zhí)行相同的周期輸出的執(zhí)行命令串,作為周期執(zhí)行命令串保存到存儲區(qū)域230(S203)。關(guān)于周期執(zhí)行命令串,與實(shí)施方式I相同。
      [0106]另外,也可以將預(yù)先準(zhǔn)備好的執(zhí)行命令串設(shè)為只有I個(gè),將其作為重復(fù)執(zhí)行的周期執(zhí)行命令串。在重復(fù)執(zhí)行時(shí),作為傳遞給執(zhí)行命令串的參數(shù),也可以傳遞時(shí)刻、寫入存儲器的地址、寫入值、寫入值的時(shí)間。使用圖11對周期輸出的解析進(jìn)行說明。
      [0107]圖11是表示本實(shí)施方式中的周期輸出模式的提取例的圖。圖11中,器件輸出記錄IllOa?IllOi是針對器件14的輸出模式和其執(zhí)行時(shí)刻的記錄。在圖11中,示出了沿著執(zhí)行時(shí)刻自左開始依次執(zhí)行的情況。周期輸出模式1120是對器件輸出記錄IllOa?IllOi進(jìn)行解析的結(jié)果、周期性地重復(fù)的輸出模式。執(zhí)行命令串一覽1130是用于執(zhí)行特定的輸出模式的執(zhí)行命令串的一覽。預(yù)先調(diào)查發(fā)出何種輸出命令,預(yù)先準(zhǔn)備進(jìn)行相同輸出的執(zhí)行命令串。圖11中,示出了輸出模式α的情況下的執(zhí)行命令串f_E、輸出模式β的情況下的執(zhí)行命令串€_?、輸出模式γ的情況下的執(zhí)行命令串€_6、輸出模式△的情況下的執(zhí)行命令串f_H的示例。
      [0108]例如,設(shè)存在電機(jī)X和電機(jī)Y作為器件14,對電機(jī)X輸出I的狀態(tài)為a毫秒(將此作為輸出模式α),對電機(jī)X輸出2的狀態(tài)為13_秒(將此作為輸出模式β),對電機(jī)Y輸出3的狀態(tài)為c暈秒(將此作為輸出模式γ ),像輸出模式α、輸出模式β、輸出模式γ、輸出模式α、輸出模式β、輸出模式γ那樣,在某一規(guī)定期間內(nèi)連續(xù)地檢測出同一重復(fù)模式的情況下(圖11的器件輸出記錄的不例),提取輸出模式α、輸出模式β、輸出模式γ作為周期輸出模式1120。
      [0109]周期輸出解析部920通過參照執(zhí)行命令串一覽1130生成用于執(zhí)行所提取的周期輸出模式1120的周期執(zhí)行命令串的組合1140。然后,周期輸出解析部920將周期執(zhí)行命令的組合1140保存到存儲區(qū)域230。
      [0110]另外,作為解析對象的規(guī)定期間和重復(fù)輸出模式的數(shù)量取決于由軟件搭載設(shè)備I執(zhí)行的所有器件驅(qū)動(dòng)以何種程度周期性地動(dòng)作,因此,將預(yù)先統(tǒng)計(jì)調(diào)查而得到的結(jié)果、例如100毫秒的期間、輸出模式數(shù)量為5次等的值作為已給出的條件來使用。
      [0111]另外,關(guān)于用于判定周期性的模式提取算法,也可以利用在自然信息處理等中使用的模式識別算法等算法。
      [0112]此外,對器件訪問的時(shí)間存在根據(jù)器件的情況(溫度、濕度等環(huán)境以及隨時(shí)間老化)進(jìn)行變動(dòng)的情況。因此,例如,如果是上述的示例,只要遵守α、β、γ這樣的輸出模式,對于所述輸出模式各自的執(zhí)行期間,即使稍稍有所增減也是允許的。允許的范圍取決于與軟件搭載設(shè)備I連接的器件,因此,將預(yù)先統(tǒng)計(jì)調(diào)查而得到的結(jié)果、例如增減1%以內(nèi)等的值作為已給出的條件來使用。
      [0113]返回圖10的處理流程的說明,在無法指定周期輸出模式的情況下(S204:否),監(jiān)視在主程序100上動(dòng)作的器件驅(qū)動(dòng)(驅(qū)動(dòng)a?驅(qū)動(dòng)m),再次進(jìn)行這些器件驅(qū)動(dòng)的執(zhí)行順序(輸出命令)和它們的執(zhí)行時(shí)刻的記錄(S202)。雖然在圖10中未示出,但也可以在進(jìn)行執(zhí)行順序和執(zhí)行時(shí)刻的記錄(S202)的重復(fù)時(shí),不立刻進(jìn)行重復(fù),而是暫時(shí)等待之后再執(zhí)行。暫時(shí)等待的時(shí)間可以預(yù)先確定,也可以使用和更新程序一起發(fā)送來的值。
      [0114]在周期輸出模式的指定(S203)已完成的情況下(S204:是),周期輸出解析部920將解析完成通知發(fā)送給程序切換部300。接收到解析完成通知的周期定時(shí)同步部330進(jìn)行從主程序100向子程序200的切換。首先,周期定時(shí)同步部330基于從周期輸出解析部920接收到的周期輸出模式的信息,計(jì)算用于進(jìn)行從主程序100向執(zhí)行部240進(jìn)行執(zhí)行的切換的定時(shí)(S205)。
      [0115]作為計(jì)算定時(shí)的方法,存在以下的方法。作為解析完成通知,周期輸出解析部920發(fā)送周期執(zhí)行命令串的組合1140的最初的執(zhí)行命令串的執(zhí)行ID、與該最初的執(zhí)行命令串相當(dāng)?shù)钠骷?4的輸出被主程序100執(zhí)行的時(shí)刻以及執(zhí)行周期執(zhí)行命令串所花費(fèi)的周期時(shí)間,或者,除解析完成通知外,還發(fā)送周期執(zhí)行命令串的組合1140的最初的執(zhí)行命令串的執(zhí)行ID、與該最初的執(zhí)行命令串相當(dāng)?shù)钠骷?4的輸出被主程序100執(zhí)行的時(shí)刻以及執(zhí)行周期執(zhí)行命令串所花費(fèi)的周期時(shí)間。另外,在使用該方法的情況下,在利用周期輸出解析部920收集主程序100的輸出模式時(shí)還需要預(yù)先記錄其時(shí)刻。
      [0116]周期定時(shí)同步部330根據(jù)當(dāng)前的時(shí)刻(例如tl)、主程序100最后輸出輸出模式的時(shí)刻(to)和執(zhí)行周期執(zhí)行命令串的組合1140所花費(fèi)的周期時(shí)間(tc)計(jì)算接下來要執(zhí)行的周期執(zhí)行命令串的最初的執(zhí)行命令的預(yù)測時(shí)刻(tn)。然后,周期定時(shí)同步部330在預(yù)測時(shí)刻(如)進(jìn)行從主程序100向子程序200的切換。(5206)。
      [0117]圖12中示出從主程序100向子程序200的切換的示例。參照圖12的示例,周期輸出模式1120的α在主程序100最后執(zhí)行的時(shí)刻t0加上周期時(shí)間tc而得到的tn停止主程序100的執(zhí)行,而對子程序200發(fā)出周期執(zhí)行命令串的組合1140的執(zhí)行指示。
      [0118]存在這樣的方法:在周期定時(shí)同步部330進(jìn)行從主程序100向子程序200的切換時(shí),使用程序啟動(dòng)停止部320。程序啟動(dòng)停止部320對主程序100發(fā)送停止動(dòng)作指示。
      [0119]關(guān)于發(fā)送停止動(dòng)作指示的方法,可以在主程序100側(cè)預(yù)先準(zhǔn)備用于接收停止指示的應(yīng)用,從程序啟動(dòng)停止部320調(diào)用,也可以預(yù)先準(zhǔn)備能夠由程序切換部300和主程序100共同訪問的存儲區(qū)域,程序啟動(dòng)停止部320通過變更該區(qū)域的值來對主程序100發(fā)送停止動(dòng)作指示。
      [0120]然后,針對子程序200,程序啟動(dòng)停止部320將更新執(zhí)行指示發(fā)送給調(diào)度部210。
      [0121]接收到該指示的調(diào)度部210同時(shí)執(zhí)行執(zhí)行部240和更新部250。執(zhí)行部240參照存儲區(qū)域230開始周期執(zhí)行命令串的執(zhí)行。另外,執(zhí)行部240重復(fù)繼續(xù)執(zhí)行周期執(zhí)行命令串。
      [0122]關(guān)于之后的處理,與實(shí)施方式I中敘述的順序相同。
      [0123]通過形成為上述那樣的結(jié)構(gòu),能夠節(jié)省軟件的更新所需的存儲區(qū)域的容量。此外,能夠在繼續(xù)針對器件的動(dòng)作的同時(shí)進(jìn)行更新作業(yè)。
      [0124]另外,在本實(shí)施方式中,周期輸出解析部920在從軟件發(fā)布服務(wù)器2接收到軟件的更新請求之后再進(jìn)行周期輸出模式的提取,但也可以從接收更新請求之前進(jìn)行周期輸出模式的提取。
      [0125]實(shí)施方式3.
      [0126]在本實(shí)施方式中,對針對解析部220進(jìn)行了解析的周期執(zhí)行命令串620解析無處理期間并插入用戶預(yù)先靜態(tài)地準(zhǔn)備的擴(kuò)展處理程序的情況進(jìn)行說明。
      [0127]通過插入用戶預(yù)先靜態(tài)地準(zhǔn)備的擴(kuò)展處理程序,能夠在執(zhí)行周期執(zhí)行命令串620的過程中執(zhí)行擴(kuò)展處理程序。
      [0128]例如,只要預(yù)先靜態(tài)地準(zhǔn)備遙控器等外部中斷的受理或LED的閃爍程序作為擴(kuò)展處理程序,能夠在執(zhí)行周期執(zhí)行命令串620的過程中執(zhí)行遙控器的受理處理或LED的閃爍處理。
      [0129]圖13是本發(fā)明的實(shí)施方式中的、在軟件搭載設(shè)備I上進(jìn)行動(dòng)作的軟件的整體結(jié)構(gòu)圖。
      [0130]在圖13中,擴(kuò)展處理存儲區(qū)域2040是用戶預(yù)先靜態(tài)地準(zhǔn)備的擴(kuò)展處理程序。擴(kuò)展處理程序是在執(zhí)行周期執(zhí)行命令串620的過程中想要進(jìn)一步執(zhí)行的程序,也可以是所述的遙控器等外部中斷的受理或LED的閃爍程序等。另外,也可以使得能夠經(jīng)由外部存儲裝置或通信模塊取得在擴(kuò)展處理存儲區(qū)域2040準(zhǔn)備的擴(kuò)展處理程序。
      [0131]在圖13中,無處理期間提取部2010是這樣的部分:從保存在存儲區(qū)域230的周期執(zhí)行命令串中提取連續(xù)地持續(xù)無處理的期間(無處理期間),保存到無處理期間存儲區(qū)域2020。
      [0132]另外,在本實(shí)施方式中,雖然將無處理期間存儲區(qū)域2020和擴(kuò)展處理存儲區(qū)域2040形成為與存儲區(qū)域230分開的結(jié)構(gòu),但也可以是將保存在無處理期間存儲區(qū)域2020和擴(kuò)展處理存儲區(qū)域2040的內(nèi)容保存到存儲區(qū)域230的結(jié)構(gòu)。
      [0133]在圖13中,擴(kuò)展處理分割插入部2030是這樣的部分:從無處理期間存儲區(qū)域2020參照無處理期間,對保存在擴(kuò)展處理存儲區(qū)域2040的擴(kuò)展處理命令串按無處理期間的長度進(jìn)行分割,以其分割數(shù)量復(fù)制周期執(zhí)行命令串,針對復(fù)制成的各個(gè)周期執(zhí)行命令串,將分割后的擴(kuò)展處理命令串復(fù)制到其無處理期間部分,將這些擴(kuò)展處理命令串作為I個(gè)周期執(zhí)行命令串保存到存儲區(qū)域230。
      [0134]在圖13中,與圖3相同的標(biāo)號表示相同或相當(dāng)?shù)牟糠?,對于除無處理期間提取部2010、無處理期間存儲區(qū)域2020、擴(kuò)展處理分割插入部2030、擴(kuò)展處理存儲區(qū)域2040以外的部分,進(jìn)行與實(shí)施方式I中使用的圖3中記載的部分相同的動(dòng)作。
      [0135]接下來,使用圖14對本實(shí)施方式3中的整個(gè)動(dòng)作進(jìn)行說明。與實(shí)施方式I時(shí)相同,以在軟件搭載設(shè)備I執(zhí)行過程中從軟件發(fā)布服務(wù)器2接收到軟件更新通知的情況為例進(jìn)行說明。
      [0136]關(guān)于本實(shí)施方式3中的動(dòng)作,與在實(shí)施方式I中敘述的順序相同,以下,僅對與在實(shí)施方式I中進(jìn)行了說明的動(dòng)作之間的差異進(jìn)行說明。
      [0137]無處理期間提取部2010是這樣的部分:針對保存在存儲區(qū)域230的周期執(zhí)行命令串進(jìn)行無處理期間的提取。
      [0138]無處理期間是指,匯編程序中的N0P(NO Operat1n:非操作指令)命令等、CPU對計(jì)算處理和寄存器不進(jìn)行訪問的狀態(tài)所持續(xù)的期間。
      [0139]無處理期間提取部2010將該無處理期間的信息保存到無處理期間存儲區(qū)域2020(S301)。根據(jù)以上的處理可知,在周期執(zhí)行命令串中,在哪個(gè)定時(shí)無處理。
      [0140]無處理期間提取部2010將無處理期間的信息保存到無處理期間存儲區(qū)域2020之后,調(diào)用擴(kuò)展處理分割插入部2030。
      [0141]擴(kuò)展處理分割插入部2030是這樣的部分:在上述周期執(zhí)行命令串的無處理期間復(fù)制保存在擴(kuò)展處理存儲區(qū)域2030的擴(kuò)展處理程序,作為新的周期執(zhí)行命令串保存到存儲區(qū)域230(S302)。
      [0142]更新部250在更新程序的下載完成之后,確認(rèn)存儲區(qū)域230中所保存的周期執(zhí)行命令串,判斷在中斷處理中是否存在外部中斷處理(S303)。關(guān)于判斷的方法,可以直接確認(rèn)周期執(zhí)行命令串的內(nèi)部,也可以是,擴(kuò)展處理分割插入部2030在更新周期執(zhí)行命令串時(shí)將表示該情況的信息保存到存儲區(qū)域230的一部分。
      [0143]例如,在欲利用遙控器等的外部中斷來中斷周期執(zhí)行而再啟動(dòng)的情況下,將接收外部中斷信號的處理定義為擴(kuò)展處理。
      [0144]更新部250在接收到外部中斷信號的情況下(S304:是),將更新程序的下載完成通知發(fā)送到程序切換部300,程序切換部300進(jìn)行設(shè)備的停止,實(shí)施再啟動(dòng)。
      [0145]在不接收外部中斷信號的情況下(S304:否),更新部250待機(jī)直至受理外部中斷信號為止。另外,雖然未圖示,更新部250繼續(xù)待機(jī)直至受理外部中斷信號為止,因此,也可以在經(jīng)過了預(yù)先設(shè)定好的時(shí)間的情況下,自動(dòng)使處理前進(jìn)至S108。
      [0146]圖15和圖16是表示本實(shí)施方式的無處理期間提取部2010中的無處理期間的提取和對無處理期間追加擴(kuò)展處理的示例的圖。
      [0147]在圖15中,執(zhí)行命令串2110a?2110m是在收集主程序100的執(zhí)行命令而得到的執(zhí)行命令串、周期性地像211Oc、211Og和211Ok那樣出現(xiàn)NOP的示例。
      [0148]關(guān)于提取重復(fù)模式的方法,與實(shí)施方式I相同,將所提取的周期執(zhí)行命令串作為第I周期執(zhí)行命令串2120。第I周期執(zhí)行命令串2120中包含N0P2120nop。
      [0149]使用圖16對無處理期間提取部2010提取無處理期間并保存擴(kuò)展處理時(shí)的詳細(xì)情況進(jìn)行說明。在本實(shí)施方式中,作為保存在擴(kuò)展處理存儲區(qū)域2040的擴(kuò)展處理,以存在命令長度為topt的擴(kuò)展處理2130的情況為例。
      [0150]無處理期間提取部2010從所提取的周期執(zhí)行命令串2120中提取連續(xù)的NOP處理的連續(xù)期間2120nop,保存到無處理期間存儲區(qū)域2020。
      [0151]接下來,擴(kuò)展處理分割插入部2030參照保存在擴(kuò)展處理存儲區(qū)域2040的擴(kuò)展處理2130,比較無處理期間2120nop及其命令長度。
      [0152]此時(shí),在擴(kuò)展處理2130的命令長度topt比無處理期間2020nop的命令長度tnop長的情況下,按照tnop對擴(kuò)展處理2130進(jìn)行時(shí)間分割。
      [0153]例如,將進(jìn)行了時(shí)間分割的擴(kuò)展處理分別作為擴(kuò)展處理2131(擴(kuò)1)、擴(kuò)展處理2132(擴(kuò)2)進(jìn)行保存。
      [0154]接下來,擴(kuò)展處理分割插入部2030復(fù)制周期執(zhí)行命令串2120,準(zhǔn)備與上述時(shí)間分割數(shù)量對應(yīng)的量(該情況下為2個(gè)),生成周期執(zhí)行命令串2141、周期執(zhí)行命令串2142。
      [0155]然后,針對各個(gè)周期執(zhí)行命令串的無處理期間2120nop,復(fù)制擴(kuò)展處理2131、擴(kuò)展處理2132。另外,周期執(zhí)行命令串2141的無處理期間2120nop和擴(kuò)展處理2131的處理時(shí)間相同,因此,正好匹配,但周期執(zhí)行命令串2141的無處理期間2120nop和擴(kuò)展處理2132的處理時(shí)間不一致,因此,在附圖的示例中,N0P2133多余。
      [0156]接下來,擴(kuò)展處理分割插入部2030連結(jié)所復(fù)制的周期執(zhí)行命令串,保存到存儲區(qū)域230。在本實(shí)施方式的示例中,連結(jié)周期執(zhí)行命令串2141和周期執(zhí)行命令串2142,生成I個(gè)周期執(zhí)行命令串2150,保存到存儲區(qū)域230。
      [0157]關(guān)于之后的處理,與實(shí)施方式I中敘述的順序相同。
      [0158]另外,關(guān)于用于進(jìn)行無處理期間的提取的模式提取算法,也可以利用在自然信息處理等中使用的模式識別算法等算法。
      [0159]或者,也可以在擴(kuò)展處理中保存用戶的任意的程序。例如,如果是使LED閃爍的程序,可以在更新程序的下載中使產(chǎn)品所附帶的LED閃爍。
      [0160]例如,如果是接收遙控器的中斷并再啟動(dòng)(跳轉(zhuǎn)至復(fù)位向量)的程序,可以在更新程序的下載完成之后接收遙控器的信號,使周期執(zhí)行在用戶的定時(shí)停止并再啟動(dòng)。
      [0161]另外,雖然擴(kuò)展處理可以是用戶的任意的程序,但不得是OS的系統(tǒng)呼叫或調(diào)用原有程序庫等、依賴于OS或原有程序庫的程序。這是因?yàn)?,周期處理只有根?jù)周期執(zhí)行命令串才成立,不包含OS等的處理。
      [0162]通過形成為上述的結(jié)構(gòu),能夠節(jié)省軟件的更新所需的存儲區(qū)域的容量。此外,能夠在繼續(xù)針對器件的動(dòng)作的同時(shí)進(jìn)行更新作業(yè)。此外,在軟件的更新中還可以執(zhí)行預(yù)先準(zhǔn)備好的任意的程序。
      [0163]另外,在上述的說明中,雖然將存儲區(qū)域230作為存儲部,但也可以將存儲主程序100、子程序200、程序切換部300的區(qū)域一并作為存儲部。
      【附圖說明】
      [0164]
      [0165]1:軟件搭載設(shè)備;2:軟件發(fā)布服務(wù)器;3:網(wǎng)絡(luò);10:CPU;11:R0M;12:RAM;13:通信模塊;14:器件;15:LED; 16:電子蜂鳴器;17:定時(shí)器;18:電源開關(guān);100:主程序;110:0S; 120a?120η:應(yīng)用;130a?130m:器件驅(qū)動(dòng);200:子程序;210:調(diào)度部;220:解析部;230:存儲區(qū)域;240:執(zhí)行部;250:更新部;300:程序切換部;310:更新請求接收部;320:程序啟動(dòng)停止部;330:周期定時(shí)同步部;340:更新完成接收部;61a?61Om:執(zhí)行命令串;620:周期執(zhí)行命令串;701:示出解析部220所收集的執(zhí)行命令串的表;702:示出解析部220進(jìn)行了解析后被提取的周期執(zhí)行命令串的表;920:周期輸出解析部;111 Oa?1110 1:器件輸出記錄;1120:周期輸出模式;1130:執(zhí)行命令串一覽;1140:周期執(zhí)行命令串的組合;2010:無處理期間提取部;2020:無處理期間存儲區(qū)域;2030:擴(kuò)展處理分割插入部;2040:擴(kuò)展處理存儲區(qū)域;21 1a?21 1h:執(zhí)行命令串;2120:nop無處理期間;2130:擴(kuò)展處理命令串;2131:擴(kuò)展處理命令串;2132:擴(kuò)展處理命令串;2133:Ν0Ρ; 2141:周期執(zhí)行命令串;2142:周期執(zhí)行命令串;2150:周期執(zhí)行命令串。
      【主權(quán)項(xiàng)】
      1.一種軟件搭載設(shè)備,其特征在于,所述軟件搭載設(shè)備具有: 存儲部,其存儲了第I程序和第2程序,其中,所述第I程序控制與設(shè)備連接的器件,所述第2程序的程序大小比所述第I程序小,包含所述第I程序的多個(gè)功能中的一部分功能;和 控制部,其與所述存儲部連接,在受理了所述第I程序的更新請求的情況下,停止所述第I程序的執(zhí)行,改寫更新所述第I程序,并且,在所述第I程序的更新中,執(zhí)行所述第2程序的所述一部分功能。2.根據(jù)權(quán)利要求1所述的軟件搭載設(shè)備,其特征在于, 所述控制部參照所述第I程序?yàn)榱丝刂破骷趫?zhí)行的命令,提取重復(fù)執(zhí)行的命令作為周期執(zhí)行命令串,并將所提取的周期執(zhí)行命令串作為所述第2程序存儲于所述存儲部。3.根據(jù)權(quán)利要求1所述的軟件搭載設(shè)備,其特征在于, 所述控制部針對所述器件,檢測重復(fù)進(jìn)行的動(dòng)作,提取與重復(fù)動(dòng)作的處理對應(yīng)的多個(gè)命令作為周期執(zhí)行命令串,并將所提取的周期執(zhí)行命令串作為所述第2程序存儲于所述存儲部。4.根據(jù)權(quán)利要求2所述的軟件搭載設(shè)備,其特征在于, 所述控制部針對所述周期執(zhí)行命令串,提取未進(jìn)行處理的無處理期間,并且將在更新中要執(zhí)行的擴(kuò)展處理插入到所述無處理期間中。5.根據(jù)權(quán)利要求4所述的軟件搭載設(shè)備,其特征在于, 所述控制部分割所述擴(kuò)展處理而插入到多個(gè)所述無處理期間中。6.一種軟件更新方法,其特征在于,包括如下的步驟: 發(fā)送針對第I程序的更新請求,該第I程序控制與設(shè)備連接的器件; 提取周期執(zhí)行命令串并存儲于存儲部中,該周期執(zhí)行命令串用于在更新所述第I程序的期間僅繼續(xù)進(jìn)行所述器件的一部分控制; 在受理了所述更新請求的情況下,所述設(shè)備停止所述第I程序的執(zhí)行并執(zhí)行所述周期執(zhí)行命令串; 向正在執(zhí)行所述周期執(zhí)行命令串的所述設(shè)備發(fā)送所述第I程序的更新程序;以及 在所述更新程序的下載結(jié)束后,所述設(shè)備停止所述周期執(zhí)行命令串的執(zhí)行,執(zhí)行被替換為所述更新程序的所述第I程序。
      【文檔編號】G06F11/00GK106030539SQ201480075765
      【公開日】2016年10月12日
      【申請日】2014年11月11日
      【發(fā)明人】桐村昌行
      【申請人】三菱電機(jī)株式會(huì)社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1