(58)【調査した分野】(Int.Cl.,DB名)
稼働しているリアルタイムオペレーティングシステムの複数の周期タスクのリアルタイムスケジューリングを取得して参照し、前記複数の周期タスクがアイドル状態となる時間を算出する更新管理部と、
前記時間にファームウェアの更新を実行する更新制御部と、
を備え、
前記更新制御部は、前記周期タスクの実行周期の始期から継続してアイドル状態となる期間から事前に計測した前記ファームウェアの更新処理に必要な期間を差し引いた値である調整期間を算出し、前記ファームウェアの更新を前記調整期間だけ待機させる実行調整部を有する、更新装置。
稼働しているリアルタイムオペレーティングシステムの複数の周期タスクのリアルタイムスケジューリングを取得して参照し、前記複数の周期タスクがアイドル状態となる時間を算出する処理と、
前記時間にファームウェアの更新を実行する処理と、
前記周期タスクの実行周期の始期から継続してアイドル状態となる期間から事前に計測した前記ファームウェアの更新処理に必要な期間を差し引いた値である調整期間を算出し、前記ファームウェアの更新を前記調整期間だけ待機させる処理と、
をコンピュータに実行させる、更新プログラム。
【発明を実施するための形態】
【0012】
以下、本開示を実施するための最良の形態について、添付図面を参照しながら説明する。但し、本開示が以下の実施の形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【0013】
<実施の形態1>
先ず、本実施の形態の更新装置の構成を説明する。
図1は、本実施の形態の更新装置の構成を示すブロック図である。
図1に示すように、更新装置1は、更新管理部2及び更新制御部3を備えている。更新管理部2は、稼働しているリアルタイムオペレーティングシステムの複数の周期タスクのリアルタイムスケジューリングを取得して参照し、複数の周期タスクがアイドル状態となる時間を算出する。更新制御部3は、算出した時間にファームウェアの更新を実行する。
【0014】
次に、本実施の形態の更新方法の流れを説明する。
図2は、本実施の形態の更新方法の流れを示すフローチャート図である。先ず、更新管理部2は、稼働しているリアルタイムオペレーティングシステムの複数の周期タスクのリアルタイムスケジューリングを取得して参照する(S1)。そして、更新管理部2は、取得したリアルタイムスケジューリングに基づいて、複数の周期タスクがアイドル状態となる時間を算出する(S2)。
【0015】
次に、更新制御部3は、算出した時間にファームウェアの更新を実行する(S3)。例えば、周期タスクAが3周期内で1回実行し、周期タスクBが4周期内で1回実行し、周期タスクCが6周期内で2回実行し、優先度がファームウェアの更新>周期タスクA>周期タスクB>周期タスクCと設定されたリアルタイムスケジューリングの場合、
図3に示すように、周期タスクA、B及びCの全てがアイドル状態となる時間にファームウェアを更新する。
【0016】
このように本実施の形態の更新装置1及び更新方法は、複数の周期タスクのリアルタイムスケジューリングを取得して参照するので、複数の周期タスクのリアルタイムスケジューリングの乱れを抑制しつつ、ファームウェアの更新が可能である。
【0017】
<実施の形態2>
図4は、本実施の形態のリアルタイムシステムの構成を示すブロック図である。
図4に示すように、リアルタイムシステム10は、プロセッサ20、主記憶装置30及び更新装置40を備えており、処理のリアルタイム性を保証するためにオペレーティングシステムとしてリアルタイムオペレーティングシステム(RTOS)が稼働している。
【0018】
ここで、
図5は、RTOSの機能ブロック図である。
図6は、カーネルの機能ブロック図である。
図5に示すように、RTOS50は、ある処理(タスク)が一定期間内に終了すること(リアルタイム性)を保証するOSであり、OS管理タスク51を備えている。
【0019】
OS管理タスク51は、タスク52及びカーネル53を備えている。タスク52としては、周期的に実行される周期タスクと、非周期タスクと、の2種類のタスクが存在する。カーネル53は、RTOS50において実行するタスク52の管理を行う領域であり、
図6に示すように、スケジューラ531及びタスク管理情報532を備えている。カーネル53は、特別な優先度を持つ周期タスクとして定期的に自分自身を実行し、タスク52をディスパッチする。
【0020】
スケジューラ531は、リアルタイム性を保証したタスク52の実行順序割り当て(スケジューリング)を提供する。詳細には、スケジューラ531は、どのタスク52がいつ実行されるかを、予め定められたアルゴリズムにより決定し、タスク管理情報532の管理情報に基づいて、実行するタスク52をディスパッチする。ここでは、スケジューリングアルゴリズムとして、レートモノトニックスケジューリング(Rate Monotonic Scheduling)を用いることができる。
【0021】
タスク管理情報532は、タスク52に固有の情報を表すデータ構造であり、RTOS50で生成されるTCB(Task Control Block)である。タスク管理情報532は、タスク52の優先度、実行時間、実行周期及びコンテキスト情報などが格納されている。これらのタスク52やカーネル53は、
図5に示すように、デバイスドライバ60と協働して制御される。
【0022】
プロセッサ20は、主記憶装置30のプログラム領域から実行するプログラムを読み取って実行する中央演算処理装置(CPU:Central Processing Unit)であり、命令実行部21、プログラムカウンタ22及び割り込みコントローラ23を備えている。
【0023】
命令実行部21は、主記憶装置30のプログラム領域から読み取ったプログラム(命令)を実行する。プログラムカウンタ22は、プロセッサ20が実行するプログラムのアドレスを格納する。割り込みコントローラ23は、プロセッサ20に対する割り込み処理を制御する。
【0024】
主記憶装置30は、データ領域31及びプログラム領域32を備えている。データ領域31は、プログラムの変数情報を格納する。プログラム領域32は、プログラム(RTOS50を含むファームウェア)のテキスト情報を格納する。ここで、ファームウェア71は、外部記憶装置70に格納されている。外部記憶装置70は、LAN(Local Area Network)などの通信路でリアルタイムシステム10と接続されている。
【0025】
主記憶装置30は、プログラム領域32として運用中又は更新用のプログラムを格納するメモリ領域を2個以上有する。例えば、本実施の形態では、第1のプログラム領域321及び第2のプログラム領域322を備えており、プロセッサ20が実行するプログラムの読み取り先を切り替えることにより、実行するファームウェア71を切り替える(更新する)。
【0026】
更新装置40は、実施の形態1の更新装置1に対してより好ましい構成とされている。ここで、
図7は、本実施の形態の更新装置の構成を示すブロック図である。更新装置40は、
図7に示すように、更新管理部41及び更新制御部42を備えている。更新管理部41は、スケジューリング算出部411、スケジューリングテーブル412及びアイドル時間算出部413及びアドレス格納部414を備えている。
【0027】
更新管理部41は、RTOS50のスケジューラ531及びタスク管理情報532(即ち、リアルタイムスケジューリング)を参照し、将来の周期タスクのスケジューリング内容(即ち、スケジューリングアルゴリズム)をスケジューリングテーブル412に記録する。また、更新管理部41は、外部記憶装置70からファームウェア71の更新要求を受け取ると、更新タイミングとなる周期タスクがアイドル状態となる時間を算出し、当該時間を示す情報を更新制御部42に伝達する。ここで、アイドル状態となる時間とは、詳細は後述するが、アイドル状態となる時刻及び期間である。
【0028】
詳細には、スケジューリング算出部411は、スケジューラ531及びタスク管理情報532のスケジューリングアルゴリズムを参照し、RTOS50が将来実行する周期タスクの実行順序を算出する。スケジューリング算出部411は、算出した将来実行する周期タスクの実行順序を示す情報をスケジューリングテーブル412に記録する。スケジューリングテーブル412は、算出した将来実行する周期タスクの実行順序を示す情報などを記録する。
【0029】
アイドル時間算出部413は、スケジューリングテーブル412を参照し、全ての周期タスクがアイドル状態となる時間を算出する。アイドル時間算出部413は、算出した全ての周期タスクがアイドル状態となる時間を示す情報を更新制御部42に伝達する。
【0030】
アドレス格納部414は、複数のプログラム領域32の先頭アドレスを指し示す値を格納する。アドレス格納部414は、更新制御部42のアドレス切り替え処理部422に切り替え先のプログラム領域32のアドレスを提供する。ここで、アドレス格納部414には、現在のオフセットアドレス414a及び更新先のオフセットアドレス414bが格納されている。
【0031】
更新制御部42は、非周期タスク制御部421及びアドレス切り替え処理部422を備えている。更新制御部42は、更新管理部41から全ての周期タスクがアイドル状態となる時間を示す情報を受け取り、ファームウェア71の更新制御を行う。
【0032】
非周期タスク制御部421は、非周期タスクを一時的に抑止する命令をカーネル53に発行し、非同期割り込みを一時的に抑止する命令をプロセッサ20の割り込みコントローラ23に発行する。
【0033】
アドレス切り替え処理部422は、ファームウェア71の格納先を切り替えるために、プログラムカウンタ22のアドレス値を切り替える命令を発行する。切替先としては、アドレス格納部414のアドレス値を用いる。
【0034】
次に、本実施の形態の更新管理部41の処理の流れを説明する。
図8は、本実施の形態の更新管理部の処理の流れを示すフローチャート図である。先ず、更新管理部41は、ネットワークやRTOS50のタスク52などからファームウェア更新要求が存在するか否かを確認する(S101)。更新要求が存在する場合(S101のYES)、更新要求フラグに1を代入する(S102)。
【0035】
次に、更新管理部41は、更新要求フラグを確認し(S103)、更新要求フラグに1が代入されていない場合(S101のNO、S103のNO)、詳細を後述するように、周期タスクのスケジューリング情報の登録処理を行い(S108)、更新管理部41の処理を終了する。
【0036】
一方、更新要求フラグに1が代入されている場合(S103のYES)、更新管理部41は、詳細を後述するように、全ての周期タスクがアイドル状態となる時間を算出する(S104)。その後、更新管理部41は、更新用のファームウェア71が用意されているか否かを確認する(S105)。ファームウェア71が用意されていない場合(S105のNO)、更新管理部41は、エラー通知を行い更新要求フラグに0を代入し、周期タスクのスケジューリング情報の登録処理を行い(S108)、更新管理部41の処理を終了する。
【0037】
一方、更新用のファームウェア71の用意が完了している場合(S105のYES)、S104の工程で算出した周期タスクがアイドル状態となる時間において更新処理を実施するように、更新制御部42に当該更新処理をスケジューリングする(S107)。
【0038】
次に、上述のスケジューリング情報の登録処理の流れを説明する。
図9は、スケジューリング情報の登録処理の流れを示すフローチャート図である。先ず、スケジューリング算出部411は、タスク管理情報532から周期タスクの情報を取得する(S201)。そして、周期タスクの情報及びスケジューラ531のアルゴリズムに基づいて、実行周期t+Nまでの周期タスクの割り当てを算出する(S202)。
【0039】
但し、tは現在の周期タスクの実行周期であり、Nは算出する実行周期の上限である。Nは、例えば100tickである。1tickは、RTOS50が周期タスクの実行を切り替える最小単位を表している。その後、算出した周期タスクの割り当て順序を示す情報をスケジューリングテーブル412に格納する(S203)。
【0040】
次に、上述のアイドル状態となる時間の算出処理及び更新タイミングの算出処理の流れを説明する。
図10は、アイドル状態となる時間の算出処理の流れを示すフローチャート図である。
図11は、更新タイミングの算出処理の流れを示すフローチャート図である。
【0041】
先ず、アイドル時間算出部413は、周期タスクが全てアイドル状態となる時刻を算出する(
図10のS301)。つまり、アイドル時間算出部413は、現在の周期タスクの実行周期tから1tick後の値を実行周期Aに代入し(
図11のS401)、実行周期Aにおける周期タスクの割り当てをスケジューリングテーブル412より確認する(
図11のS402)。
【0042】
次に、アイドル時間算出部413は、実行周期Aにおいて全ての周期タスクがアイドル状態であるか否かを確認する(
図11のS403)。実行周期Aにおいて全ての周期タスクがアイドル状態である場合(
図11のS403のYES(
図10のS302のYES))、アイドル時間算出部413は、実行周期Aの始期から継続してアイドル状態となる期間Tを記録し(
図11のS404)、事前に設定した閾値と期間Tの値とを比較する(
図11のS405)。当該閾値は、事前に算出したファームウェア71の更新に要する期間を閾値として設定することができる。
【0043】
Tが閾値よりも大きい場合(
図11のS405のYES)、アイドル時間算出部413は、実行周期A(即ち、アイドル状態となる時刻)及び期間Tを更新制御部42に通知する(
図11のS406)。一方、Tが閾値よりも小さい場合(
図11のS405のNO)、アイドル時間算出部413は、エラーを通知して終了する(
図11のS409)。
【0044】
周期期間Aにおいて全ての周期タスクがアイドル状態ではない場合(
図11のS403のNO)、アイドル時間算出部413は、さらに1tick後の周期タスクの割り当てを算出する(
図11のS407)。Aがスケジューリングテーブル412に記録した範囲を超過する場合(
図11のS408のYES)、アイドル時間算出部413は、エラーを通知して終了する(
図11のS409)。
【0045】
エラーが通知された場合、即ち、全ての周期タスクがアイドル状態である実行周期を算出できなかった場合(
図10のS302のNO)、アイドル時間算出部413は、アイドル時刻の算出をランダム期間だけ待機し(
図10のS303)、再びアイドル時刻を算出する(S304)。このような処理を一定回数以上実行しても(
図10のS305、S306、
図11のS408)、全ての周期タスクがアイドル状態となる時刻を算出できない場合(
図10のS306のYES)、更新管理部41にエラーを通知する(
図10のS307)。一方、全ての周期タスクがアイドル状態となる時刻を算出できた場合(
図10のS302のYES、
図10のS305のYES)、
図11のS404の工程を実行する。
【0046】
次に、更新制御部42におけるファームウェア71の更新処理の流れを説明する。
図12は、更新制御部におけるファームウェアの更新処理の流れを示すフローチャート図である。非周期タスク制御部421は、更新中にスケジューリングが乱されることを防止するため、非周期タスク及び非同期割り込みが実行された場合、非周期タスク及び非同期割り込みの一時停止命令を発行する(S501)。その後、非周期タスク制御部421は、更新後のファームウェア71へ非周期タスク及び非同期割り込みを再開する指示を与えるために、更新完了を表すフラグに1を代入する(S502)。
【0047】
そして、アドレス切り替え処理部422は、
図13に示すように、現在実行中の第1のプログラム領域321から、更新用の第2のプログラム領域322に切り替える。詳細には、アドレス切り替え処理部422は、タスク管理情報532に含まれるコンテキスト情報に格納されている更新前の第1のプログラム領域321を指し示すアドレスに、更新先の第2のプログラム領域322を指し示す更新先のオフセットアドレス414bを足す(S503)。
【0048】
同様に、プログラムカウンタ22に、更新先のファームウェア71が格納されているメモリ領域のアドレス値を足し合わせることでプログラムカウンタ22の値を更新する(S504)。なお、
図13に示すように、更新前後のファームウェア71は同じデータ領域を参照するため、運用は中断されない。
【0049】
次に、ファームウェア71の更新管理処理が実行される間隔及び更新後の後処理の流れを説明する。ファームウェア71の更新管理処理及び更新処理は、カーネル53の処理と協調し、一定周期毎に繰り返し実行される。
図14は、カーネルの処理フローを示す図である。
【0050】
先ず、カーネル53は、更新管理処理を実行する(S601)。これにより、割り込み管理やメモリ管理などのカーネル53の内部処理を行い(S602)、周期タスクのスケジューリングを実行する(S603)。次に、カーネル53は、更新処理がスケジューリングされているか否かを判定し(S604)、更新処理がスケジュールされている場合(S604のYES)、更新処理を実行する(S606)。一方、更新処理がスケジューリングされていない、即ち、周期タスクが割り当てられている場合(S604のNO)、当該周期タスクを実行する(S605)。
【0051】
次に、カーネル53は、更新完了フラグを確認し(S607)、ファームウェア71の更新処理の有無を確認する。更新完了フラグに1が代入され(S607のYES)、更新処理において非周期タスク及び非同期割り込みの実行が一時的に停止されている場合、非周期タスク及び非同期割り込みの再開命令を発行し(S608)、更新完了した旨を外部に通知する(S609)。
【0052】
このとき、通知先は、例えば、外部記憶装置70やRTOS50で実行中の周期タスクなどが挙げられる。最後に、更新完了フラグと更新要求フラグに0を代入し(S610)、ファームウェア71の更新後の後処理を終了する。
【0053】
一方、更新完了フラグに0が代入されている場合(S607のNO)、S601の工程に戻る。ちなみに、更新処理において非周期タスク及び非同期割り込みの実行が一時的に停止されていない場合は、S608の工程は省略される。
【0054】
本実施の形態の更新装置40、リアルタイムシステム10及び更新方法は、実施の形態1と同様に、複数の周期タスクのリアルタイムスケジューリングを取得して参照するので、複数の周期タスクのリアルタイムスケジューリングの乱れを抑制しつつ、ファームウェア71の更新が可能である。
【0055】
しかも、本実施の形態の更新装置40、リアルタイムシステム10及び更新方法は、更新中にスケジューリングが乱されることを防止するため、非周期タスクの割り込みを一時的に抑止する。そのため、確実にファームウェア71の更新を実行することができる。
【0056】
また、本実施の形態の更新装置40、リアルタイムシステム10及び更新方法は、ファームウェア71の更新に要する期間が当該ファームウェア71の更新に要する期間を超えている場合、ファームウェア71の更新を実行しないので、周期タスクのリアルタイムスケジューリングの乱れを抑制することができる。
【0057】
<実施の形態3>
図15は、本実施の形態の更新装置の構成を示すブロック図である。
図15に示すように、本実施の形態の更新装置401は、実施の形態2の更新装置40と略等しい構成とされているが、更新制御部42に実行調整部423を備えている。実行調整部423は、複数の周期タスクのリアルタイムスケジューリングが乱されないように、ファームウェア71の更新処理を実行するタイミングを調整する。
【0058】
図16は、本実施の形態の更新制御部におけるファームウェアの更新処理の流れを示すフローチャート図である。
図16に示すように、実施の形態2の更新制御部42におけるファームウェア71の更新処理の流れと略等しいが、S501の工程の後に、更新制御部42の実行調整部423は、周期タスクの実行周期の調整期間Pを算出する(S505)。ここで、Pは、期間Tから事前に計測したファームウェアの更新処理に必要な期間Uを引いた値である。
【0059】
次に、実行調整部423は、調整期間Pの値が1tickよりも大きいか否かを判定し(S506)、調整期間Pの値が1tickよりも大きい場合(S506のYES)、ファームウェア71の更新が周期タスクのリアルタイムスケジューリングを乱さないように、ファームウェア71の更新をPtickだけ待機させる(S507)。
【0060】
ここで、
図17に示すように、例えば、周期タスクAが3周期内で1回実行し、周期タスクBが6周期内で1回実行し、周期タスクCが7周期内で1回実行し、優先度が周期タスクA>周期タスクB>周期タスクCと設定されたリアルタイムスケジューリングの場合、調整期間Pの値が1tickになるようにファームウェアの更新をPtickだけ待機させる。
これにより、周期タスクのリアルタイムスケジューリングが乱されることを抑制できる。
【0061】
上記実施の形態は本件発明者により得られた技術思想の適用に関する例に過ぎない。すなわち、当該技術思想は、上述した実施の形態のみに限定されるものではなく、種々の変更が可能であることは勿論である。
【0062】
例えば、
図18に示すように、RTOS50を含むファームウェアを取り外し可能なROM80、90上のプログラム領域81、91に格納してもよい。このとき、更新管理部は、更新用のファームウェア71が準備できたことを判別することが出来ない。
【0063】
そのため、更新装置の運用者は、更新装置の入力部や外部システムから更新用のファームウェア71の準備が完了した旨を更新管理部に伝達する必要がある。このように取り外し可能なROM80、90のプログラム領域81、91にプログラムを格納することにより、外部記憶装置70を用意する必要がなくなる。
【0064】
例えば、
図19に示すように、主記憶装置30とROM80、90の双方にプログラム領域32、81、91を設けてもよい。複数のプログラム領域32、81、91を用意するため、外部記憶装置70を用意する必要があるが、外部記憶装置70又はROM領域のどちらかが故障した場合においても、ファームウェア71を更新することができる。
【0065】
なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータ(情報通知装置を含むコンピュータ)に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。さらに、この例は、CD−ROM(Read Only Memory)、CD−R、CD−R/Wを含む。さらに、この例は、半導体メモリ(例えば、マスクROM、PROM、EPROM、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0066】
上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
稼働しているリアルタイムオペレーティングシステムの複数の周期タスクのリアルタイムスケジューリングを取得して参照し、前記複数の周期タスクがアイドル状態となる時間を算出する更新管理部と、
前記時間にファームウェアの更新を実行する更新制御部と、
を備える、更新装置。
【0067】
(付記2)
前記更新制御部は、非周期タスクが前記時間に実行されないように、前記非周期タスクの割り込みを一時的に抑止する非周期タスク制御部を備える、付記1に記載の更新装置。
【0068】
(付記3)
前記更新制御部は、前記複数の周期タスクのリアルタイムスケジューリングが乱されないように、前記ファームウェアの更新処理を実行するタイミングを調整する実行調整部を備える、付記1又は2に記載の更新装置。
【0069】
(付記4)
前記更新制御部は、前記複数の周期タスクがアイドル状態となる期間が前記ファームウェアの更新処理に必要な期間を超えている場合、前記エラー通知を実行するアイドル時間算出部を備える、付記1乃至3のいずれか1項に記載の更新装置。
【0070】
(付記5)
付記1乃至4のいずれか1項に記載の更新装置と、
前記複数の周期タスクを実行するプロセッサと、
を備える、リアルタイムシステム。
【0071】
(付記6)
稼働しているリアルタイムオペレーティングシステムの複数の周期タスクのリアルタイムスケジューリングを取得して参照し、前記複数の周期タスクがアイドル状態となる時間を算出する工程と、
前記時間にファームウェアの更新を実行する工程と、
を備える、更新方法。
【0072】
(付記7)
非周期タスクが前記時間に実行されないように、前記非周期タスクの割り込みを一時的に抑止し、前記ファームウェアの更新を優先的に実行する工程を備える、付記6に記載の更新方法。
【0073】
(付記8)
前記複数の周期タスクのリアルタイムスケジューリングが乱されないように、前記ファームウェアの更新処理を実行するタイミングを調整する工程を備える、付記6又は7に記載の更新方法。
【0074】
(付記9)
前記複数の周期タスクがアイドル状態となる期間が前記ファームウェアの更新処理に必要な期間を超えている場合、エラー通知を実行する工程を備える、付記6乃至8のいずれか1項に記載の更新方法。
【0075】
(付記10)
稼働しているリアルタイムオペレーティングシステムの複数の周期タスクのリアルタイムスケジューリングを取得して参照し、前記複数の周期タスクがアイドル状態となる時間を算出する処理と、
前記時間にファームウェアの更新を実行する処理と、
をコンピュータに実行させる、更新プログラム。
【0076】
(付記11)
非周期タスクが前記時間に実行されないように、前記非周期タスクの割り込みを一時的に抑止し、前記ファームウェアの更新を優先的に実行する処理を備える、付記10に記載の更新プログラム。
【0077】
(付記12)
前記複数の周期タスクのリアルタイムスケジューリングが乱されないように、前記ファームウェアの更新処理を実行するタイミングを調整する処理を備える、付記10又は11に記載の更新プログラム。
【0078】
(付記13)
前記複数の周期タスクがアイドル状態となる期間が前記ファームウェアの更新処理に必要な期間を超えている場合、エラー通知を実行する工程を備える、付記10乃至12のいずれか1項に記載の更新プログラム。
【解決手段】本開示に係る一形態の更新装置40は、稼働しているリアルタイムオペレーティングシステムの複数の周期タスクのリアルタイムスケジューリングを取得して参照し、複数の周期タスクがアイドル状態となる時間を算出する更新管理部41と、当該時間にファームウェアの更新を実行する更新制御部42と、を備える。