JP6579095B2 - プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラム - Google Patents

プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラム Download PDF

Info

Publication number
JP6579095B2
JP6579095B2 JP2016249379A JP2016249379A JP6579095B2 JP 6579095 B2 JP6579095 B2 JP 6579095B2 JP 2016249379 A JP2016249379 A JP 2016249379A JP 2016249379 A JP2016249379 A JP 2016249379A JP 6579095 B2 JP6579095 B2 JP 6579095B2
Authority
JP
Japan
Prior art keywords
program
representative value
version
microcomputer
version representative
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.)
Active
Application number
JP2016249379A
Other languages
English (en)
Other versions
JP2018106257A (ja
Inventor
一博 美馬
一博 美馬
耕志 寺田
耕志 寺田
貴裕 中山
貴裕 中山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2016249379A priority Critical patent/JP6579095B2/ja
Priority to US15/837,077 priority patent/US11243693B2/en
Publication of JP2018106257A publication Critical patent/JP2018106257A/ja
Application granted granted Critical
Publication of JP6579095B2 publication Critical patent/JP6579095B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Description

本発明は、プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラムに関する。
プログラムと共にそのバージョン情報がフラッシュROMに格納された組み込みマイコンを搭載した装置において、ホストコンピュータからの問合せコマンドに対して当該バージョン情報を返す技術が知られている(例えば、特許文献1を参照)。
特開平11−203112号公報
上記特許文献1の技術によれば、マイコンに格納されたプログラムのバージョンの確認は、特定範囲のアドレスのバイナリデータから計算した値を照合することにより行っている。しかし、マイコンに格納するプログラムの作成作業においては、マイコンに書き込むプログラムの元となるソースファイルを作成するだけでなく、ソースファイルに関連するメタデータ、データ構造定義ファイル、通信データファイル、ドキュメントファイルなども並行して作成し、これらを纏めてソースディレクトリとして管理することが行われる。
ソースファイルには変更がなくても、一つのソースディレクトリとして管理された関連するファイルに変更が生じる場合がある。特に、当該ソースファイルから生成されたプログラムが実行し得る機能のライセンス情報(どの国で利用可能か、商用利用は可能かなど)や、品質保証情報(どの程度まで確実に動作することが確認されているのか)は、プログラムそのものの変更とは関係なく、変更され得る情報である。
生成されたプログラムがこれらの関連するファイルと切り離されてマイコンに格納されると、当該マイコンが組み込まれた装置において、プログラムのどの機能をどのような条件で実行しても良いのか、判断ができなくなることがあった。マイコンの開発においては、開発段階や組み込み対象装置の違いなどによって、互いに異なる多数のソースディレクトリが作成されるので、できあがるマイコンの種類もそれに応じて増大する。このようなマイコンが組み込まれる装置についても、装置を制御する制御プログラムが書き換えられたりするので、制御プログラム側で、組み込まれたマイコンの利用可能な機能を予め把握しておくことも難しい。すなわち、装置の制御プログラムが、組み込まれたマイコンのプログラムの各機能を実行して良いのか、正しく判断することが困難であった。
本発明は、このような問題を解決するためになされたものであり、書き込まれたプログラムの機能に対してどのような制限が課せられているのかを容易に判断できるプログラム書き込み方法等を提供するものである。
本発明の第1の態様におけるプログラム書き込み方法は、マイコンが内蔵するフラッシュROMへプログラムを書き込むプログラム書き込み方法であって、ソースディレクトリに含まれる予め定められた種類のファイルから、ソースディレクトリのバージョンを表すバージョン代表値を生成する生成ステップと、バージョン代表値をソースディレクトリに含まれるソースファイルに追記する追記ステップと、バージョン代表値が追記されたソースファイルをコンパイルして生成した、ソースディレクトリに対応するプログラムをフラッシュROMへ書き込むプログラム書込ステップとを含む。
このように、ソースファイルだけでなく、ソースファイルに関連する他のファイルも含めて、ソースディレクトリに対応するバージョン代表値を生成し、これを追記したソースファイルをバイナリ化してフラッシュROMに書き込むので、作成されたマイコンがどのような素性のソースディレクトリから作成されたのかを、組み込まれた装置側で容易に照合できるようになる。
また、上記の書き込み方法は、互いにバージョンの異なるソースディレクトリごとに生成ステップ、追記ステップおよびプログラム書込ステップを実行して、それぞれに対応する複数のプログラムを利用可能に実装する実装ステップを含んでも良い。このようなステップを経て作成されたマイコンは、フラッシュROMに複数のプログラムを含むが、組み込まれた装置側からの要求に広く対応することができる。
また、上記の書き込み方法は、バージョン代表値と実行可能な機能の対応を表す対応情報をフラッシュROMに書き込む対応情報書込ステップを含んでも良い。このような対応情報までマイコン側で保持しておけば、組み込まれた装置側で対応情報を取得する手間を省くことができる。
本発明の第2の態様における装置の制御方法は、上記のプログラム書き込み方法によってプログラムが書き込まれたマイコンを搭載した装置の制御方法であって、装置において実行させたい機能の実行が許可されているバージョンのバージョン代表値を取得する取得ステップと、フラッシュROMに書き込まれたバージョン代表値を読み込む読込ステップと、読込ステップで読み込まれたバージョン代表値が、取得ステップで取得されたバージョン代表値と一致する場合は機能を実行し、一致しない場合は機能の実行を禁止する実行処理ステップとを含む。
このように、実行させたい機能の実行が許可されているバージョンのバージョン代表値を別途取得して、フラッシュROMに書き込まれたバージョン代表値と比較すれば、装置の制御プログラムが、マイコンのプログラムによって実行したい機能を実行して良いのかを正しく判断することができる。特に、マイコンが装置に搭載された後に利用許諾の条件等が変更された場合であっても、正しく判断することができる。
本発明の第3の態様における装置の制御方法は、上記のプログラム書き込み方法によってプログラムが書き込まれたマイコンを搭載した装置の制御方法であって、装置において実行させたい機能の実行が許可されているバージョンのバージョン代表値を取得する取得ステップと、フラッシュROMに書き込まれた複数のプログラムのそれぞれに対応するバージョン代表値を読み込む読込ステップと、読込ステップで読み込まれた複数のバージョン代表値のうち、取得ステップで取得されたバージョン代表値と一致するバージョン代表値を抽出する抽出ステップと、抽出ステップで抽出されたバージョン代表値に対応するプログラムによって機能を実行する実行処理ステップとを含む。
このように、複数のプログラムがフラッシュROMに書き込まれたマイコンに対しては、実行させたい機能の実行が許可されているバージョンのバージョン代表値を別途取得して、これと一致するバージョン代表値を抽出し、一致したバージョン代表値に対応するプログラムを実行するので、装置の制御プログラムの要求に対して広く応えることができる。
本発明の第4の態様における装置の制御方法は、上記のプログラム書き込み方法によって複数のプログラムが書き込まれたマイコンを搭載した装置の制御方法であって、装置において実行させたい機能の実行が許可されているバージョンのバージョン代表値を対応情報から抽出する抽出ステップと、抽出ステップで抽出されたバージョン代表値に対応するプログラムによって機能を実行する実行処理ステップとを含む。
このように、複数のプログラムと共に対応情報までがフラッシュROMに書き込まれたマイコンに対しては、実行させたい機能の実行が許可されているバージョンのバージョン代表値を別途取得するステップを省くことができるので、装置の制御プログラムが外部機器と通信等することなく、実行したい機能を迅速かつ正確に実行させることができる。
本発明の第5の態様におけるプログラム書き込みプログラムは、上記のプログラム書き込み方法を、マイコンに接続されたプログラム書き込み装置のコンピュータに実行させる。また、本発明の第6の態様における制御プログラムは、上記の装置の制御方法を、装置のホストコンピュータに実行させる。
本発明により、書き込まれたプログラムの機能に対してどのような制限が課せられているのかを容易に判断できるプログラム書き込み方法等を提供することができる。
本実施形態における第1実施例のプログラム書き込み方法を説明する、装置構成と処理手順を示す図である。 作成されたマイコンを組み込んだロボットの制御方法を説明する、装置構成と処理手順を示す図である。 バージョン代表値リストの例である。 本実施形態における第2実施例のプログラム書き込み方法を説明する、装置構成と処理手順を示す図である。 作成されたマイコンを組み込んだロボットの制御方法を説明する、装置構成と処理手順を示す図である。 本実施形態における第3実施例のプログラム書き込み方法を説明する、装置構成と処理手順を示す図である。 作成されたマイコンを組み込んだロボットの制御方法を説明する、装置構成と処理手順を示す図である。 作成されたマイコンを組み込んだロボットの制御方法を説明する、装置構成と処理手順を示す図である。
以下、発明の実施の形態を通じて本発明を説明するが、特許請求の範囲に係る発明を以下の実施形態に限定するものではない。また、実施形態で説明する構成の全てが課題を解決するための手段として必須であるとは限らない。
図1は、本実施形態における第1実施例のプログラム書き込み方法を説明する、装置構成と処理手順を示す図である。本実施形態にかかるプログラム書き込み方法は、マイコン200が内蔵するフラッシュROM210へプログラムを書き込む書き込み方法である。当該方法は、マイコン200に接続されたプログラム書き込み装置としてのマイコン作成PC100のコンピュータが、書き込みプログラムを実行することにより実現される。
マイコン作成PC100は、通信インターフェイスである接続IF190を介して接続されているマイコン200のフラッシュROM210の記憶内容を書き換えることができる。マイコン200は、ホストコンピュータから要求された機能に対して、フラッシュROM210に書き込まれたプログラムを実行することにより、その演算結果を出力するマイクロプロセッサである。本実施例によって作成されたフラッシュROM210には、一つのプログラム101cが書き込まれている。プログラム101cがフラッシュROM210へ書き込まれるまでの処理について説明する。
マイコン作成PC100のコンピュータは、外部の開発装置で作成されたソースディレクトリ101を取り込む(ステップS11)。ソースディレクトリ101は、コンパイルすることによりバイナリ形式のプログラムに変換されるソースファイル101aの他に、ソースファイル101aに関連するメタデータファイル、データ構造定義ファイル、通信データファイル、ドキュメントファイル等を含む。
マイコン作成PC100のコンピュータは、ソースディレクトリ101に含まれるファイルのうち、予め定められた種類のファイルから、ソースディレクトリ101に対応するバージョンを示すバージョン代表値101bを生成する(ステップS12)。予め定められるファイルの種類としては、例えば、ソースファイル101aの他に、メタデータファイルとデータ構造定義ファイルとが選ばれる。変更が加えられたファイルの存在によりソースディレクトリに対応するバージョン代表値が変化するので、予め定められるファイルの種類は、マイコン開発において段階的に変更されることが予想されるファイルを含めるように選ぶと良い。
マイコン作成PC100のコンピュータは、ステップS12において例えば、バージョン管理システムとしてGitを用い、バージョン代表値101bとしてCommit_IDを生成させる。Commit_IDは、コミットハッシュ値で表され、例えばC言語で表現されているソースファイル101aの文法形式に合わせて成型される。
マイコン作成PC100のコンピュータは、このように生成したバージョン代表値101bを、ソースファイル101aの所定箇所に追記する。そして、バージョン代表値101bを追記したソースファイル101aをコンパイルして、バイナリ形式のプログラム101cを生成する(ステップS14)。
マイコン作成PC100のコンピュータは、このプログラム101cを、接続IF190を介して、フラッシュROM210へ書き込む(ステップS15)。この一連の処理を経て、対象とする装置に組み込むためのマイコン200が完成する。完成したマイコン200は、フラッシュROM210に書き込まれたプログラム101cに、ソースファイル101aが含まれていたソースディレクトリ101に対応するバージョン代表値101bの情報が埋め込まれている。マイコン200を組み込んだ装置のホストコンピュータやマイコン作成PC100のコンピュータは、読み込みプログラムにより、このバージョン代表値101bを、プログラム101cのバイナリコードから抜き出して再現することができる。
バージョン代表値101bは、ソースファイル101a以外のファイルにも基づいて生成されるので、ある開発段階においてソースファイル101aに変更が加えられなかったとしても他の関連ファイルに変更が加えられたなら、以前と異なった値になる。したがって、書き込まれたプログラムが実行できる機能が同一であっても、読み込みプログラムにより読み出されたバージョン代表値が異なれば、その元となったソースファイルが含まれていたソースディレクトリが異なることがわかる。換言すれば、バージョン代表値を確認すれば、その元となったソースファイルが含まれていたソースディレクトリを特定することができる。ソースディレクトリを特定できることは、マイコン開発を担当する開発者にとっても、その後の変更や修正の作業の効率化に資すると言える。
次に、このように作成されたマイコン200を搭載した装置の制御方法について説明する。ここでは、自律移動ロボットを装置の一例として説明する。図2は、作成されたマイコン200を制御基板上に組み込んだロボット300の制御方法を説明する、装置構成と処理手順を示す図である。ロボット300は、ホストコンピュータ400を備える。ホストコンピュータ400は、複数の機能プログラムを選択的に実行させることによりロボット300の全体制御を行う制御プログラムを実行する。
ホストコンピュータ400は、ロボット300の制御中に特定の処理が必要となった場合に、その処理を担う機能を有する機能プログラムを選択して実行する。マイコン200のフラッシュROM210に書き込まれたプログラム101cは、このような機能プログラムのうちのひとつである。したがって、ホストコンピュータ400は、プログラム101cが有する機能を実行したい場合に、マイコン200へアクセスする。
ホストコンピュータ400は、プログラム101cが有する機能を実行使用とする場合に、まず、外部機器や着脱式メモリ等からバージョン代表値リスト401を取り込む(ステップS41)。なお、この取り込み作業は、ロボット300の電源オンと同時に実行しても良いし、作業者の入力指示等により予め実行しても良い。
ここで、バージョン代表値リスト401を説明する。図3は、バージョン代表値リスト401の例である。バージョン代表値リスト401は、既に生成済みのバージョン代表値のそれぞれを、対応するプログラムが実行し得る機能ごとにライセンス情報およびテスト結果情報に関連付けるリストである。ここでは、プログラムが実行しうる機能の例として、2つの撮像部を用いて周辺環境を三次元的に認識するステレオビジョンと、周囲の人間に話しかける音声を生成する音声合成とを示している。
ライセンス情報は、その機能を実行する地域として、全世界で許可されているのか、日本のみで許可されているのか、いずれの国でも許可されていないのかなどに分類される。また、その機能を利用する利用形態として、商用でも許可されているのか、商用は認められないが試験であれば許可されているのか、いずれの利用も許可されていないのかなどに分類される。図示するように、例えば記号A2は、実行する地域として全世界で許可され、利用形態として商用利用は不可であるが試験であれば許可されることを表す。ホストコンピュータ400が音声合成の機能を実行しようとする場合に、ロボット300が商用で利用されているのであれば、A2と記されているバージョン代表値101bのプログラムは、実行が禁止される。
テスト結果情報は、その機能を実行したときの信頼性を表す品質保証情報として、テスト結果を記述したファイルへのリンク情報が示されている。リンクされたファイルには、その機能がどの程度まで確実に動作することが確認されているか、どのような条件下であれば正常に動作するかなどが記述されている。例えば、ステレオビジョンの欄に示されるsvtr.txtには、1mの距離で1cm角の物体の認識率が60%などと記述されている。ホストコンピュータ400がステレオビジョンの機能を実行しようとする場合に、制御プログラムが90%以上の認識率を実行条件としているなら、svtr.txtへのリンク情報を持つバージョン代表値101bのプログラムは、実行が禁止される。なお、図でN/Aは、対応するファイルが存在しないことを示す。
図2へ戻り、ステップS41以降の説明を続ける。ステップS41でバージョン代表値リスト401を取り込んだら、ホストコンピュータ400は、マイコン200のフラッシュROM210にアクセスして、プログラム101cの一部として書き込まれたバージョン代表値101bを読み込む(ステップS42)。そして、プログラム101cから読み込んだバージョン代表値101bが、バージョン代表値リスト401中の当該機能の実行が許可されているバージョン代表値に含まれているか否かを比較判断する(ステップS43)。
例えば、ロボット300を日本において商用で動作させており、ホストコンピュータ400がステレオビジョンの機能をプログラム101cに実行させようとした場合を想定する。この場合、図4のバージョン代表値リスト401を参照すると、プログラム101cから読み込んだバージョン代表値101bが「1fb6c1」か「17s21c」のいずれかと一致すれば、ステレオビジョンの機能を実行することが許可されていると判断する。なお、バージョン代表値が「1fb6c1」には、ライセンス情報として記号A1(全世界許可/商用利用可)が与えられており、バージョン代表値が「17s21c」には、ライセンス情報として記号B1(日本のみ許可/商用利用可)が与えられている。
この例では、制御プログラムに品質保証の実行条件は設定されていないが、さらに品質保証の条件も設定されている場合は、ホストコンピュータ400は、バージョン代表値リスト401のテスト結果情報も確認する。すなわち、ホストコンピュータ400は、ライセンス情報とテスト結果情報の両条件を満たすバージョン代表値を探し、プログラム101cから読み込んだバージョン代表値101bと一致するか否かを比較判断する。
なお、ロボット300をどこ(国)でどのように(商用/試験)利用するかについては、予め作業者によって入力されても良いし、センサ情報を利用して自動的に設定されても良い。例えば、ホストコンピュータ400は、GPS情報を取得してロボット300がショッピングセンターなどの商用スペースに位置することを認識すれば、これらを自動的に設定することができる。
また上記の例では、ホストコンピュータ400がバージョン代表値リスト401の全体を取り込み、そこから実行させたい機能の実行が許可されているバージョン代表値を抽出して特定した。しかし、バージョン代表値リスト401の全体を取り込むのではなく、実行させたい機能の実行が許可されているバージョン代表値だけを取り込むようにしても構わない。すなわち、バージョン代表値リスト401から条件を満たすバージョン代表値を抽出する作業は、ホストコンピュータ400が実行しても良いし、外部のコンピュータに委任しても良い。いずれにしても、ホストコンピュータ400は、バージョン代表値リスト401から抽出されたバージョン代表値を取得し、取得したバージョン代表値と、プログラム101cから読み込んだバージョン代表値101bとが一致するか否かを比較判断する。
ホストコンピュータ400は、ステップS43の比較の結果、一致すると判断した場合は当該機能を実行し(ステップS44)、一致しないと判断した場合は当該機能の実行を禁止する(ステップS45)。なお、ステップS44においては、ホストコンピュータ400は、マイコン200へ当該機能の実行指令を送り、マイコン200は、この実行指令を受けてプログラム101cを実行する。
このような手順を踏んで機能の実行または禁止を処理すれば、マイコン200がロボット300に搭載された後に制御プログラムが更新されても、最新の制御プログラムの動作指示に合わせてマイコン200のプログラムを利用することができる。また、マイコン200がロボット300に搭載された後にライセンス情報やテスト結果情報が更新されても、最新の状況に応じてマイコン200のプログラムを利用することができる。
次に、本実施形態における第2実施例について説明する。図4は、第2実施例のプログラム書き込み方法を説明する、装置構成と処理手順を示す図である。図1で示す装置構成、処理手順と同様のものについては、特に言及しない限り同じ符番を付してその説明を省略する。
第1実施例のプログラム書き込み方法では、マイコン200のフラッシュROM210へ書き込むプログラムは1つであったが、第2実施例では複数のプログラムを書き込む。具体的には、互いにバージョンの異なるソースディレクトリ101、102、103…のそれぞれに対してステップS11からS15を繰り返し実行し、それぞれに対応するプログラム101c、102c、103c…をフラッシュROM210に利用可能に実装する。
フラッシュROM210に書き込まれたプログラム101c、102c、103cは、それぞれ異なるバージョン代表値の情報が埋め込まれている。このようなステップを経て作成されたマイコン200は、フラッシュROM210に複数のプログラムを含むので、第1実施例におけるマイコン200の利点に加えて、組み込まれた装置側からの要求に広く対応することができる。
次に、このように作成されたマイコン200を搭載した装置の制御方法について説明する。ここでも第1実施例と同様に、自律移動ロボットを装置の一例として説明する。図5は、作成されたマイコン200を制御基板上に組み込んだロボット300の制御方法を説明する、装置構成と処理手順を示す図である。図2で示す装置構成、処理手順と同様のものについては、特に言及しない限り同じ符番を付してその説明を省略する。なお、本実施例においてフラッシュROM210に書き込まれたプログラムの数は、複数であればいくつであっても構わないが、ここでは3つのプログラム101c、102c、103cが書き込まれているものとする。
ステップS41でバージョン代表値リスト401を取り込んだら、ホストコンピュータ400は、ステップS42で、マイコン200のフラッシュROM210にアクセスして、プログラム101cの一部として書き込まれたバージョン代表値101b、プログラム102cの一部として書き込まれたバージョン代表値102b、プログラム103cの一部として書き込まれたバージョン代表値103bを読み込む。そして、読み込んだバージョン代表値101b、102b、103bのうちの少なくともいずれかが、バージョン代表値リスト401中の当該機能の実行が許可されているバージョン代表値に含まれているか否かを比較判断し、一致するものを抽出する(ステップS46)。
ホストコンピュータ400は、ステップS46で抽出されたバージョン代表値に対応するプログラムを指定して、マイコン200へ当該機能の実行指令を送る(ステップS47)。マイコン200は、実行指令を受けとったら、指定されたプログラムを実行する。ステップS46でいずれのバージョン代表値も一致しなかった場合は、当該機能の実行を禁止する(ステップS48)。なお、ステップS46で一致するバージョン代表値が複数存在したら、ホストコンピュータ400は、そのうちの一つを実行対象として選択する。例えば、テスト結果情報がより優れたものであるとか、より新しく生成されたバージョン代表値であるとかを基準として選択すると良い。
このような手順を踏んで機能の実行または禁止を処理すれば、第1実施例における処理の利点に加えて、マイコン200が組み込まれた装置の制御プログラムの要求に対して当該機能を実行できる可能性が高まる。
次に、本実施形態における第3実施例について説明する。図6は、第3実施例のプログラム書き込み方法を説明する、装置構成と処理手順を示す図である。図1、図4で示す装置構成、処理手順と同様のものについては、特に言及しない限り同じ符番を付してその説明を省略する。
第2実施例のプログラム書き込み方法では、マイコン200のフラッシュROM210へ書き込むのはプログラムのみであったが、第3実施例では複数のプログラムを書き込むと共に、バージョン代表値リスト401もフラッシュROM210へ書き込む。具体的には、マイコン作成PC100のコンピュータは、ステップS15までの繰り返し処理が完了したら、外部機器やマイコン作成PC100の内蔵メモリ等からバージョン代表値リスト401を取り込む(ステップS16)。そして、取り込んだバージョン代表値リスト401をフラッシュROM210へ書き込む(ステップS17)。このようなステップを経て作成されたマイコン200は、フラッシュROM210にバージョン代表値リストを対応情報としてマイコン側で保持するので、第2実施例におけるマイコン200の利点に加えて、組み込まれた装置側でバージョン代表値リストを取得する手間を省けるという利点も得られる。
なお、マイコン作成PC100のコンピュータは、ステップS16で取り込んだバージョン代表値リスト401をそのままステップS17で書き込むのではなく、再構成したバージョン代表値リストを書き込んでも良い。例えば、ステップS15で書き込んだ各プログラムが実行し得る機能に対して許可されているバージョン代表値を抽出し、抽出されたバージョン代表値のみで構成されたバージョン代表値リストを作成してフラッシュROM210へ書き込んでも良い。
次に、このように作成されたマイコン200を搭載した装置の制御方法について説明する。ここでも第1実施例、第2実施例と同様に、自律移動ロボットを装置の一例として説明する。図7は、作成されたマイコン200を制御基板上に組み込んだロボット300の制御方法を説明する、装置構成と処理手順を示す図である。図2、図5で示す装置構成、処理手順と同様のものについては、特に言及しない限り同じ符番を付してその説明を省略する。
本実施例においては、ホストコンピュータ400は、バージョン代表値リスト401を取り込むことなくステップS42を実行して、フラッシュROM210からバージョン代表値101b、102b、103bを読み込む。続けて、フラッシュROM210からバージョン代表値リスト401を読み込む(ステップS49)。なお、ステップS42とS43は逆順であっても構わない。
ホストコンピュータ400は、読み込んだバージョン代表値101b、102b、103bのうちの少なくともいずれかが、バージョン代表値リスト401中の当該機能の実行が許可されているバージョン代表値に含まれているか否かを比較判断し、一致するものを抽出する(ステップS50)。ホストコンピュータ400は、ステップS50で抽出されたバージョン代表値に対応するプログラムを指定して、マイコン200へ当該機能の実行指令を送る(ステップS51)。マイコン200は、実行指令を受けとったら、指定されたプログラムを実行する。
ステップS50でいずれのバージョン代表値も一致しなかった場合は、当該機能の実行を禁止する(ステップS52)。なお、ステップS50で一致するバージョン代表値が複数存在したら、ホストコンピュータ400は、そのうちの一つを実行対象として選択する。例えば、テスト結果情報がより優れたものであるとか、より新しく生成されたバージョン代表値であるとかを基準として選択すると良い。
このような手順を踏んで機能の実行または禁止を処理すれば、第1実施例、第2実施例における処理の利点に加えて、ホストコンピュータ400が外部機器と通信等することなく、実行したい機能を迅速かつ正確に実行させることができる。
さらに第3実施例の変形例について説明する。図8は、図6で説明した処理手順を経て作成されたマイコン200を組み込んだロボット300の制御方法を説明する、装置構成と処理手順を示す図である。
図7で説明した実施例においては、フラッシュROM210からバージョン代表値101b、102b、103bを読み込む処理と、フラッシュROM210からバージョン代表値リスト401を読み込む処理を、ホストコンピュータ400が実行したが、本変形例においては、マイコン200がこれらを行う。
ホストコンピュータ400は、実行したい機能を実行させる機能指令をマイコン200へ送る(ステップS61)。マイコン200は、機能指令を受けると、フラッシュROM210からバージョン代表値101b、102b、103bを読み込む(ステップS62)。続けて、フラッシュROM210からバージョン代表値リスト401を読み込む(ステップS63)。なお、ステップS62とS63は逆順であっても構わない。
マイコン200は、読み込んだバージョン代表値101b、102b、103bのうちの少なくともいずれかが、バージョン代表値リスト401中の当該機能の実行が許可されているバージョン代表値に含まれているか否かを比較判断し、一致するものを抽出する(ステップS64)。マイコン200は、ステップS64で抽出されたバージョン代表値に対応するプログラムを展開して実行する(ステップS65)。ただし、ステップS64でいずれのバージョン代表値も一致しなかった場合は、当該機能が実行できなかったことをしめす実行不可フラグをホストコンピュータ400へ返す(ステップS66)。
このような手順を踏んで機能の実行または禁止を処理すれば、ホストコンピュータ400の処理負担を軽減することができる。
以上説明した各実施例においては、マイコン200をマイコン作成PC100に接続してフラッシュROM210への書き込み処理等を行ったが、フラッシュROM210へのプログラムの書き込み処理等は、装置に組み込まれた後のマイコン200に対しても実行し得る。例えば、装置とマイコン作成PC100とをネットワークを介して接続すれば、接続IF190がネットワークと装置の通信パスに置き換わったものと捉えることができる。
また、バージョン代表値リスト401の例では、対応するプログラムが実行し得る機能ごとにライセンス情報およびテスト結果情報に関連付けるリストとして説明したが、関連づける情報は、ライセンス情報とテスト結果情報のいずれかであっても良い。また、これらに加えて、あるいは置き換えて他の情報を関連づけるリストであっても良い。いずれにしても、フラッシュROM210に書き込まれたプログラムがバージョンごとに実行できる機能の制限を受ける場合に、その制限を定義する情報と関連づけるリストであれば良い。
また、マイコン200が組み込まれる装置の例としてロボット300を採用したが、もちろん他の装置であっても構わない。装置の全体を統括制御する制御プログラムが、マイコンの機能プログラムを利用する装置であれば、上記のマイコンを組み込むことができる。
100 マイコン作成PC、101、102、103 ソースディレクトリ、101a ソースファイル、101b バージョン代表値、101c、102c、103c プログラム、190 接続IF、200 マイコン、210 フラッシュROM、300 ロボット、400 ホストコンピュータ、401 バージョン代表値リスト

Claims (8)

  1. マイコンが内蔵するフラッシュROMへプログラムを書き込むプログラム書き込み方法であって、
    ソースディレクトリに含まれる予め定められた種類のファイルから、前記ソースディレクトリのバージョンを表すバージョン代表値を生成する生成ステップと、
    前記バージョン代表値を前記ソースディレクトリに含まれるソースファイルに追記する追記ステップと、
    前記バージョン代表値が追記された前記ソースファイルをコンパイルして生成した、前記ソースディレクトリに対応するプログラムを前記フラッシュROMへ書き込むプログラム書込ステップと
    を含むプログラム書き込み方法。
  2. 互いに前記バージョンの異なる前記ソースディレクトリごとに前記生成ステップ、前記追記ステップおよび前記プログラム書込ステップを実行して、それぞれに対応する複数のプログラムを利用可能に実装する実装ステップを含む請求項1に記載のプログラム書き込み方法。
  3. 前記バージョン代表値とプログラムによって実行可能な機能の対応を表す対応情報を前記フラッシュROMに書き込む対応情報書込ステップを含む請求項2に記載のプログラム書き込み方法。
  4. 請求項1から3のいずれか1項に記載のプログラム書き込み方法を、前記マイコンに接続されたプログラム書き込み装置のコンピュータに実行させるプログラム書き込みプログラム。
  5. 請求項1に記載のプログラム書き込み方法によってプログラムが書き込まれた前記マイコンを搭載した装置の制御方法であって、
    前記装置において実行させたい機能の実行が許可されているバージョンのバージョン代表値を取得する取得ステップと、
    前記フラッシュROMに書き込まれたバージョン代表値を読み込む読込ステップと、
    前記読込ステップで読み込まれたバージョン代表値が、前記取得ステップで取得されたバージョン代表値と一致する場合は前記機能を実行し、一致しない場合は前記機能の実行を禁止する実行処理ステップと
    を含む装置の制御方法。
  6. 請求項2に記載のプログラム書き込み方法によって複数のプログラムが書き込まれた前記マイコンを搭載した装置の制御方法であって、
    前記装置において実行させたい機能の実行が許可されているバージョンのバージョン代表値を取得する取得ステップと、
    前記フラッシュROMに書き込まれた前記複数のプログラムのそれぞれに対応するバージョン代表値を読み込む読込ステップと、
    前記読込ステップで読み込まれた複数のバージョン代表値のうち、前記取得ステップで取得されたバージョン代表値と一致するバージョン代表値を抽出する抽出ステップと、
    前記抽出ステップで抽出されたバージョン代表値に対応するプログラムによって前記機能を実行する実行処理ステップと
    を含む装置の制御方法。
  7. 請求項3に記載のプログラム書き込み方法によって複数のプログラムが書き込まれた前記マイコンを搭載した装置の制御方法であって、
    前記装置において実行させたい機能の実行が許可されているバージョンのバージョン代表値を前記対応情報から抽出する抽出ステップと、
    前記抽出ステップで抽出されたバージョン代表値に対応するプログラムによって前記機能を実行する実行処理ステップと
    を含む装置の制御方法。
  8. 請求項5から7のいずれか1項に記載の装置の制御方法を、前記装置のホストコンピュータに実行させる制御プログラム。
JP2016249379A 2016-12-22 2016-12-22 プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラム Active JP6579095B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016249379A JP6579095B2 (ja) 2016-12-22 2016-12-22 プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラム
US15/837,077 US11243693B2 (en) 2016-12-22 2017-12-11 Program writing method, control method of apparatus, program for program writing, and control program of apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016249379A JP6579095B2 (ja) 2016-12-22 2016-12-22 プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2018106257A JP2018106257A (ja) 2018-07-05
JP6579095B2 true JP6579095B2 (ja) 2019-09-25

Family

ID=62630521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016249379A Active JP6579095B2 (ja) 2016-12-22 2016-12-22 プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラム

Country Status (2)

Country Link
US (1) US11243693B2 (ja)
JP (1) JP6579095B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111176715B (zh) * 2019-12-16 2023-05-12 青岛聚看云科技有限公司 一种信息调用方法及服务器
CN113672278B (zh) * 2021-08-23 2024-05-10 湖南惠农科技有限公司 微服务架构下的服务节点版本控制方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11203112A (ja) 1998-01-12 1999-07-30 Sony Corp 組み込みマイコン等のソフトウェアのバージョン情報読み取り方法とこれに使用されるプログラム
JP2000276337A (ja) * 1999-03-25 2000-10-06 Ntt Communicationware Corp 端末装置、システム管理装置、プログラム自動切替システム、端末装置の制御方法およびシステム管理装置の制御方法
JP4626032B2 (ja) 2000-08-28 2011-02-02 株式会社デンソー プログラム変換装置,プログラム変換方法及び記録媒体
JP2008305035A (ja) * 2007-06-06 2008-12-18 Hitachi Ltd 装置、更新方法、および制御ソフト。
JP2012088765A (ja) * 2010-10-15 2012-05-10 Hitachi Solutions Ltd プログラム起動制御方法、プログラム起動制御プログラム、携帯端末、ネットワークシステム
US9116713B1 (en) * 2013-03-12 2015-08-25 Emc Corporation System and method for expression evaluation in a distributed networking environment
WO2015069912A1 (en) * 2013-11-06 2015-05-14 Improvement Interactive, LLC Dynamic application version selection
JP2015184824A (ja) * 2014-03-20 2015-10-22 富士通株式会社 情報処理プログラム、情報処理方法および情報処理装置
US10037204B2 (en) * 2014-04-22 2018-07-31 Delphix Corp. Version control of applications

Also Published As

Publication number Publication date
US11243693B2 (en) 2022-02-08
US20180181312A1 (en) 2018-06-28
JP2018106257A (ja) 2018-07-05

Similar Documents

Publication Publication Date Title
JP5992622B2 (ja) 悪意あるアプリケーション診断装置及び方法
US10929117B2 (en) Container image building using shared resources
US9460306B1 (en) System and method for controlling access of machine code to operating system resources
US9916149B2 (en) Information processing apparatus, control method for information processing apparatus, and storage medium of program for executing control method
JP6579095B2 (ja) プログラム書き込み方法、装置の制御方法、プログラム書き込みのためのプログラム、および装置の制御プログラム
KR20210029621A (ko) 전자 장치에서 어플리케이션 업데이트 시 런타임 성능 개선 방법 및 장치
US10481883B2 (en) Inter-file optimization program generation method, and program generator
US9367686B1 (en) System and method for antivirus checking of native images of software assemblies
CN111984595B (zh) 一种文件处理方法及装置、存储介质
CN106295327B (zh) 可执行文件的加固方法和装置
US10310871B2 (en) Non-transitory computer-readable recording medium storing control program, control device and control method
JP2019003629A (ja) チートアプリケーション識別方法およびシステム
US11507367B2 (en) Firmware update method and firmware update system thereof
KR101645412B1 (ko) 악성파일진단장치 및 악성파일진단장치의 진단 방법
JP6705482B2 (ja) システム構築パラメータ管理装置、システム構築パラメータ管理システム、システム構築パラメータ管理方法、及び、システム構築パラメータ管理プログラム
KR101563897B1 (ko) 디바이스에서 사용자 데이터의 무결성을 보장하는 데이터 획득 장치 및 방법
US11281778B2 (en) Device and method for verifying application
US10726109B2 (en) Method and system for identifying whether an application is genuine by means of digital watermarks
EP3842932B1 (en) Firmware update method and firmware update system thereof
KR101562282B1 (ko) 오덱스 무결성 검증 시스템 및 방법
JP6460433B1 (ja) 変換装置、変換プログラム、プログラム変換方法
JP6358323B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2015069220A (ja) 性能評価プログラム生成装置、方法、及びプログラム
JP2022047380A (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
CN117633734A (zh) 代码编译的方法、装置及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180322

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190730

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190812

R151 Written notification of patent or utility model registration

Ref document number: 6579095

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151