特許第5920595号(P5920595)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 横河電機株式会社の特許一覧

特許5920595電子機器、オペレーティングシステム、アクセス管理方法
<>
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000002
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000003
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000004
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000005
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000006
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000007
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000008
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000009
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000010
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000011
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000012
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000013
  • 特許5920595-電子機器、オペレーティングシステム、アクセス管理方法 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5920595
(24)【登録日】2016年4月22日
(45)【発行日】2016年5月18日
(54)【発明の名称】電子機器、オペレーティングシステム、アクセス管理方法
(51)【国際特許分類】
   G06F 21/62 20130101AFI20160428BHJP
   G06F 9/52 20060101ALI20160428BHJP
【FI】
   G06F21/62
   G06F9/46 472Z
【請求項の数】7
【全頁数】12
(21)【出願番号】特願2013-147733(P2013-147733)
(22)【出願日】2013年7月16日
(65)【公開番号】特開2015-22344(P2015-22344A)
(43)【公開日】2015年2月2日
【審査請求日】2014年8月22日
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(72)【発明者】
【氏名】小原 一幸
(72)【発明者】
【氏名】鳥羽 克彦
【審査官】 脇岡 剛
(56)【参考文献】
【文献】 特開平05−081045(JP,A)
【文献】 特開2013−120430(JP,A)
【文献】 米国特許出願公開第2009/0210644(US,A1)
【文献】 特表2005−521941(JP,A)
【文献】 特開2011−022790(JP,A)
【文献】 特開2003−044297(JP,A)
【文献】 特開平10−260901(JP,A)
【文献】 特開2011−248551(JP,A)
【文献】 特開2009−223776(JP,A)
【文献】 特開平06−250964(JP,A)
【文献】 特開2011−232949(JP,A)
【文献】 米国特許出願公開第2009/0125700(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 9/52
(57)【特許請求の範囲】
【請求項1】
アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備え、オペレーティングシステムとプロセスとが動作する電子機器であって、
前記オペレーティングシステムは、前記メモリ保護ユニットを利用して前記オペレーティングシステム用の前記レジスタへのアクセス権限を設定し、
前記プロセスは、前記デバイスを操作する際に、前記オペレーティングシステムに操作依頼を行ない、前記オペレーティングシステムが、前記操作依頼に従って対応するレジスタにアクセスして、前記デバイスの操作を実行することを特徴とする電子機器。
【請求項2】
前記プロセスは、前記デバイスの操作に先立ち、前記オペレーティングシステムに前記デバイスの操作宣言を行ない、
前記オペレーティングシステムは、操作宣言を行なっていないプロセスからの操作依頼には応じないことを特徴とする請求項1に記載の電子機器。
【請求項3】
前記オペレーティングシステムは、同一のデバイスに対して複数のプロセスが操作宣言を行なった場合、最先に宣言を行なったプロセスからの操作宣言を排他的に受け付けることを特徴とする請求項2に記載の電子機器。
【請求項4】
前記プロセスは、前記デバイスの処理単位で操作宣言を行ない、
前記オペレーティングシステムは、前記デバイスの処理単位で前記デバイスの操作を実行することを特徴とする請求項2または3に記載の電子機器。
【請求項5】
前記デバイスは、汎用IOであることを特徴とする請求項1〜4のいずれか1項に記載の電子機器。
【請求項6】
アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器で動作するオペレーティングシステムであって、
前記メモリ保護ユニットを利用して前記オペレーティングシステム用の前記レジスタへのアクセス権限を設定し、
オペレーティングシステム上で動作するプロセスから、前記デバイスの操作依頼を受け付けると、対応するレジスタにアクセスして、前記デバイスの操作を実行することを特徴とするオペレーティングシステム。
【請求項7】
アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備え、オペレーティングシステムとプロセスとが動作する電子機器におけるアクセス管理方法であって、
前記オペレーティングシステムが、前記メモリ保護ユニットを利用して前記オペレーティングシステム用の前記レジスタへのアクセス権限を設定するステップと、
前記プロセスが、前記デバイスを操作する際に、前記オペレーティングシステムに操作依頼を行なうステップと、
前記オペレーティングシステムが、前記操作依頼に従って対応するレジスタにアクセスして、前記デバイスの操作を実行するステップと、を有することを特徴とするアクセス管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器、この電子機器で動作するオペレーティングシステムおよびアクセス管理方法に関する。
【背景技術】
【0002】
フィールド機器等の電子機器では、オペレーティングシステム上で動作しているプロセスが、アドレス空間にレジスタが配置されるデバイスを操作する処理が頻繁に行なわれる。ここでは、プロセスがGPIO(General Purpose Input/Output)を操作する処理の従来例について説明する。なお、GPIOは、汎用IOであり、ソフトウェアで任意に入出力を操作できる端子である。
【0003】
図10は、マイクロコントローラ410とデバイス420を備えた電子機器400の要部構成例を示すブロック図である。本図に示すように、マイクロコントローラ410は、CPU CORE411とRAM412とMPU(Memory Protection Unit)413とGPIO414とを備えており、バス415を介して相互に接続されている。バス415には、デバイス420も接続されている。デバイス420は、記憶装置、センサ、入出力装置等、電子機器400の用途に応じた種々の装置を用いることができる。
【0004】
CPU CORE411上では、RTOS(Real-Time Operating System)が動作しており、RTOS上で複数のプロセスが動作しているものとする。RTOSは、各プロセスに対して、プロセス管理やAPI(Application Programming Interface)経由で様々なサービスを提供する。
【0005】
MPU413は、メモリ保護ユニットであり、アドレス空間に配置されたGPIO414等のレジスタへのアクセス保護を行なう。具体的には、プロセスからの依頼でRTOSがMPU413にアクセス権限を設定していれば、そのプロセスのアクセスを許可する。一方、アクセス権限が割り当てられていないプロセスに対しては、アクセス違反を検出して、アクセスを許可しない。なお、MPU413に代えて、MMU(Memory Management Unit)等のアクセス保護機能を備えた他のユニットを用いてもよい。
【0006】
図11は、上記構成の電子機器において、RTOS430上で動作するプロセスがGPIO414を操作する手順について説明する図である。ここでは、プロセスa440a、プロセスb440bが独立したプログラムとしてRTOS430上で動作しているものとする。
【0007】
また、GPIO414は、8ビット等の所定ビット数で区切られ、GPIO_A414aとGPIO_B414bの2つのグループとして扱われるものとする。ここでは、プロセスa440aがGPIO_A414aを操作し、プロセスb440bがGPIO_B414bを操作するとする。すなわち、GPIO_A414aをプロセスa440aの専用デバイスとして割り当て、GPIO_B414bをプロセスb440bの専用デバイスとして割り当てるようにする。
【0008】
RTOS430が用意するAPIには、GPIO414を操作するためのレジスタであるGPIOレジスタへのアクセス権限の割り当てを依頼するためのAPI−1が含まれている。プロセスがGPIO414を操作するためには、事前に、API−1を利用してアクセス権限の割り当てを依頼する必要がある。この依頼に対してAPI−1は、MPU413を操作して、アクセス権限の設定を行なう。
【0009】
本図の例では、プロセスa440aが、API−1経由でRTOS430に、GPIO_Aレジスタが存在するアドレス空間をプロセスa440aに割り当てるように依頼する(S1)。
【0010】
RTOS430のAPI−1は、GPIO_Aレジスタへのアクセス権限が未設定であれば、GPIO_Aレジスタが存在するアドレス空間にプロセスa440a用のアクセス権限を設定する(S2)。図12は、MPU413において、GPIO_Aレジスタが存在するアドレス空間にプロセスa440a用のアクセス権限が設定された様子を示している。
【0011】
この状態で、プロセスa440aについてGIPO_Aレジスタへのアクセス権限の設定があるため、MPU413は、プロセスa440aに対してGPIO_Aレジスタへのアクセスを許可する。このため、プロセスa440aは、GPIO_AレジスタにアクセスしてGPIO_A414aを操作することができる(S3)。
【0012】
プロセスb440bも同様の手順により、GPIO_B414bを操作することができるようになる。一方、プロセスa440aが、GPIO_Bレジスタにアクセスした場合、アクセス権限が設定されていないため、MPU413により、アクセス違反が検出される。
【0013】
なお、MPU413によるアドレス空間へのアクセス権限設定とアクセス制御は、GPIOレジスタのみならず、アドレス空間にレジスタが配置される種々のデバイス420に対しても行なうことができる。
【先行技術文献】
【非特許文献】
【0014】
【非特許文献1】μITRON4.0仕様 保護機能拡張 2.3.2 メモリオブジェクトのアクセス保護、4.1 メモリオブジェクト管理機能(p.113〜p.116)
【発明の概要】
【発明が解決しようとする課題】
【0015】
上述のように、RTOS430が、プロセス440の依頼によりMPU413を操作することにより、アドレス空間に配置されたレジスタへのアクセス権限設定が行なわれる。そして、MPU413は、アクセス権限が設定されたプロセス440からのアクセスを許可する。
【0016】
しかしながら、アドレス空間に配置されたレジスタへのアクセス管理は、ハードウェアであるMPU413の仕様により制限され、自由度は必ずしも高くない。これは、コスト、サイズ等について限られた資源でMPU413を実現するに当たり、複雑化を避けて機能を制限せざるを得ない場合等があるためである。
【0017】
例えば、一般的にMPU413は、境界制限が定められており、アクセス権限を設定する場合の開始アドレスやサイズに制限がある。このため、アドレス空間におけるレジスタの配置とMPU413の境界制限によっては、図13に示すように、アクセス権の設定領域が、GPIO_AレジスタとGPIO_Bレジスタとにまたがってしまい、GPIO_A414aをプロセスa440aの専用デバイスとして割り当て、GPIO_B414bをプロセスb440bの専用デバイスとして割り当てるようなことができない場合がある。なお、MPU413に代えてMMUを用いた場合にもページ境界制限により同様の問題が生じる場合がある。
【0018】
また、一般的にMPU413は、設定可能なアクセス権限の数に制限があり、各プロセスからのアクセス権限の割り当て要求に応えられない場合も起こり得る。
【0019】
そこで、本発明は、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器において、メモリ保護ユニットの制約を受けずアクセス管理の自由度を高めることを目的とする。
【課題を解決するための手段】
【0020】
上記課題を解決するため、本発明の第1の態様である電子機器は、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備え、オペレーティングシステムとプロセスとが動作する電子機器であって、前記オペレーティングシステムは、前記メモリ保護ユニットを利用して前記レジスタへのアクセス権限を設定し、前記プロセスは、前記デバイスを操作する際に、前記オペレーティングシステムに操作依頼を行ない、前記オペレーティングシステムが、前記操作依頼に従って対応するレジスタにアクセスして、前記デバイスの操作を実行することを特徴とする。
ここで、前記プロセスは、前記デバイスの操作に先立ち、前記オペレーティングシステムに前記デバイスの操作宣言を行ない、前記オペレーティングシステムは、操作宣言を行なっていないプロセスからの操作依頼には応じないようにすることができる。
このとき、前記オペレーティングシステムは、同一のデバイスに対して複数のプロセスが操作宣言を行なった場合、最先に宣言を行なったプロセスからの操作宣言を排他的に受け付けるようにしてもよい。
また、前記プロセスは、前記デバイスの処理単位で操作宣言を行ない、前記オペレーティングシステムは、前記デバイスの処理単位で前記デバイスの操作を実行するようにしてもよい。
また、前記デバイスは、汎用IOとすることができる。
上記課題を解決するため、本発明の第2の態様であるオペレーティングシステムは、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器で動作するオペレーティングシステムであって、前記メモリ保護ユニットを利用して前記レジスタへのアクセス権限を設定し、オペレーティングシステム上で動作するプロセスから、前記デバイスの操作依頼を受け付けると、対応するレジスタにアクセスして、前記デバイスの操作を実行することを特徴とする。
上記課題を解決するため、本発明の第3の態様であるアクセス管理方法は、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備え、オペレーティングシステムとプロセスとが動作する電子機器におけるアクセス管理方法であって、前記オペレーティングシステムが、前記メモリ保護ユニットを利用して前記レジスタへのアクセス権限を設定するステップと、前記プロセスが、前記デバイスを操作する際に、前記オペレーティングシステムに操作依頼を行なうステップと、前記オペレーティングシステムが、前記操作依頼に従って対応するレジスタにアクセスして、前記デバイスの操作を実行するステップと、を有することを特徴とする。
【発明の効果】
【0021】
本発明によれば、アドレス空間に配置されるデバイスのレジスタに対するアクセス保護を行なうメモリ保護ユニットを備えた電子機器において、メモリ保護ユニットの制約を受けずアクセス管理の自由度を高めることができる。
【図面の簡単な説明】
【0022】
図1】マイクロコントローラとデバイスを備えた本実施形態の電子機器100の要部構成例を示すブロック図である。
図2】RTOSの初期設定時の特徴的な動作を説明するフローチャートである。
図3】RTOSの初期設定時の動作を模式的に説明する図である。
図4】初期設定後のMPU113のアクセス権限を説明する図である。
図5】第1実施例において、プロセスがGPIOを操作するときの動作を模式的に示す図である。
図6】プロセスからの直接的な操作実行を拒絶する動作を模式的に示す図である。
図7】第2実施例の動作を模式的に示す図である。
図8】第3実施例の動作を模式的に示す図である。
図9】第4実施例の動作を模式的に示す図である。
図10】マイクロコントローラとデバイスを備えた電子機器の要部構成例を示すブロック図である。
図11】RTOS上で動作するプロセスがGPIOにアクセスする手順について説明する図である。
図12】MPUにおいて、GPIO_Aのレジスタが存在するアドレス空間にプロセスa用のアクセス権限が設定された様子を示す図である。
図13】MPUの境界制限による問題点を説明する図である。
【発明を実施するための形態】
【0023】
本発明の実施の形態について図面を参照して説明する。図1は、マイクロコントローラ110とデバイス120を備えた本実施形態の電子機器100の要部構成例を示すブロック図である。電子機器100は、例えば、フィールド機器とすることができる。本発明は、安全関連プロセスと非安全関連プロセスとが共存して動作している機能安全対応機器に特に効果的に適用することができるが、このようなフィールド機器に限られず種々の電子機器に適用することができる。
【0024】
本図に示すように、マイクロコントローラ110は、CPU CORE111とRAM112とMPU(Memory Protection Unit)113とGPIO114とを備えており、バス115を介して相互に接続されている。バス115には、デバイス120も接続されている。デバイス120は、記憶装置、センサ、入出力装置等、電子機器100の用途に応じた種々の装置を用いることができる。
【0025】
CPU CORE111上では、RTOS(Real-Time Operating System)が動作しており、RTOS上で複数のプロセスが動作しているものとする。RTOSは、各プロセスに対して、プロセス管理やAPI(Application Programming Interface)経由で様々なサービスを提供する。ただし、RTOSに代えて、一般的なOSを用いてもよい。
【0026】
本実施形態の電子機器100は、従来の電子機器400と同様のハードウェアを用いて構成することができ、ソフトウェアであるRTOSとRTOS上で動作するプロセスに新たな機能を持たせるようにしている。このため、ハードウェアの設計変更等が不要となり、MPU113の制約を受けないアクセス管理を、コスト的に有利に実現することが可能である。
【0027】
MPU113は、メモリ保護ユニットであり、アドレス空間に配置されたGPIO114等のレジスタへのアクセス保護を行なう。具体的には、MPU113にアクセス権限が設定されていれば、その依頼元からのアクセスを許可する。アクセス権限が設定されていない場合には、アクセス違反を検出して、アクセスを許可しない。なお、MPU113に代えて、MMU(Memory Management Unit)等のアクセス保護機能を備えた他のユニットを用いてもよい。
【0028】
<第1実施例>
上記構成の電子機器100において、RTOS130上で動作するプロセスがGPIO114を操作する手順の第1実施例について説明する。ここでは、プロセスa140a、プロセスb140bが独立したプログラムとしてRTOS130上で動作しており、GPIO114は、8ビット等の所定ビット数で区分けられ、GPIO_A114aとGPIO_B114bの2つのグループとして扱われるものとする。
【0029】
図2は、RTOS130の初期設定時の特徴的な動作を説明するフローチャートであり、図3は、初期設定時の動作を模式的に示す図である。後の実施例でも共通するが、第1実施例では、起動時等の初期設定において、RTOS130がGPIO114の情報を取得し(S101)、MPU113を操作して、各GPIOレジスタが存在するアドレス空間に、RTOS130用のアクセス権を設定する(S102)。
【0030】
この結果、初期設定後のMPU113のアクセス権は、図4に示すように、GPIO_Aレジスタ、GPIO_BレジスタともRTOS用に設定される。なお、GPIO114に加えて、プロセスの操作対象となるデバイス120の情報も収集して、デバイス120のレジスタが割り当てられたアドレス空間にRTOS130用のアクセス権を設定するようにしてもよい。
【0031】
図5は、第1実施例において、プロセス140がGPIO114を操作するときの動作を模式的に示す図である。第1実施例では、RTOS130は、プロセス140からGPIOの操作依頼を受け付け、GPIOの操作を実行するAPI−aを用意している。
【0032】
プロセスa140aがGPIO_A114aを操作する場合には、API−aを使用して、GPIO_Aの操作を依頼する(S103)。このように、第1実施例では、プロセス140は、RTOS130に対して、アクセス権限割り当て依頼は行なわない。また、直接GPIO_Aの操作は行なわず、API−aを使用して、GPIO_Aの操作を依頼する。この段階で、プロセスa140aの実行中からRTOS130実行中にアクセス権限の設定が切り替わる。
【0033】
そして、API−aが、依頼に従ってGPIO_Aレジスタにアクセスし、GPIO_A114aを操作する(S104)。このとき、RTOS130についてGIPO_Aレジスタへのアクセス権限の設定があるため、MPU113は、RTOS130のGPIO_Aレジスタへのアクセスを許可する。
【0034】
なお、プロセスa140aあるいはプロセスb140bが、直接GPIO_Aレジスタにアクセスしようとすると、アクセス権限が設定されていないため、図6に示すように、MPU113によりアクセス違反として検出される。
【0035】
このように、第1実施例によれば、個々のプロセス140に対してアクセス権限を割り当てるのではなく、RTOS130が一括してアクセス権限を設定し、プロセス140からの操作依頼に基づいてGPIOレジスタにアクセスする。このため、境界制限や設定可能なアクセス権限数の制限によるMPU113の制約を受けず、アクセス管理の自由度を高めることができる。
【0036】
<第2実施例>
電子機器100において、RTOS130上で動作するプロセスがGPIO114を操作する手順の第2実施例について説明する。図7は、第2実施例の動作を模式的に示す図である。図7(a)に示すように、第2実施例においても、第1実施例と同様に、RTOS130がGPIO114の情報を取得し、MPU113を操作して、各GPIOレジスタが存在するアドレス空間に、RTOS130用のアクセス権を設定する(S201)。
【0037】
そして、プロセスa140aがGPIO_A114aを操作する場合には、図7(b)に示すように、あらかじめ、RTOS130に対して、GPOP_A114aの操作宣言を行なう(S202)。RTOS130には、この操作宣言を受け付けるためのAPI−cが用意されている。
【0038】
また、RTOS130は、操作宣言を行なっているプロセス140からGPIO114の操作依頼を受け付け、GPIO114の操作を実行するAPI−bを用意している。API−bは、操作依頼を行なったプロセス140が、そのGPIO114の操作宣言を行なっていない場合には、GPIO114の操作を実行しない。
【0039】
プロセスa140aがGPIO_A114aを操作する場合には、図7(c)に示すように、API−bを使用して、GPIO_A114aの操作を依頼する(S203)。プロセスa140aは、GPIO_A114aの操作宣言を行なっているため、API−bは、依頼に従ってGPIO_Aレジスタにアクセスし、GPIO_A114aを操作する(S204)。このとき、RTOS130についてGIPO_Aレジスタへのアクセス権限の設定があるため、MPU113は、RTOS130のGPIO_Aレジスタへのアクセスを許可する。
【0040】
一方、図7(d)に示すように、API−bは、GPIO_A114aの操作宣言を行なっていないプロセスb140bからGPIO_A114aの操作依頼を受け付けた場合には、GPIO_Aレジスタへのアクセスは行なわず、GPIO_A114aの操作は行なわない。
【0041】
このように、第2実施例によれば、境界制限や設定可能なアクセス権限数の制限によるMPU113の制約を受けないことに加え、操作宣言を行なったプロセス140からの操作依頼に対してのみ操作を実行することにより、プロセス140毎にアクセス可能なGPIO114を制限することができるため、アクセス管理の自由度がさらに高められる。
【0042】
<第3実施例>
電子機器100において、RTOS130上で動作するプロセスがGPIO114を操作する手順の第3実施例について説明する。図8は、第3実施例の動作を模式的に示す図である。図8(a)に示すように、第3実施例においても、第1実施例と同様に、RTOS130がGPIO114の情報を取得し、MPU113を操作して、各GPIOレジスタが存在するアドレス空間に、RTOS130用のアクセス権を設定する(S301)。
【0043】
そして、第2実施例と同様に、プロセスa140aがGPIO_A114aを操作する場合には、図8(b)に示すように、あらかじめ、RTOS130に対して、GPOP_A114aの操作宣言を行なう(S302)。第3実施例では、RTOS130には、この操作宣言を受け付けるためのAPI−dが用意されている。
【0044】
ここで、API−dは、同一のGPIO114に対しては、先に操作宣言をしたプロセス140に独占的に操作権限を与え、後から宣言した他のプロセス140からの操作宣言を拒否する。すなわち、操作権限の排他制御を行なう。
【0045】
このため、図8(c)に示すように、他のプロセスがGPIO_B114bに対する操作宣言を行なっていない状態で、プロセスb140bがGPIO_B114bに対する操作宣言を行なうと、プロセスb140bに対してGPIO_B114bの独占的な操作権限を与える。
【0046】
一方、図8(d)に示すように、プロセスa140aがGPIO_A114aに対する操作宣言を行なっている状態で、プロセスb140bがGPIO_A114aに対する操作宣言を行なうと、プロセスb140bからの操作宣言を拒否する。
【0047】
操作宣言を行なったプロセス140がGPIO114を操作する手順については第2実施例と同様である。すなわち、RTOS130は、第2実施例と同様に、操作宣言を行なっているプロセス140からGPIO114の操作依頼を受け付け、GPIO114の操作を実行するAPI−bを用意している。API−bは、操作依頼を行なったプロセス140が、そのGPIO114の操作宣言を行なっていない場合には、GPIO114の操作を実行しない。
【0048】
このように、第3実施例によれば、境界制限や設定可能なアクセス権限数の制限によるMPU113の制約を受けないことに加え、最先に操作宣言を行なったプロセス140からの操作依頼を独占的に受け付けることにより、プロセス140毎にアクセス可能なGPIO114を制限することができるため、アクセス管理の自由度がさらに高められる。
【0049】
<第4実施例>
電子機器100において、RTOS130上で動作するプロセスがGPIO114を操作する手順の第4実施例について説明する。図9は、第4実施例の動作を模式的に示す図である。図9(a)に示すように、第4実施例においても、第1実施例と同様に、RTOS130がGPIO114の情報を取得し、MPU113を操作して、各GPIOレジスタが存在するアドレス空間に、RTOS130用のアクセス権を設定する(S401)。
【0050】
そして、第2実施例と同様に、プロセスa140aがGPIO_A114aを操作する場合には、図9(b)に示すように、あらかじめ、RTOS130に対して、GPIO_A114aの操作宣言を行なう(S402)。
【0051】
一般に、GPIOは、8ビット幅等の単位でまとめて扱われており、従来、上記の実施例ともこのまとめられた単位でGPIO114の操作を行なうようになっていたが、第4実施例では、操作宣言の際に対象とするGPIO114をビット単位で指定できるようになっている。このため、RTOS130には、ビット単位の操作宣言を受け付けるためのAPI−fが用意されている。
【0052】
例えば、プロセスa140aは、ビット0〜ビット7の8ビットで構成されるGPIO_A114aについて、ビット1に対して操作宣言を行なうことができる。操作宣言は任意のビットを指定することができ、宣言対象のビット数は複数個であってもよい。また、ビット単位に限られず、チャネル等のデバイスの処理単位で操作宣言を行なえるようにしてもよい。
【0053】
さらに、第4実施例では、RTOS130は、プロセス140からGPIOのビット単位の操作依頼を受け付け、GPIO114の操作をビット単位で実行するAPI−eを用意している。
【0054】
プロセスa140aが、操作宣言を行なったGPIO_A114aのビット1を操作する場合には、図9(c)に示すように、API−eを使用して、GPIO_A114aのビット1の操作を依頼する(S403)。この段階で、プロセスa140aの実行中からRTOS130実行中にアクセス権限の設定が切り替わる。
【0055】
そして、API−eが、依頼に従ってGPIO_Aレジスタにアクセスし、GPIO_A114aのビット1の操作を実行する(S404)。なお、図9(d)に示すように、プロセスa140aが、例えば、GPIO_A114aのビット7の操作を依頼した場合には、ビット7に対する操作宣言は行なっていないので、API−eは、GPIO_Aレジスタへのアクセスは行なわず、GPIO_A114aのビット7の操作は行なわない。
【0056】
このように、第4実施例によれば、境界制限や設定可能なアクセス権限数の制限によるMPU113の制約を受けないことに加え、ビット単位の操作宣言を行なったプロセス140からの操作依頼に対してのみ、そのビットに対する操作を実行することにより、貴重なGPIO資源を有効に活用することができ、アクセス管理の自由度がさらに高められる。
【0057】
なお、各実施例は任意の組み合わせで実現することができる。例えば、第3実施例と第4実施例とを組み合わせて、ビット単位で排他的なアクセス管理を行なうようにしてもよい。
【符号の説明】
【0058】
100…電子機器、110…マイクロコントローラ、111…CPU…CORE、112…RAM、113…MPU、114…GPIO、115…バス、120…デバイス、130…RTOS、140…プロセス、400…電子機器、410…マイクロコントローラ、411…CPU…CORE、412…RAM、413…MPU、414…GPIO、415…バス、420…デバイス、430…RTOS、440…プロセス
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13