JP2007072986A - 組込みシステムおよびプログラム、並びに、キー割込み制御方法 - Google Patents

組込みシステムおよびプログラム、並びに、キー割込み制御方法 Download PDF

Info

Publication number
JP2007072986A
JP2007072986A JP2005262298A JP2005262298A JP2007072986A JP 2007072986 A JP2007072986 A JP 2007072986A JP 2005262298 A JP2005262298 A JP 2005262298A JP 2005262298 A JP2005262298 A JP 2005262298A JP 2007072986 A JP2007072986 A JP 2007072986A
Authority
JP
Japan
Prior art keywords
key
interrupt
controller
information
notification
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.)
Granted
Application number
JP2005262298A
Other languages
English (en)
Other versions
JP4143632B2 (ja
Inventor
Masataka Watanabe
雅隆 渡辺
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.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators Ltd
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 NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP2005262298A priority Critical patent/JP4143632B2/ja
Priority to US11/516,714 priority patent/US20070061620A1/en
Publication of JP2007072986A publication Critical patent/JP2007072986A/ja
Application granted granted Critical
Publication of JP4143632B2 publication Critical patent/JP4143632B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

【課題】 携帯情報端末のような組込みシステムにおいて、アプリケーションに対しキー割込み通知を行う際、CPUに対するキーイベントの通知が適正に行われないことがある。
【解決手段】 キーコントローラ(1-8)は、CPU(1-1)によるアプリケーションの実行に有効なキーの種別および操作形態がをアプリケーション別に規定したキー情報と、割込みコントローラ(1-9)に対する通知形態をキー別に規定した通知情報とを含むキーテーブル(1-17)を有する。キーコントローラのキー制御部(1-19)は、CPUが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づいて、キー操作に応じたキー割込みの発生を割込みコントローラに通知する。
【選択図】 図1

Description

本発明は、携帯情報端末のような組込みシステムに関し、特に、システムにキー操作が行われた際の制御処理に関する。
従来の組込みシステムにおけるキー操作に関する制御の一例を、図2のハードウェア構成図および図9のソフトウェア構成図を用いて説明する。ここでは、組込みシステムが、イベント駆動(イベントドリブン)方式によるソフトウェア制御機能、キーボタン等のヒューマンインタフェース、画面表示機能、及び、アプリケーションプログラムと、その他図示しないハードウェア機能やソフトウェア機能から構成される携帯情報端末2であるとする。図9に示すソフトウェア構成は、図2のCPU2-1が実行する、メモリデバイス2-15上のプログラムに対応する。
携帯情報端末2のキーボタン2-5が押下されたときに、アプリケーション9-4にキーイベントが通知される従来の流れについて説明する。まず、図2より、ユーザがキーボタン2-5を押下すると、キーボタン2-5の状態が変化した事が、キー信号2-4によりシステムコントローラ2-3のキーコントローラ2-8へ通知される。キーコントローラ2-8は、状態変化があったキーをキーマトリクス処理部2-13により特定し、キー制御部2-12により割込みコントローラ2-9に対しキー割込み通知2-14を行う。そして、割込みコントローラ2-9から割込み信号2-11により、CPU2-1へ割込みの発生が通知される。
割込み信号2-11を受けたCPU2-1は、図9のカーネル9-1により割込みの要因を判断する処理を実行し、判断した割込み要因に対応する割込みハンドラ9-3を実行する。割込みハンドラ9-3は、CPU2-1に対する割込み要因別に用意されたプログラムであり、ここでは、キー処理に対応する割込みハンドラ9-3が実行される。
キー処理の割込みハンドラ9-3は、チャタリング判定を行う為、携帯情報端末2のオペレーティングシステム(以下、「OS」と称す。)が提供するタイマ機能を利用して、一定時間間隔でキーコントローラ2-8のレジスタ(図示略)をリードし、キーの状態を確認するためのポーリング処理を実行する。
ここで、図12に示すフローチャートを参照して、キー処理の割込みハンドラ9-3によるチャタリング判定の手順を説明する。キー処理の割込みハンドラ9-3は、タイマコントローラ2-10を用いて、例えば100[ms]毎のように、定期的にキーコントローラ2-8のレジスタをリードし(ステップS1)、前回リードしたデータと比較する(ステップS2)。その結果、前回のデータと一致しない場合は、カウンタをクリアし(ステップS3)、タイマによる次の割込みを待つ(ステップS4)。
一方、前回リードしたデータと今回のものが一致した場合、割込みハンドラ9-3は、カウンタを加算し(ステップS5)、カウンタ値が例えば3回のような所定の回数に達したか否かを判定する(ステップS6)。その結果、3回に満たない場合、タイマを再設定する(ステップS7)。また、カウント値が3回に達した場合は、カウンタをクリアし(ステップS8)、キーコントローラ2-8から読み出したデータにチャタリングが無いとの判断のもとに、キー割込みをミドルウェア9-2へ通知する(ステップS9)。
割込みハンドラ9-3は、ミドルウェア9-2に対して、ユーザが押下したキーの情報を通知する。ミドルウェア9-2は、アプリケーション9-4ごとに予め設定されているキー操作の設定情報をもとに、アプリケーション9-4に対してキーイベントを通知する。
ミドルウェア9-2によるキーイベントのキー押下の通知形態としては、ユーザがキーを押下した時に、キー押下イベントをアプリケーション9-4へ通知するという形態(以下、この形態を「押下時押下通知」と称す。)と、ユーザがキーを解放した時にキー押下イベントをアプリケーション9-4へ通知するという形態(以下、この形態を「解放時押下通知」と称す。)とがある
また、携帯情報端末2は、ユーザによるキーの操作形態を、キー押下、キー解放、及び、キー長押しの3つのイベントに区別して処理する。キー押下イベントは、ユーザがキーボタン2-5を押下したことをアプリケーション9-4に通知するイベントである。キー解放イベントは、押下されたキーから手が離れた事をアプリケーション9-4に通知するイベントである。キー長押イベントは、ユーザがある一定期間、キーの解放操作なしにキーを押下し続けた事を通知するイベントである。
ここで、キー長押イベントについて更に説明する。従来の技術では、一般に、キーボタン2-5が押下された事がミドルウェア9-2に通知されると、ミドルウェア9-2がキー長押しの有効/無効を判断する。ミドルウェア9-2は、タイマコントローラ2-10を使用し、キー長押しを規定する押下期間が経過したとき、期間の満了通知を受けるよう設定されている。
ミドルウェア9-2は、タイマからの通知、及び、割込みハンドラ9-3からのキー解放の通知を受け取る順番に基づき、キー長押しの有効/無効を判断する。例えば、キー解放の通知よりも先に、タイマからの通知があった場合は、長押しが有効であると判定する。
携帯情報端末のキー制御に関する従来の手法として、例えば、後述の特許文献1及び特許文献2に記載のものがある。特許文献1には、携帯電話の発信操作を簡略化するための手法が提案されている。この携帯電話は、ワンタッチダイヤルに関連付けられたキー操作部が押下されたまま一定時間を経過したときは、長押しによるワンタッチダイヤルの操作と判定し、そのダイヤルの電話番号を表示する。
また、特許文献2には、キー操作に伴う押下通知および押下解除の通知がCPUへ入力される携帯通信端末が記載されている。CPUは、押下通知を受けるとタイマを起動し、その後、押下解除が通知される前にタイマがタイムアップした場合、今回のキー操作が長押しであると判定する。
特開2001−127869号公報 特開2002−259032号公報
前述した従来の技術における第1の問題点は、携帯情報端末のOSの種別、あるいは、CPUの負荷状況によっては、キーイベントがアプリケーション9-4へ適正に通知されないという点である。例えば、リアルタイムOSではないOSを使用時に、キー割込みよりも優先度が高い割込みが発生した場合、あるいは、CPUが高負荷状態にある場合は、ミドルウェア9-2がキー割込みを速やかに認識できないことから、アプリケーション9-4に対するキーイベントの通知が遅延しやすい。
携帯情報端末2のOSが、例えば、Linux(kernel version2.4より以前のバージョン)である場合、ミドルウェア9-2は、割込みハンドラ9-3と直接データを授受することができない。そのため、両者間のデータ授受にはカーネル9-1を介在させる。すなわち、割込みハンドラ9-3からのキー割込み通知をカーネル9-1がメモリにコピーし、コピーされたデータをミドルウェア9-2が使用する。よって、この種のOSを持つ携帯情報端末では、キー割込みが発生する度に、CPU2-1によるコピー処理が必要とされることから、CPU2-1が高負荷状態になり易い。
ここで、携帯情報端末2のOSがリアルタイムOSでなく、かつ、CPU2-1の処理負荷が高い状況を想定する。このとき、ユーザのキー操作が、たとえ長押しではなく瞬時の押下であったとしても、キー解放の割込み処理が遅延し、その間にタイマがタイムアップした場合は、ミドルウェア9-2が今回のキー押下を長押しと判定する。そうすると、実際のキー操作と対応しない長押しのキーイベントがアプリケーション9-4へ通知されるという、無駄な処理が発生することとなる。
第2の問題点は、アプリケーション9-4に対するキーイベントの通知形態の判定、及び、キーの長押し判定をミドルウェア9-2により行う点にある。よって、アプリケーション9-4が解放時押下通知を使用する場合であっても、キーコントローラ2-8は、キー解放時だけでなく、それに先立つキー押下時にも、キー割込みをCPU2-1へ通知する必要がある。
第3の問題点は、キー操作時のチャタリング判定を、割込みハンドラ9-3等、CPU2-1が実行するソフトウェアにより行う点にある。一般に、CPU2-1の内部周波数やCPU周辺回路の制御信号は、キーのチャタリング除去を確認するためのクロックとして、例えば100ミリ秒以上といった比較的高い周期のクロックが使用される。よって、確認処理のために多くの電力が消費される。また、割込みハンドラ9-3によりキー操作のチャタリング判定を行っているときに、CPU2-1の負荷が高い場合は、キー操作を無効と判断してしまい、キー操作の取りこぼしが起きる可能性がある。
第4の問題点は、キー割込みの発生がアプリケーションの切替え期間に重なることに対処し難い点にある。具体的には、例えば、携帯情報端末が、画面表示機能を担うウィンドウシステムを具備する場合、発生したキーイベントは、ウィンドウシステムを介してアプリケーションへ通知される。ウィンドウシステムにより使用する画像情報がアプリケーションごとに設定されている場合は、アプリケーションの切替えに伴い、ウィンドウシステムが画面を切替える。
よって、アプリケーションの切替え中に新たなキーイベントが発生した場合、ウィンドウシステムは、画面の切替え処理中であることから、この新たなキーイベントをアプリケーションへ通知することができない。その結果、新たなキーイベントがロスト(lost)するという事態が生じる。
また、アプリケーションをタスク単位で区別する携帯情報端末は、タスクの切替えをアプリケーションの切替えとみなす。タスクを切替えるケースとしては、例えば、初期化処理済みで活性化しているタスクから、初期化処理を実行して新たなタスクを起動するというケースがあるが、このとき、OSの種別が、初期化処理中の割込みを受付けないものである場合は、ユーザのキー操作による割込み処理が遅延する。
本発明は、上記課題に鑑みてなされたものであり、携帯情報端末のような組込みシステムにおけるキー操作を、OSの種別やCPUの負荷状況にかかわらず、適正かつ効率的に処理する手法を提供することを目的とする。
本発明の組込みシステムは、ユーザが操作するキーボタンと、アプリケーションを実行するCPUと、該CPUに対しキー操作の割込み信号を供給する割込みコントローラと、前記キーボタンの状態変化を表すキー信号に基づき前記割込みコントローラに対しキー割込みの発生を通知するキーコントローラとを備え、前記キーコントローラは、前記CPUによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー情報と、前記割込みコントローラに対する通知形態をキー別に規定した通知情報とを含むキーテーブルと、前記CPUが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知するキー制御部とを有する。
本発明のプログラムは、前記CPUに実行させるプログラムであって、前記CPUが、前記割込みコントローラからキー操作の割込み信号を受信したとき、前記バッファに格納された情報を含むキーリードデータを前記レジスタから読み出し、該読み出したキーリードデータに基づき当該アプリケーションに対するキーイベントの発生を通知し、アプリケーションの切替え中は前記キーコントローラから前記割込みコントローラに対する通知を停止するよう前記レジスタに設定する。
本発明のキー割込み制御方法は、ユーザが操作するキーボタンと、アプリケーションを実行するCPUに対しキー操作の割込み信号を供給する割込みコントローラとに接続されたキーコントローラが、前記CPUによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー情報と、前記割込みコントローラに対する通知形態をキー別に規定した通知情報と、アプリケーション切替後に、キーコントローラのバッファに保持された情報を削除するかどうかを判断する情報を含むキーテーブルを保持し、アプリケーション切替時に、前記CPUが、活性化するアプリケーションの情報をキーコントローラのレジスタに設定し、該設定した情報に基づき、活性化するアプリケーションに対応するキーテーブルがキーコントローラ内で設定され、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知するという方法である。
本発明によれば、キー割込みが発生したか否かをキーコントローラ側にて判定するよう組込みシステムを構成したことから、キー割込みの判断に、CPUの負荷状況などの影響を与え難くすることができる。また、キーコントローラが、キー割込みの発生を、実行中のアプリケーションに対応する情報に基づき判定することから、現行のアプリケーションに対応しないキー操作を受け付けるといった無駄な処理を防止することができる。
以下、本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態の携帯情報端末1におけるキー制御に関するハードウェア構成のブロック図である。携帯情報端末1は、図1に示すように、中央演算処理装置であるCPU1-1と、CPU1-1により実行するプログラムを保持するメモリデバイス1-22と、キーコントローラ(以下、「KC」と称す。)1-8を含むシステムコントローラ(以下、「SYSC」と称す。)1-3とが、CPUバス1-2を介して接続された構成をとる。尚、図示の例では、メモリデバイス1-22がCPUバス1-2に接続されているが、この接続形態に限定せず、例えば、SYSC1-3の内部に設けてもよい。
図1の携帯情報端末1において、キーボタン1-5の状態変化は、キーボタン1-5からキーマトリクス信号のようなキー信号1-4により、システムLSIであるSYSC1-3へ通知された後、このSYSC1-3から、内部処理を経て、割込み信号1-11によりCPU1-1へ通知される。
SYSC1-3は、KC1-8、割込みコントローラ(以下、「INTRC」と称す。)1-9、CPU1-1が用いるシステムタイマであるタイマコントローラ(以下、「RTC」と称す。)1-10、及び、各機能のレジスタのリード/ライトを制御するシステムコントローラ内部処理部(以下、「SYSCINC」と称す。)1-6を備える。これらは、SYSC1-3において、内部バス1-7を介して接続されている。RTC1-10は、一定時間が経過するごとにタイマイベントの割込みを通知する。
KC1-8は、キーボタン1-5からのキー信号1-4を特定するためのデコード部1-20と、キー操作のチャタリング判定に用いるクロック出力機能およびキー長押し判定のためのタイマ機能を有するキー制御タイマ1-12と、キー操作情報を保持し且つ内部データの削除機能を具備するキーバッファ1-13と、キー制御を統括処理するキー制御部1-19とを備える。
KC1-8が有するキーテーブル1-17には、キー別に規定された通知情報(押下時押下通知および解放時押下通知)と、アプリケーション別に規定された有効キーの種別および操作形態であるキー情報と、アプリケーション切替時に、キーバッファ1-13に残されている情報を破棄するか否かの情報等が含まれる。
また、KC1-8は、INTRC1-9に対するキー割込み通知の可否を示す情報を保持するキー割込通知許可部1-14と、現在実行中のアプリケーションに対応する通知情報を保持するキー別通知情報保持部1-15と、現在実行中のアプリケーションに有効なキーの種別および操作形態の情報を保持する有効キー情報保持部1-16と、キーの押下から解放までの状態を管理するための情報を記録するキー状態管理部1-18とを備える。これらの構成(1-14、1-15、1-16、1-18)は、対応する情報が設定されたKC1-8のレジスタ部分を指す。
本実施形態のソフトウェア構成、すなわちCPU1-1が実行するソフトウェアの構成は、図9により説明した従来の構成と同様である。ここで、ソフトウェアによる基本的な処理手順を説明すると、CPU1-1が割込み信号1-11により割込みを検知したとき、割込みハンドラが、INTRC1-9の割込み要因レジスタをリードする。これにより、割込み要因に対応したハンドラが実行される。本実施形態では、割込み要因がキー操作であるハンドラをキー割込みハンドラと呼ぶ。
キー割込みハンドラは、キー制御部1-19を通してキーバッファ1-13からデータをリードし、KC1-8内部の各機能のレジスタに対しリード/ライトが可能である。また、本実施形態のミドルウェアも、上述のキー割込みハンドラと同様に、KC1-8のレジスタにリードライトが可能である。
なお、キーテーブル1-17、有効キー情報保持部1-16、及び、キー別通知情報保持部1-15のリード/ライトにあたっては、メモリマップレジスタ方式、すなわち、物理メモリにノンキャッシャブル(キャッシュ制御対象でない)としてマップされたメモリアドレス上で、データをリード/ライトするという方式を採用することにより、アプリケーション切替え時のデータライト時間を短縮することができる。
また、キーテーブル1-17の設定は、携帯情報端末1の電源ON時の初期処理時に行う、若しくは、テーブルをROM化しておくことが望ましい。これにより、アプリケーション切替え時に、キー別情報や有効キーの情報を全て書き換えることなく、差分のみをCPU1-1からのライト処理により更新することができる。
図3のフローチャートを参照して、ユーザによるキーボタン1-5の押下により、KC1-8からINTRC1-9へ割込みが通知される手順について説明する。KC1-8のキー別通知情報保持部1-15および有効キー情報保持部1-16には、予め、現在実行中のアプリケーションに対応する情報が設定されている。これは即ち、キーテーブル1-17に存在する該当の情報が、KC1-8のレジスタに設定されていることを意味する。
まず、ユーザがキーボタン1-5を押下することにより、キー信号1-4がKC1-8へ出力されると(ステップA1)、キー制御部1-19は、キー信号1-4の入力をデコード部1-20を介して認識し、キーテーブル1-17に基づき、キー信号1-4に対応するキーを特定する(ステップA2)。ここで、状態変化が発生したキーがAキーであるとする。
Aキーを認識すると、キー制御部1-19は、有効キー情報保持部1-16にAキーが有効と設定されてるかどうかを判定する(ステップA3)。Aキーが有効でない場合、すなわち、Aキーが、現時点で実行されているアプリケーションに対応しない場合、以降の処理を実施しない。
一方、Aキーが有効と設定されている場合、キー制御部1-19は、キー制御タイマ1-12からチャタリング判定用のサンプルCLK(クロック)を取得し、チャタリング判定処理を実行する(ステップA4)。チャタリング判定処理では、サンプルCLKを基に、Aキーのキー信号1-4が連続して有効であると判定したとき、このキー信号1-4を、チャタリング除去したキー信号として保存する。
キー制御部1-19は、チャタリング除去されたAキーのキー信号をキー別通知情報保持部1-15へ入力し、このキー信号をキーバッファ1-13へ格納するのに必要な容量の最大値を示す情報を取得する。例えば、キー別通知情報保持部1-15においてAキーに長押し通知が設定されている場合、キー制御部1-19は、Aキーの押下を示す情報および解放の情報の他に、Aキーの長押しを示す情報を合わせたデータ量を最大値として取得することとなる。
キー制御部1-19は、キー別通知情報保持部1-15から取得した最大値と、キーバッファ1-13の空き容量とを比較する(ステップA5)。比較の結果、キーバッファ1-13の空き容量が最大値以上の場合は、Aキーの押下を受付け、Aキーが押下されている状態である事を示す情報を、キー状態管理部1-18で保持しておく。この情報は、Aキーの解放を受付た後にクリアする。キーバッファ1-13の空き容量が最大値より小さい場合は、Aキーの押下を無効化すべくキー信号1-4を破棄する。この結果、キーの操作に対してキーバッファ1-13の空容量が不足することにより、ユーザの操作が十分にバッファに格納されないことによる誤動作に繋がる事を防止する事ができる。
キー制御部1-19は、Aキーの押下を受け付けると、次に、キー別通知情報保持部1-15からAキーに関する長押し制御情報を参照し、今回のAキーに長押し通知が有効に設定されているか否かを判定する(ステップA6)。Aキーに長押し通知が有効と設定されている場合は、キー制御タイマ1-12にAキーの長押し判定時間を設定し、キー制御タイマ1-12のタイマ処理を開始させる(ステップA7)。なお、キー制御タイマ1-12が、キー制御部1-19からの開始信号を受けたとき初めて内部カウンタを動作させるよう設定しておくことで、タイマ未使用時におけるキー制御タイマ1-12の内部消費電力を削減できる。
続いて、キー制御部1-19は、キー別通知情報保持部1-15からAキーに関する通知情報を参照し、Aキーに解放時押下通知が設定されているか否かを判定する(ステップA8)。解放時押下通知が設定されている場合、すなわち、キー解放の操作を以ってキー押下を認識するよう設定されている場合、キー制御部1-19は、INTRC1-9にキー割込み通知1-21を行わず、Aキーが解放待ち状態であることを示す情報をキー状態管理部1-18に記録し(ステップA9)、解放されるのを待つ(ステップA10)。
このように、押下されたキーに解放時押下通知が設定されてる場合、キー割込み通知1-21が発信されないことから、CPU1-1に対しキー押下の割込み信号1-11は通知されない。これにより、無駄な処理が削減され、CPU1-1の負荷を軽減することができる。
一方、Aキーの通知情報に、解放時押下通知ではなく押下時押下通知が設定されている場合、キー制御部1-19は、キーバッファ1-13にAキーの押下を示す情報を格納する(ステップA11)。
さらに、キー制御部1-19は、キー状態管理部1-18の値を参照し、現時点でCPU1-1側でキー操作に関する割込み処理が行われているかどうかを判断する(ステップA12)。その結果、現時点で他の割込み処理が行われている場合は、その割込み処理による、レジスタからのリード処理が終わるのを待つ(ステップA13、A14)。
一方、現時点で割込み処理が行われていない場合、キー制御部1-19は、キー割込通知許可部1-14を参照し、Aキーに対しキー割込み通知の許可が設定されているか否かを判定する(ステップA15)。キー割込通知許可部1-14に対する設定は、CPU1-1側のミドルウェアにより行われる。この設定については後に説明するが、例えば、CPU1-1側にてアプリケーションの切替えが行われている間は、INTRC1-9に対する新たなキー割込み通知1-21をマスク、すなわち保留することがキー割込通知許可部1-14に設定される。
キー制御部1-19は、現時点でキー割込み通知が許可されている場合、INTRC1-9に対しキー割込み通知1-21を行う(ステップA16)。これにより、キー割込み通知1-21を受けたINTRC1-9がCPU1-1に対し割込み信号1-11を発信する。また、キー割込み通知が許可されていない場合、すなわち、マスク中である場合、後にマスクが解除されたとき、INTRC1-9に対するキー割込み通知1-21を行う(ステップA17、A18)。
図4のフローチャートを参照して、キー解放時の制御手順について説明する。ここでは、既に押下されているAキーが解放される際の制御手順を示す。キーボタン1-5のAキーからユーザの手が離れることにより、キー信号がKC1-8に入力されると(ステップB1)、キー制御部1-19は、デコード部1-20の出力に基づきAキーの解放を認識する(ステップB2)。
キー制御部1-19は、認識したキー解放動作が、キー状態管理部1-18に記録されてるキー押下に対する解放かどうかを判定する(ステップB3)。その結果、キー押下に対する解放動作である場合、キー制御部1-19は、この解放動作に関し、前述と同様のチャタリング判定を行う(ステップB4)。
キー信号1-4がチャタリング判定をパスすると、キー制御部1-19は、キー状態管理部1-18の記録に基づき、対象のAキーに長押しが設定されているか否かを判定し(ステップB5)、長押しが設定されている場合は、長押し判定のためのタイマを作動させているキー制御タイマ1-12を停止させる(ステップB6)。
次に、キー制御部1-19は、キー状態管理部1-18の記録に基づき、対象のAキーに押下時押下通知または解放時押下通知の何れが設定されているかを判定する(ステップB7)。その結果、Aキーに解放時押下通知が設定されている場合、キーバッファ1-13に、Aキー押下の情報とAキー解放の情報とをセットで格納する(ステップB8)。
また、押下時押下通知が設定されている場合は、キーバッファ1-13には、既にAキー押下の情報は格納されていることから、Aキー解放の情報のみを格納する(ステップB9)。キーバッファ1-13にAキーのデータを格納した後の割込み通知に関する処理(ステップB10)は、図3に点線にて示す前述の手順(A0)と同様であり、説明を省略する。
図5のフローチャートを参照して、キーの長押しに関する制御手順を説明する。ここでは、長押しが有効に設定されてるAキーについて、すでにキー制御タイマ1-12が作動している(図3:ステップA6→A7)とする。なお、KC1-8のキー制御タイマ1-12は、CPU1-1の処理と独立して動作する。よって、キー制御タイマ1-12がCPU1-1の動作の影響を受けることはない。
キー制御部1-19は、キー制御タイマ1-12からの満了通知と、前述したチャタリング判定をパスしたAキーの解放通知とを、動作基準CLKで同期させる。このとき、タイマの満了およびAキーの解放が同時的に通知された場合は、キー解放の通知を優先させる。動作基準CLKの周波数(例えば32KHzを分周して作成した約100msに近い値のCLK)は、人間のキー操作と比較して高いことから、1周期分の差でキー解放を優先することに問題はない。
キー制御部1-19は、キー制御タイマ1-12から満了の通知、すなわち長押しに相当する期間が経過した旨の通知を受けると(ステップC1)、キー状態管理部1-18のAキーの情報をもとに、Aキーの長押しが有効か否かを判断する(ステップC2)。
長押しの判定にあたっては、キー状態管理部1-18にAキーの解放待ちが設定されている場合は、長押し有効と判断し、この場合、Aキーが長押しされたことを示す情報をキーバッファ1-13に格納する(ステップC3)。また、Aキーの解放待ちが設定されていない場合は、長押しを無効として処理する。以降の割込み通知に関する処理(ステップC4)は、図3に点線にて示す前述の手順(A0)と同様であり、説明を省略する。また、長押しに関するタイマが満了する前に、Aキーの解放を受信した場合は、解放を受信した時に、タイマ処理の回路を初期化する。
このように、キーの長押し判定をKC1-8側にて行うことにより、CPU1-1の負荷状況などの影響を受けることなく、長押しを適正に判定することができる。
以上が、キーボタン1-5での操作をCPU1-1に通知するまでの手順である。次に、CPU1-1に通知された割込み通知が、CPU1-1が実行するソフトウェアにより如何に処理されるかにつき、図6、図7、図8のフローチャートを用いて説明する。なお、CPU1-1が実行するソフトウェアの構成は、図9に示す構成と同様である。
図6より、CPU1-1がSYSC1-3からの割込みを受付けると(ステップD1)、カーネルは割込みハンドラを起動する(ステップD2)。割込みハンドラは、割込みの要因を判別すべくINTRC1-9の割込み要因レジスタをリードする。その結果、割込み要因がキー制御である場合(ステップD3)、キー制御用の割込みハンドラが実行される(ステップD4)。キー割込みハンドラは、ミドルウェアに対し、キーの状態変化が発生した事を通知する(ステップD5)。
次に、図7のフローチャートを参照して、ミドルウェアの制御手順について説明する。ミドルウェアは、キー割込みハンドラから通知を受けると、その要因を判定し(ステップE1)、後述する解放通知残が有効に設定されていることによる割込み通知で無い場合、KC1-8のキーバッファ1-13に対応するレジスタをリードする(ステップE2)。
ミドルウェアは、読み出したデータから、状態変化が発生したキーの種別と、その状態変化の種別(キー押下、キー長押し、キー解放、解放時押下通知のキー押下及び解放、解放時押下通知のキー長押し)とを示すデータを取得する。このデータをキーリードデータとし、図10に、キーリードデータのフォーマットを示す。
キーリードデータは、図10に示すように、キーバッファ1-13から読み出すべきデータが残っているか否かを示す残フラグ13-1と、キーの状態変化の種別を示す状態種別13-2と、キーの種別を示すキー種別13-3とから構成される。キーバッファ1-13に読み込み待ちのデータが残っている場合、キーリードデータの残フラグ13-1の値は「1」となり、読込み待ちデータがない場合は値が「0」となる。
また、状態種別13-2の「001」は、押下時押下通知を使用するアプリケーションに対し該当のキーが押下されたことを表す。「010」は、解放時押下通知を使用するアプリケーションに対し該当のキーが解放されたことを表す。「011」は、キーの長押しが有効に実行されたことを表す。「100」は、キーが解放されたことを表すものであるが、これは、例えば、音声等の再生処理に対する早送り操作のように、キーの押下操作および解放操作の双方を別個のトリガとして使用するアプリケーションに適用される。
ミドルウェアは、キーバッファ1-13に読み出し待ちのデータが有るか否かの情報を、メモリ上のグローバル変数のような変数に設定しておく(ステップE3)。設定した変数の値は、キーバッファ1-13から読み出したデータがアプリケーションに通知された後、ミドルウェアが再びキーイベントの通知に関する再処理を行うときに参照される。
続いて、ミドルウェアは、読み出したキーリードデータからキー種別13-3を認識すると共に、状態種別13-2を認識する(ステップE4)。その結果、状態種別13-2が解放時押下通知の解放操作(図10:「010」)である場合、キー解放通知の残りがあることを設定した後(ステップE6)、アプリケーションに対しキー押下のイベントを通知する(ステップE7)。
イベント通知後、ミドルウェアは、アプリケーションから非同期処理にて、次のイベントを通知するよう要求されたとき(ステップE8)、ステップE1の要因判定を経て、キー解放通知残の設定を消去し(ステップE10)、アプリケーションにキー解放のイベントを通知する(ステップE11)。
ミドルウェアは、状態種別13-2がキーの解放操作である場合(ステップE9、図10:「100」)、アプリケーションに対しキー解放のイベントを通知する(ステップE11)。また、状態種別13-2が押下時押下通知の押下操作である場合(ステップE12、図10:「001」)、ミドルウェアは、アプリケーションに対しキー押下のイベントを通知し(ステップE13)、状態種別13-2がキーの長押しである場合(ステップE14、図10:「011」)、アプリケーションに対しキー長押しのイベントを通知する(ステップE15)。
ミドルウェアは、以上の手順によりイベント通知を行った後、新たに読み出したキーリードデータの残フラグ13-1が「0」の場合、キーイベントの通知処理を終了し、キー割込みハンドラからの新たな割込み通知を待つ(ステップE17)。また、残フラグ13-1が「1」の場合、アプリケーションから次のイベント通知を要求されたとき(ステップE18)、上述の手順により、読み出したキーリードデータに基づきイベント通知を行う。
次に、図8に示すフローチャートを参照して、アプリケーションの切替えが行われる際のミドルウェアの処理と、その処理がハードウェアへ反映される様子について説明する。なお、ここで言うミドルウェアとは、携帯情報端末1のミドルウェアのうちの、キー制御を担うタスクに対応する。
ミドルウェアは、アプリケーションの切替処理を担う別のタスクから切替え通知を受け取ると(ステップF1)、キー割込通知許可部1-14に対し、新たなキー割込み通知をマスクする設定を行う(ステップF2)。これにより、KC1-8からINTRC1-9に対するキー割込み通知1-21が一旦停止する。
切替えによって活性化するアプリケーションは、有効なキーの種別および操作形態や、解放時押下通知のような通知形態の情報、及び、キーバッファ1-13を継続使用するか否か等の情報を予めミドルウェアに伝える。
ミドルウェアは、上記通知を受けると(ステップF3)、この通知をもとに、KC1-8のキー別通知情報保持部1-15および有効キー情報保持部1-16に対し、活性化したアプリケーションに対応する設定を反映させる(ステップF4)。具体的には、キー別通知情報保持部1-15および有効キー情報保持部1-16に関し、アプリケーション切替え前後の差異にあたる情報をキーテーブル1-17から選択し、それらをレジスタに書き込むよう、ミドルウェアがキー制御部1-19に対し指示する。これにより、キー別通知情報保持部1-15および有効キー情報保持部1-16の全ての設定を更新することは不要となるので、処理が効率化される。
活性化したアプリケーションの情報がKC1-8側に反映されることでアプリケーションの切替えが終了すると、ミドルウェアは、キー割込通知許可部1-14に対し設定していたマスクを解除する(ステップF5)。これにより、KC1-8からINTRC1-9に対するキー割込み通知1-21が再開する。
続いて、ミドルウェアは、活性化したアプリケーションから予め通知されている情報に基づき、このアプリケーションがキーバッファ1-13の残データを継続して使用するか否かを判定する(ステップF6)。その結果、現状のキーバッファ1-13の残データを使用しない場合、ミドルウェアは、キー制御部1-19に対しキーバッファ1-13の残データを消去するよう命令し(ステップF7)、キー割込みハンドラからの新たな割込み通知を待つ(ステップF8)。
一方、活性化したアプリケーションが、キーバッファ1-13の残データをそのまま使用する場合、ミドルウェアは、キー割込みハンドラからの通知を契機とすることなく自動的にキーバッファ1-13からキーリードデータを読み出す(ステップF9)。そして、残フラグ13-1が「1」である間は、図7に示す前述の手順によりアプリケーションに対するキーイベントの通知を繰り返す(ステップF10)。
なお、キーバッファ1-13の削除に関する制御の別案として、次のような方法が考えられる。まず、アプリケーションが活性化するときにキーバッファ1-13のデータを削除するか否かについて、予めアプリケーションごとにキーテーブル1-17に設定しておく。キー制御部1-19は、アプリケーションが活性化するとき、そのアプリケーションについてキーテーブル1-17に設定した上記の情報を参照する。その結果、キーバッファ1-13に残されているデータを削除するよう設定されている場合は、それらのデータを削除する。キーバッファ1-13のデータをフリップフロップ回路(FF)により保持させている場合は、この回路のリセットクリア動作により、データを一括削除すればよい。
図11に、本発明の他の実施形態の構成を示す。本実施形態の携帯情報端末1´の構成は、図1に示す前述の携帯情報端末1の構成に加え、キー制御部1-19との協働により、キー操作時にスピーカ1-26から操作音を鳴動させるサウンド制御部1-25を備える。キー制御部1-19は、INTRC1-9に対しキー割込み通知1-21を発するとき、すなわち、有効なキー操作を認識したとき、その旨をサウンド制御部1-25へ通知する。サウンド制御部1-25は、キー割込み通知1-21からの情報をもとに、スピーカ1-26によりキーの操作音を鳴動させる。
図11の携帯情報端末1´によれば、例えば、解放時押下通知に対応するキーが操作される場合、押下時には操作音を鳴動させず、その後の解放時に鳴動させるよう制御することができる。また、キーの操作形態に長押しが設定されている場合、キーの押下時間が長押しの時間条件に満たない間は、操作音は鳴動しない。よって、ユーザは、押下したキーを、操作音が鳴動するまで押下し続けることにより、確実に長押し操作を行うことができる。
さらに他の実施形態として、携帯情報端末1のキーイベントに、前述のキー押下およびキー長押しのほかに、キー長押しリピートがある場合、ミドルウェアが行う長押しリピートの判定には、OSが提供するシステムタイマ(1-10)の割込みを利用する。この場合、KC1-8からの長押しリピートとしての割込みは、CPU1-1へ通知せず、カーネル9-1が提供するSWタイマ(TSC:タイムスタンプカウンタや、PIC:プログラマブルインターバルタイマ)の機能を利用する。SWタイマの機能を利用する場合、ミドルウェア上で、長押し確定時にSWタイマを設定し、その後、KC1-8からキー解放の割込み通知を受ける迄、キーリピートとしてアプリケーションに通知する。
また、実施形態のKC1-8によれば、キー信号に対するチャタリング判定において無駄な動作を省くことができる。図13に、KC1-8が具備するチャタリング判定のための回路を示す。図示の判定回路は、キー制御タイマ1-12のクロック信号(CLK)を利用して、複数のフリップフロップ回路(FF)によりキー信号のチャタリング判定を行い、判定結果が3回連続して有効であった場合に、このキー信号を有効なものとして出力するという構成である。
図13に示すように、各フリップフロップ回路(FF)の入力段にANDゲートを設け、最初の入力段のANDゲートに、デコード部1-20を経たキー信号と、レジスタにおける有効キー情報保持部1-16の値とを入力するよう構成する。本構成によれば、現時点で有効なキー、すなわち現在実行中のアプリケーションに対応するキー信号が入力されたときに限り、フリップフロップ回路(FF)が作動する。よって、現時点で有効でないキー操作が行われたことによる無駄なフリップフロップ動作を削減でき、これにより、消費電力を削減することができる。
本発明は、キーボタン等のヒューマンI/Fを具備する組込みシステムに好適である。具体的には、携帯電話、カーナビゲーション、家庭用ロボット、デジタルカメラ、デジタルビデオ、及び、正確なユーザ操作の通知が必要な医療機器や医療端末等である。また、バッテリ駆動のシステムに本発明を適用することにより、従来よりもキー操作時の消費電力を抑える事が可能となり、バッテリ駆動時間の延長にも効果がある。
本発明の実施形態の携帯情報端末のハードウェア構成を示すブロック図である。 従来の携帯情報端末のハードウェア構成を示すブロック図である。 実施形態のキー押下時におけるキーコントローラ(KC)の制御手順を示すフローチャートである。 実施形態のキー解放時におけるキーコントローラ(KC)の制御手順を示すフローチャートである。 実施形態のキー長押し時におけるキーコントローラ(KC)の制御手順を示すフローチャートである。 実施形態のソフトウェアによる制御手順を示すフローチャートである。 実施形態のミドルウェアによる制御手順を示すフローチャートである。 実施形態のアプリケーション切替時のミドルウェアによる制御手順を示すフローチャートである。 従来のソフトウェアの構成を示すブロック図である。 実施形態のキーリードデータのフォーマットの説明図である。 本発明の他の実施形態の携帯情報端末の構成を示すブロック図である。 従来のチャタリング判定に関するフローチャートである。 実施形態におけるチャタリング判定のための回路図である。
符号の説明
1 携帯情報端末
1-1:CPU、1-2:CPUバス、1-3:SYSC(システムコントローラ)、1-4:キー信号、1-5:キーボタン、1-6:SYSCINC(システムコントローラ内部処理部)、1-7:内部バス、1-8:KC(キーコントローラ)、1-9:INTRC(割込コントローラ)、1-10:RTC(タイマコントローラ)、1-11:割込み信号、1-12:キー制御タイマ、1-13:キーバッファ、1-14:キー割込通知許可部、1-15:キー別通知情報保持部、1-16:有効キー情報保持部、1-17:キーテーブル、1-18:キー状態管理部、1-19:キー制御部、1-20:デコード部、1-21:キー割込み通知、1-22:メモリデバイス

Claims (19)

  1. ユーザが操作するキーボタンと、アプリケーションを実行するCPUと、該CPUに対しキー操作の割込み信号を供給する割込みコントローラと、前記キーボタンの状態変化を表すキー信号に基づき前記割込みコントローラに対しキー割込みの発生を通知するキーコントローラとを備え、
    前記キーコントローラは、
    前記CPUによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー情報と、前記割込みコントローラに対する通知形態をキー別に規定した通知情報とを含むキーテーブルと、
    前記CPUが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知するキー制御部とを有することを特徴とする組込みシステム。
  2. 前記キーコントローラは、
    前記キーボタンからのキー信号が示す種別および操作形態の情報を記憶するバッファを有し、
    前記キー制御部は、前記バッファへ格納すべき情報に必要な記憶容量を前記バッファの空き容量と比較し、前記バッファの空き容量のほうが小さい場合、前記情報を破棄することを特徴とする請求項1記載の組込みシステム。
  3. 前記キー制御部は、キーの押下を示し且つ前記バッファへ格納すべきキー信号に対し、通知情報として、キー押下後の解放時にキー割込みを通知することが設定されている場合、当該キーの解放を示すキー信号を前記バッファへ格納するまで該キーに関するキー割込みの通知を保留することを特徴とする請求項2記載の組込みシステム。
  4. 前記キーコントローラは、
    計時を行うキー制御タイマを有し、
    前記キー制御部は、キーの押下を示し且つ前記バッファへ格納すべきキー信号に対し、キー情報として、前記キー制御タイマの計時に基づく所定期間キーの押下を継続するキー長押しが設定されている場合、前記キー制御タイマに前記所定期間を設定し、当該キーの解放を示すキー信号を前記バッファへ格納する前に前記キー制御タイマから満了を通知されたとき、当該キーのキー長押しが有効であることを示す情報を前記バッファへ格納することを特徴とする請求項2又は3記載の組込みシステム。
  5. スピーカと、該スピーカに音響信号を発信するサウンド制御部とを有し、
    前記キー制御部は、前記サウンド制御部に対しキー割込みの発生を通知し、
    前記サウンド制御部は、前記キー制御部からの通知を契機に音響信号を発信することを特徴とする請求項1乃至4のいずれか1項に記載の組込みシステム。
  6. 請求項2乃至5のいずれか1項に記載の組込みシステムにおける前記CPUに実行させるプログラムであって、
    前記CPUが、
    前記割込みコントローラからキー操作の割込み信号を受信したとき、前記バッファに格納された情報を含むキーリードデータを前記レジスタから読み出し、該読み出したキーリードデータに基づき当該アプリケーションに対しキーイベントの発生を通知し、
    アプリケーションの切替え中は前記キーコントローラから前記割込みコントローラに対する通知を停止するよう前記レジスタに設定することを特徴とするプログラム。
  7. 前記CPUが、
    アプリケーションの切替えが終了したとき、活性化したアプリケーションに対応するキー情報および通知情報を前記レジスタに設定するよう前記キー制御部へ指示し、前記レジスタからキーリードデータを読み出し、該キーリードデータに基づき前記バッファにおける情報の有無を判定し、前記バッファに情報がない場合、前記キーコントローラから前記割込みコントローラに対する通知の停止を解除する設定を行うことを特徴とする請求項6記載のプログラム。
  8. 前記CPUが、
    アプリケーションの切替えが終了したとき、活性化したアプリケーションに対応するキー情報および通知情報を前記レジスタに設定すること、および、前記バッファの情報を消去することを前記キー制御部へ指示し、該指示後に、前記キーコントローラから前記割込みコントローラに対する通知の停止を解除する設定を行うことを特徴とする請求項6記載のプログラム。
  9. ユーザが操作するキーボタンと、アプリケーションを実行するCPUに対しキー操作の割込み信号を供給する割込みコントローラとに接続されたキーコントローラであって、
    前記キーボタンの状態変化を表すキー信号のチャタリング判定を行う判定回路と、
    実行中のアプリケーションに有効なキーの種別を示すデータを保持するレジスタ回路とを備え、
    前記判定回路は、前記キーボタンからのキー信号のチャタリング判定を行うか否かを前記レジスタ回路からのデータに基づき判別する手段を有することを特徴とするキーコントローラ。
  10. ユーザが操作するキーボタンと、アプリケーションを実行するCPUに対しキー操作の割込み信号を供給する割込みコントローラとに接続されたキーコントローラが、
    前記CPUによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー情報と、前記割込みコントローラに対する通知形態をキー別に規定した通知情報とを含むキーテーブルを保持し、
    前記CPUが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知することを特徴とするキー割込み制御方法。
  11. 前記キーコントローラが、
    前記キーボタンからのキー信号が示す種別および操作形態の情報を記憶するバッファを有し、
    前記バッファへ格納すべき情報に必要な記憶容量を前記バッファの空き容量と比較し、前記バッファの空き容量のほうが小さい場合、前記情報を破棄することを特徴とする請求項10記載のキー割込み制御方法。
  12. 前記キーコントローラが、
    キーの押下を示し且つ前記バッファへ格納すべきキー信号に対し、通知情報として、キー押下後の解放時にキー割込みを通知することが設定されている場合、当該キーの解放を示すキー信号を前記バッファへ格納するまで該キーに関するキー割込みの通知を保留することを特徴とする請求項11記載のキー割込み制御方法。
  13. 前記キーコントローラが、
    計時を行うキー制御タイマを有し、
    キーの押下を示し且つ前記バッファへ格納すべきキー信号に対し、キー情報として、前記キー制御タイマの計時に基づく所定期間キーの押下を継続するキー長押しが設定されている場合、前記キー制御タイマに前記所定期間を設定し、当該キーの解放を示すキー信号を前記バッファへ格納する前に前記キー制御タイマから満了を通知されたとき、当該キーのキー長押しが有効であることを示す情報を前記バッファへ格納することを特徴とする請求項11又は12記載のキー割込み制御方法。
  14. ユーザが操作するキーボタンと、アプリケーションを実行するCPUと、該CPUに対しキー操作の割込み信号を供給する割込みコントローラと、前記キーボタンの状態変化を表すキー信号に基づき前記割込みコントローラに対しキー割込みの発生を通知するキーコントローラとを備え、
    前記キーコントローラは、
    前記CPUによるアプリケーションの実行に有効なキーの種別および操作形態を規定したキー別のキー通知情報、および、前記割込みコントローラに対して、キー操作に対する割込みの通知形態をキー別に規定した通知情報を含むキーテーブルと、
    前記CPUが実行するアプリケーションに対応するキー情報および通知情報をキーコントローラのレジスタに設定し、該設定した情報に基づきキー操作に応じたキー割込みの発生を前記割込みコントローラに通知するキー制御部とを有することを特徴とする組込みシステム。
  15. 請求項14に記載の組込みシステムにおいて、前記キーコントローラに、前記キーボタンから通知されたキー操作情報を記憶するバッファを具備し、
    前記キーコントローラは、前記キーボタンのキー信号からキーの押下を検知した時、前記キーテーブルを基に、前記バッファへ格納すべきキー操作情報に必要な記憶容量を前記バッファの空き容量と比較し、前記バッファの空き容量のほうが小さい場合、該キーの操作情報を、該キーの解放を検知するまで破棄することを特徴とする組込みシステム。
  16. 請求項14に記載の組込みシステムにおいて、前記キーコントローラは、前記キーボタンからのキー信号からキー押下を検知した時、前記キーテーブルにおける当該キーに関する操作形態として、キー押下後のキー解放時にキー割込みを通知することが設定されている場合、該キーの解放を示すキー情報を前記バッファへ格納するまで、該キーに関する押下時のキー割込み通知を保留し、該キーの解放を受けた時にキー割込みを通知することを特徴とする組込みシステム。
  17. 請求項15に記載の組込みシステムにおいて、前記キーコントローラに、キー制御用のタイマを具備し、
    前記キーコントローラは、前記キーボタンからのキー信号からキー押下を検知した時、前記キーテーブルにおける当該キーに関する操作形態として、前記タイマに基づく所定期間キーの押下を継続検知するキー長押しが有効として設定されている場合、前記タイマに前記所定期間を設定し、該キーの解放を検知する前に前記タイマから満了の通知を受けたとき、該キーのキー長押しが有効であると判断し、キー長押しの情報を前記バッファに格納し、前記割込みコントローラに割込み要求を通知することを特徴とする組込みシステム。
  18. 請求項15乃至17のいずれか1項に記載の組込みシステムの前記CPUに実行させるプログラムであって、
    複数のアプリケーションを動作させる場合にアプリケーション切替要求が発生した時、前記キーコントローラから前記割込みコントローラへのキー割込み通知をマスクし、アプリケーション切替終了後に、前記キーコントローラから前記割込みコントローラへの割込み通知のマスクを解除させることを特徴とするプログラム。
  19. 請求項18記載のプログラムにおいて、アプリケーション切替時、切り替え後に活性化するアプリケーションが、前記キーコントローラの前記バッファに保持されたデータを使用するかどうかを、前記キーテーブルの情報として、前記キーコントローラに設定しておき、アプリケーション切替時、前記キーテーブルの情報を元に、前記バッファに保持されたデータを消去する事が設定されている場合は、前記割込通知を解除する前に、前記バッファを消去することを特徴とする組込みシステム。
JP2005262298A 2005-09-09 2005-09-09 組込みシステムおよびプログラム、並びに、キー割込み制御方法 Expired - Fee Related JP4143632B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005262298A JP4143632B2 (ja) 2005-09-09 2005-09-09 組込みシステムおよびプログラム、並びに、キー割込み制御方法
US11/516,714 US20070061620A1 (en) 2005-09-09 2006-09-07 Embedded system and program and key interruption control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005262298A JP4143632B2 (ja) 2005-09-09 2005-09-09 組込みシステムおよびプログラム、並びに、キー割込み制御方法

Publications (2)

Publication Number Publication Date
JP2007072986A true JP2007072986A (ja) 2007-03-22
JP4143632B2 JP4143632B2 (ja) 2008-09-03

Family

ID=37890857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005262298A Expired - Fee Related JP4143632B2 (ja) 2005-09-09 2005-09-09 組込みシステムおよびプログラム、並びに、キー割込み制御方法

Country Status (2)

Country Link
US (1) US20070061620A1 (ja)
JP (1) JP4143632B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107340872A (zh) * 2016-04-29 2017-11-10 技嘉科技股份有限公司 按键系统及其控制方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104965599A (zh) * 2015-05-21 2015-10-07 浪潮软件集团有限公司 一种金属密码键盘在系统应用的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60193678A (ja) * 1984-03-15 1985-10-02 Canon Inc 電子機器
US5280283A (en) * 1990-11-09 1994-01-18 Ast Research, Inc. Memory mapped keyboard controller
US7218250B2 (en) * 2004-09-09 2007-05-15 General Electric Company Method and apparatus for keyboard control with programmable debounce and jog
US7230548B2 (en) * 2004-09-28 2007-06-12 Broadcom Corporation Method and apparatus for high performance key detection with key debounce
US7420480B2 (en) * 2005-12-21 2008-09-02 Scenera Technologies, Llc Methods, systems, and computer program products for iteratively providing feedback via a user interface for multi-character, multi-mode alphanumeric data entry
US7446676B2 (en) * 2005-12-28 2008-11-04 Broadcom Corporation Self-scan programmable keypad interface

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107340872A (zh) * 2016-04-29 2017-11-10 技嘉科技股份有限公司 按键系统及其控制方法

Also Published As

Publication number Publication date
US20070061620A1 (en) 2007-03-15
JP4143632B2 (ja) 2008-09-03

Similar Documents

Publication Publication Date Title
TWI297852B (en) Processor with specific processor unit
KR100746797B1 (ko) 프로세서 및 정보처리 방법
KR101668786B1 (ko) 응용 프로그램의 처리방법, 장치, 프로그램 및 기록매체
JP5605970B2 (ja) リソースセット移行をスケジュールすることによる、ポータブルコンピューティングデバイスにおけるプロセッサアプリケーション状態間のリソース待ち時間の最小化
KR101811969B1 (ko) 전자 기기, 전자 기기의 웨이크 업 방법 및 장치
TWI389034B (zh) 資訊處理裝置及方法、電腦可讀取的程式產品、及電腦可讀取的記錄媒體
JP5259714B2 (ja) 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置
US11985468B2 (en) Wireless earphone serial port control method and apparatus, wireless earphone, and storage medium
JP5809366B2 (ja) ポータブルコンピューティングデバイスにおいて要求をスケジューリングするための方法およびシステム
WO2019192030A1 (zh) 一种蓝牙播放方法及电子设备
JP2004046324A (ja) 待機モード付情報処理装置およびその待機モード開始方法と待機モード解除方法
JP4609113B2 (ja) プロセッサ
US20060291800A1 (en) Information processing apparatus and picture recording control method
JP4143632B2 (ja) 組込みシステムおよびプログラム、並びに、キー割込み制御方法
WO2012087533A1 (en) Minimizing resource latency between processor application states in a portable computing device by using a next-active state set
CN108182085A (zh) 终端屏幕的唤醒方法、装置、终端及存储介质
CN111399874A (zh) 一种系统升级方法、装置、存储介质及智能穿戴设备
JP2007180600A (ja) 電子機器および該電子機器におけるデータ転送速度制御方法
JP2005135269A (ja) 電子機器
JPH0882825A (ja) 撮影情報記憶装置
JP2005208966A (ja) 情報処理装置
TWI287709B (en) Method and apparatus for virtual direct memory access
WO2019071616A1 (zh) 一种处理方法及装置
WO2020097787A1 (zh) 一种音频资源释放的方法、装置及电子设备
JP2009020776A (ja) スワップアウト制御装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080319

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080513

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080513

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: 20080605

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080616

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110620

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120620

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees