(57)【要約】  コンピュータ・モジュールの中央演算処理ユニット向けのアプリケーション・プログラムが開発される。アプリケーション用のソースコードが書かれ、デバッグされる。そして、アプリケーション・プログラム用のソースファイルはコンパイル及びアセンブルされ、実行アプリケーション・プログラムが提供される。実行アプリケーション・プログラムはコンピュータ・モジュールに読み出される。実行アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプを防ぐため、コンピュータ・モジュールに読み出されたアプリケーション・プログラムに安全性検査実行コードが挿入される。挿入された安全性検査コード付きの実行アプリケーション・プログラムはコンピュータ・モジュールに記憶される。【選択図】図１
2009505275.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラム開発方法であって、
コンパイル及びアセンブルされた実行アプリケーション・プログラムを前記コンピュータ・モジュール内に読み出す工程と、
実行アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、該コンピュータ・モジュール内に読み出された該実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程と、
前記安全性検査実行コードを挿入された前記実行アプリケーション・プログラムを前記コンピュータ・モジュール内に記憶する工程と
を備えるアプリケーション・プログラム開発方法。
【請求項２】
前記アプリケーション・プログラム用のソースコードを記述及びデバッグする工程と、
前記コンパイル及びアセンブルされた実行アプリケーション・プログラムを提供するために前記アプリケーション・プログラム用の前記ソースコードをコンパイル及びアセンブルする工程と
が、コンパイル及びアセンブルされた実行アプリケーション・プログラムを前記コンピュータ・モジュール内に読み出す前記工程に先行することを特徴とする請求項１に記載の方法。
【請求項３】
コンパイル及びアセンブルする前記工程は、前記アプリケーション・プログラムが利用できる前記コンピュータ・モジュールの組み込み関数の対応表に前記ソースコードをリンクする工程をさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
安全性検査実行コードを挿入する前記工程は、前記安全性検査コードを挿入された前記実行アプリケーション・プログラムを再リンクする工程をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記安全性検査実行コードが挿入された前記実行アプリケーション・プログラムを記憶する前記工程の後に、
前記安全性検査実行コードが挿入された前記実行アプリケーション・プログラムを前記中央演算処理ユニット上で実行する工程
が処理されることを特徴とする請求項１に記載の方法。
【請求項６】
安全性検査実行コードを挿入する前記工程は、
前記アプリケーション・プログラムによる前記コンピュータ・モジュールの前記指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを防止するために、前記コンピュータ・モジュール内に読み出された前記実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
安全性検査実行コードを挿入する前記工程は、
前記コンピュータ・モジュール内に読み出されたプログラムに前記安全性検査実行コードを挿入するように構成された前記コンピュータ・モジュール内のマシンコード安全化ツールを提供する工程と、
前記コンピュータ・モジュール内に読み出された前記実行アプリケーション・プログラムに前記安全性検査実行コードを挿入するために、前記マシンコード安全化ツールを用いて該コンピュータ・モジュール内に読み出された該実行アプリケーション・プログラムを処理する工程と
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記コンピュータ・モジュールは揮発性メモリ及び不揮発性メモリを含み、
安全性検査実行コードを挿入する前記工程は、
前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記コンピュータ・モジュール内に読み出された該実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程
を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部を含み、
前記コンピュータ・モジュールは前記無線周波部のための機能を提供するように構成される
ことを特徴とする請求項１に記載の方法。
【請求項１０】
請求項１に記載の方法を実行するように構成された、コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
【請求項１１】
請求項１に記載の方法を実行するように構成されたアプリケーション開発環境システム。
【請求項１２】
コンピュータ・モジュールの中央演算処理ユニット上でマシンコード・アプリケーション・プログラムを直接実行する方法であって、
前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、該マシンコード・アプリケーション・プログラムを前記中央演算処理ユニット上で直接実行するのに伴い、該マシンコード・アプリケーション・プログラムの検査を伴う読み出し、書き込み、及びジャンプのうち少なくとも何れかを行う工程
を備えるマシンコード・アプリケーション・プログラムの実行方法。
【請求項１３】
前記マシンコード・アプリケーション・プログラムを前記コンピュータ・モジュール内に読み出す工程が、
検査を伴う読み出し、書き込み、及びジャンプのうち少なくとも何れかを行う前記工程に先行し、
検査を伴う読み出し、書き込み、及びジャンプのうち少なくとも何れかを行う前記工程は、
前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、該コンピュータ・モジュール内に読み出された該マシンコード・アプリケーション・プログラムへ安全性検査実行コードを挿入する工程を含む
ことを特徴とする請求項１２に記載の方法。
【請求項１４】
安全性検査実行コードを挿入する前記工程は、前記安全性検査コードを挿入された前記マシンコード・アプリケーション・プログラムを再リンクする工程をさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記コンピュータ・モジュールは揮発性メモリ及び不揮発性メモリを含み、
安全性検査実行コードを挿入する前記工程は、
前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、該マシンコード・アプリケーション・プログラムを前記中央演算処理ユニット上で直接実行するのに伴い、該マシンコード・アプリケーション・プログラムの検査を伴う読み出し、書き込み、及びジャンプのうち少なくとも何れかを行う工程
を含むことを特徴とする請求項１２に記載の方法。
【請求項１６】
前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部を含み、
前記マシンコード・アプリケーション・プログラムは前記無線周波部のための機能を提供するように構成される
ことを特徴とする請求項１２に記載の方法。
【請求項１７】
請求項１２に記載の方法を実行するように構成された、
コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
【請求項１８】
請求項１２に記載の方法を実行するように構成されたコンピュータ・モジュール。
【請求項１９】
コンピュータ・モジュールであって、
中央演算処理ユニットと、
前記中央演算処理ユニット上で実行されるプログラムを記憶するように構成されたメモリと、
前記中央演算処理ユニット上で直接実行されるように構成されたメモリ内のマシンコード・アプリケーション・プログラムと、
前記中央演算処理ユニット上で直接実行され、前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するように構成された前記メモリ内のマシンコード安全化ツールと
を備えるコンピュータ・モジュール。
【請求項２０】
前記メモリは揮発性メモリ及び不揮発性メモリを含み、
前記マシンコード安全化ツールは、
前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記コンピュータ・モジュール内に読み出された該マシンコード・アプリケーション・プログラムに安全性検査実行コードを挿入するように構成される
ことを特徴とする請求項１９に記載のコンピュータ・モジュール。
【請求項２１】
前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部をさらに備え、
前記アプリケーション・プログラムは前記無線周波部のための機能を提供するように構成される
ことを特徴とする請求項１９に記載のコンピュータ・モジュール。
【請求項２２】
請求項１７に記載のマシンコード安全化ツールを提供するように構成された、
コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
【請求項２３】
コンピュータ・モジュールであって、
中央演算処理ユニットと、
前記中央演算処理ユニット上で実行されるプログラムを記憶するように構成されたメモリと、
前記中央演算処理ユニット上で直接実行されるように構成されたメモリ内のマシンコード・アプリケーション・プログラムと、
前記中央演算処理ユニット上で直接実行し、
前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、アプリケーション・プログラムに安全性検査実行コードを挿入する
ように構成された前記メモリ内のマシンコード安全化ツールと、
前記中央演算処理ユニット上で直接実行するように構成され、前記安全性検査実行コードを含む、メモリ内の１以上のアプリケーション・プログラム
を備えるコンピュータ・モジュール。
【請求項２４】
前記メモリは揮発性メモリ及び不揮発性メモリを含み、
前記マシンコード安全化ツールは、
前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記アプリケーション・プログラムに前記安全性検査実行コードを挿入するように構成される
ことを特徴とする請求項２３に記載のコンピュータ・モジュール。
【請求項２５】
前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部をさらに備え、
前記アプリケーション・プログラムは前記無線周波部のための機能を提供するように構成される
ことを特徴とする請求項２３に記載のコンピュータ・モジュール。
【請求項２６】
請求項２３に記載のマシンコード安全化ツールを提供するように構成された、
コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理システム、方法、及びコンピュータプログラムに関し、とりわけコンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムの開発及び実行をするためのシステム、方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
コンピュータ・モジュールは消費者用及び産業用の多くの用途で広く使用される。これらで使用される場合に、コンピュータ・モジュールは、コンピュータプログラムを実行するように構成された中央演算処理ユニット（ＣＰＵ）、１以上の分類のメモリ装置を含んでもよく、コンピュータプログラム及び／又はデータを記憶するように構成されたメモリ、及びコンピュータ・モジュールの所望の機能を実行するのに使用されるであろう入力／出力（Ｉ／Ｏ）装置及び／又は無線周波装置のような１以上の周辺装置を含む。コンピュータ・モジュールは多岐にわたる物理的な大きさ及び／又は複雑性を示すであろう。
【０００３】
比較的小型なコンピュータ・モジュールの一例は、本特許出願の承継人であるソニー  エリクソン  モバイル  コミュニケーションズ，  エービーによって販売されているＧＲ４７／４８モジュールである。「ソニー  エリクソン  ＧＲ４７／４８  増加した柔軟性  単純化されたアプリケーション開発」というタイトルの暫定データシートに記載の通り、ソニー  エリクソン  ＧＲ４７／４８は一連のＧＳＭ／ＧＰＲＳの音声及びデータ機能を小型なユニット（ちょうど５０×３３×７．２ｍｍ）にフル搭載した非常に進歩した無線装置である。ＧＲ４７／４８はマシン・ツー・マシン（Ｍ２Ｍ）通信に最適化され、開発者がＧＰＲＳを活用することを可能とする組み込みＴＣＰ／ＩＰプロトコルスタックを有することを特色とする。開発者のＭ２Ｍソリューションに容易に適応するように、提供された広範囲の入力／出力ピンを最適に使用するためにＧＲ４７／４８を設定可能である。組み込みコントローラはアラーム、メータ示度、販売アプリケーションなどの分野のホスティング・アプリケーションに利用できる。
【０００４】
暫定データシートに記載の通り、Ｍ２Ｍパワー・パッケージを使用すると、ＧＲ４７／４８はスタンドアロン製品として又はＭ２Ｍパワー・ビジネス・ソリューションと連動して使用できる。Ｍ２Ｍパワー・パッケージは、開発者がＧＲ４７／４８上で直接アプリケーションを開発し、組み込むことを可能とする支援環境を提供する。アプリケーションをＧＲ４７／４８に組み込むことで、開発者にとって効率的な開発、販売までの時間の短縮、及び総ソリューション・コストの軽減が可能となる。Ｍ２Ｍパワー・パッケージは開発ツール、文書、研修及びサポートを含む。Ｍ２Ｍパワー・パッケージについては「ソニー  エリクソン  Ｍ２Ｍパワー・パッケージ  短時間で費用効果的なアプリケーション開発」というタイトルの冊子に記載されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述したＭ２Ｍパワー・パッケージは、コンピュータ・モジュール上で実行されるであろうアプリケーションをサード・パーティの開発者が開発することを可能とするカスタマイズされたコンピュータ・モジュール用統合開発環境（ＩＤＥ）の一例である。Ｍ２Ｍパワー・パッケージのようなカスタマイズされた統合開発環境が所定のコンピュータ・モジュール向けに提供されるであろう。不都合なことに、カスタマイズされた統合開発環境の開発及び保守には費用がかかるであろう。さらに、コンピュータ・モジュールにおいてプログラムの保管領域には限りがあるだろう。そこで、統合開発環境によって使用されるモジュールの保管領域を軽減し又は最小化する統合開発環境が提供されることが望まれるであろう。
【課題を解決するための手段】
【０００６】
本発明の好適な実施形態は、コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発する方法を提供する。アプリケーション用のソースコードが記述及びデバッグされる。そして、実行アプリケーション・プログラムを提供するために、アプリケーション・プログラム用のソースファイルはコンパイル及びアセンブルされる。実行アプリケーション・プログラムはコンピュータ・モジュール内に読み出される。実行アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及び／又はジャンプを防止するため、コンピュータ・モジュール内に読み出された実行アプリケーション・プログラムに安全性検査実行コードが挿入される。ある実施形態では、安全性検査実行コードは実行アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及び／又はジャンプを防止する。安全性検査コードを挿入された実行アプリケーション・プログラムはコンピュータ・モジュールに記憶される。
【０００７】
ある実施形態では、コンパイル及びアセンブルがされたときに、ソースコードはアプリケーション・プログラムが利用可能なコンピュータ・モジュールの組み込み関数の対応表にリンクされる。さらに、ある実施形態では、安全性検査実行コードが挿入されたとき、安全性検査コードを挿入された実行アプリケーション・プログラムは再リンクされるであろう。また、ある実施形態では、安全性検査実行コードを挿入された実行アプリケーション・プログラムを記憶した後に、安全性検査実行コードを挿入された実行アプリケーション・プログラムはコンピュータ・モジュールの中央演算処理ユニット上で実行されるであろう。
【０００８】
ある実施形態では、安全性検査実行コードの挿入は、コンピュータ・モジュール内のマシンコード安全化ツールを提供することで実行されるであろう。ここで、マシンコード安全化ツールはコンピュータ・モジュール内に読み出されたプログラムに安全性検査実行コードを挿入するように構成される。コンピュータ・モジュール内に読み出された実行アプリケーション・プログラムに安全性検査実行コードを挿入するために、マシンコード安全化ツールはコンピュータ・モジュール内に読み出された実行アプリケーション・プログラムを処理する。
【０００９】
ある実施形態では、コンピュータ・モジュールは揮発性メモリ及び不揮発性メモリを含むであろう。実行アプリケーション・プログラムによる揮発性メモリの指定メモリ領域外への読み出し及び／又は書き込み、及び／又は不揮発性メモリの指定領域外へのジャンプを安全性検査実行コードは制御及び／又は実行できる。さらに、ある実施形態では、コンピュータ・モジュールは中央演算処理ユニットにより制御される無線周波部を含むことができ、アプリケーション・プログラムは無線周波部のための機能を提供するように構成されるであろう。
【００１０】
本発明のその他の実施形態では、マシンコード・アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及び／又はジャンプを制御するために、実行時にマシンコード・アプリケーション・プログラムの検査を伴う読み出し、書き込み、及び／又はジャンプにより、コンピュータ・モジュールの中央演算処理ユニット上でアプリケーション・プログラムを直接実行することが可能となる。実行中に検査を伴う読み出し、書き込み、及び／又はジャンプの処理に先立って、上述した任意の実施形態において安全性検査実行コードが実行アプリケーション・プログラムに挿入されるであろう。
【００１１】
上述した本発明の実施形態はアプリケーション・プログラムの開発及び／又は実行の方法に関連して説明されたことを当業者は理解するだろう。しかしながら、統合開発環境のような類似のシステムや類似のコンピュータプログラムも本発明の様々な実施形態において提供されるであろう。
【００１２】
本発明のある実施形態におけるコンピュータ・モジュールは、中央演算処理ユニット、中央演算処理ユニット上で実行されるプログラムを記憶するメモリ、及び中央演算処理ユニット上で直接実行するように構成されたメモリ内のマシンコード・アプリケーション・プログラムを含む。これらの実施形態は、中央演算処理ユニット上で直接実行され、マシンコード・アプリケーション・プログラムによるメモリの指定領域外への読み出し、書き込み、及び／又はジャンプを制御及び／又は防止するように構成されたメモリ内のマシンコード安全化ツールを含むであろう。
【００１３】
本発明のその他の実施形態におけるコンピュータ・モジュールは、中央演算処理ユニット上で直接実行され、アプリケーション・プログラムに安全性検査マシンコードを挿入され、マシンコード・アプリケーション・プログラムによるコンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及び／又はジャンプを制御及び／又は防止するように構成されたメモリ内のマシンコード安全化ツールを含むであろう。メモリ内の少なくとも一つのアプリケーション・プログラムは、中央演算処理ユニット上で直接実行されるように構成され、安全性検査実行コードを含む。また、類似の方法とコンピュータプログラムとが提供されるであろう。
【発明を実施するための最良の形態】
【００１４】
ここで、本発明の実施形態を示す添付の図面を参照しつつ、以下に本発明をさらに十分に説明する。しかしながら、本発明は多くの異なる形態で具現化されるだろうし、以下に説明する実施形態に本発明が制限されると解釈されるべきではない。正確には、これらの実施形態は、発明の開示が詳細で完全なものとなり、当業者に発明の範囲を十分に伝えるために提供される。
【００１５】
要素が他の要素と「結合する」、「接続する」、又は「応答する」と言及した場合は、その要素は他の要素と直接結合、接続又は応答できるし、介在する要素が存在してもよいことが理解されるだろう。それに対して、要素が他の要素と「直接結合する」、「直接接続する」、又は「直接応答する」と言及した場合は、介在する要素は存在しない。明細書を通して同様の番号は同様の要素を参照する。以下に使用する「及び／又は」という用語は関連するリスト上の１以上の項目のすべてかつ任意の組み合わせを含み、「／」のように省略してもよい。
【００１６】
第１、第２などの用語が以下で様々な要素を説明するのに使用されるであろうが、これらの要素はこれらの用語に制限されるべきではないこととも理解されるだろう。これらの用語は単にある要素を別の要素から区別するために使用される。
【００１７】
以下で使用される専門用語は特定の実施形態を説明する目的にだけ使用され、発明を制限する意図はない。以下で使用される単数形は、そうではないと明確に示す文脈以外では、複数形も含むことを意図する。さらに、「備える」、「備えている」、「含む」、及び／又は「含んでいる」という用語が以下で使用される場合には、規定の機能、工程、操作、要素、及び／又は部分が存在することを明確にするが、１以上のその他の機能、工程、操作、要素、部分、及び／又はこれらのグループの存在又は付加を除外するわけではない。
【００１８】
異なる定義をしない限り、以下で使用される（技術用語と科学用語とを含む）すべての用語は本発明の属する当業者の１人によって一般的に理解されるものと同じ意味を有する。さらに、以下で明確に定義されない限り、一般的に辞書で定義されるような用語は、従来技術の文脈における意味と一致する意味を有するように解釈されるべきであり、理想的な又は過度に正式な意味に解釈されるべきではないことが理解されるだろう。
【００１９】
発明の実施形態における方法、システム、及びコンピュータプログラムについてのブロック図とフローチャートとを参照して本発明を以下に説明する。ブロック図又はフローチャートのブロック、及びブロック図又はフローチャートのブロックの組み合わせは、コンピュータプログラム命令により少なくとも一部は実装されるであろうことが理解されるだろう。コンピュータシステムによって実行される命令がブロック図のブロック又はブロック群で規定される機能／動作を実装するための方法、モジュール、デバイス、又はメソッドを作成するように、１以上のエンタープライズ・コンピュータシステム、業務用コンピュータシステム、パーソナル・コンピュータシステム、パーベイシブ・コンピュータシステム、及び／又は組み込みコンピュータシステムに対してコンピュータプログラム命令が提供されるであろう。汎用コンピュータシステム及び／又は専用ハードウェアの組み合わせも他の実施形態で使用されるであろう。
【００２０】
コンピュータプログラム命令はコンピュータシステムが機能するように特定の様式で指示することができるコンピュータシステムのメモリに記憶され、メモリに記憶された命令は、ブロック又はブロック群で規定される機能／動作を実装するコンピュータ読み取り可能なプログラム・コードを含む製品を生み出す。また、プロセッサ上で実行される命令がブロック又はブロック群で規定される機能／動作を実装する工程を提供するようなプロセスを実装したコンピュータを製造する一連の操作工程を行うために、コンピュータプログラム命令がコンピュータシステムに読み出されるであろう。さらに、ブロック図及び／又はフローチャートの与えられたブロック又はブロック群は方法、コンピュータプログラム、及び／又は製品のサポートを（構造的に及び／又は機能的に）提供する。
【００２１】
また、実装の代替において、フローチャートの機能／動作はフローチャートに示される順番以外の順番で発生してもよい。例えば、係る機能／動作によって、連続して現れる二つのブロックは実質的には同時に実行されるか、時にはブロックは逆の順番で実行されてもよい。最後に、一つ以上のブロックの機能は分割されるか、及び／又は他のブロックの機能との組み合わせとなってもよい。
【００２２】
図１は本発明の好適な実施形態におけるコンピュータ・モジュールのブロック図の一例である。図１に示すように、コンピュータ・モジュール１００は、中央演算処理ユニット（ＣＰＵ）１１０とＣＰＵ１１０で実行されるプログラムを記憶するように構成されたメモリ１２０とを含む。メモリ１２０は単一型のメモリ装置であってもよいし、揮発性、不揮発性、固体、磁気、及び／又は光学メモリ装置を含む階層型メモリ装置を表現するものであってもよい。
【００２３】
１以上のマシンコード・アプリケーション・プログラム１２４がメモリ１２０上に存在する。マシンコード・アプリケーション・プログラム１２４はＣＰＵ１１０上で直接実行されるように構成される。マシンコード安全化ツール１２２もメモリ１２０上に存在し、ＣＰＵ１１０上で直接実行され、マシンコード・アプリケーション・プログラム１２４によるメモリ１２０の指定領域外への読み出し、書き込み、及び／又はジャンプを制御するように構成される。指定領域はメモリの連続した領域及び／又は複数の不連続な領域でよいことが理解されるだろう。ある実施形態では、実行アプリケーション・プログラム１２４によるコンピュータ・モジュールの指定領域外への読み出し、書き込み、及び／又はジャンプを防止するために、安全性検査実行コードをアプリケーション・プログラム１２４に挿入するようにマシンコード安全化ツール１２２は構成される。これらの実施形態において、アプリケーション・プログラム１２４は安全性検査実行コード１２６を自身に含んでいても良い。
【００２４】
さらに図１を参照して、例えばマン・マシン・インターフェイス、マシン・ツー・マシン（Ｍ２Ｍ）インターフェイス、無線周波（ＲＦ）部、及び／又は標準的なハードウェア・コンポーネントを提供するために、その他のハードウェア１３０がモジュール１１０内に含まれるであろう。ある実施形態では、アプリケーション・プログラム１２４はその他のハードウェア１３０の機能を提供及び／又は補完するように構成される。
【００２５】
本発明のある実施形態では、アプリケーション・プログラムを生成するのに標準的なコンパイラやアセンブラを使用することが可能かもしれないが、安全性検査実行コードを実行アプリケーション・プログラムに挿入することによって、アプリケーション・プログラムがコンピュータ・モジュールの操作を妨げることを軽減又は防止することができる。さらに、実行アプリケーション・プログラムをコンピュータ・モジュール内に読み出すことが可能であるため、コンピュータ・モジュールの統合開発環境により占められる容量を減少又は最小化することができる。
【００２６】
さらに、本発明のある実施形態では、サード・パーティが組み込みコンピュータ・モジュール向けのアプリケーション・プログラムを提供することを可能とする。本発明のある実施形態では特に、サード・パーティのユーザがアプリケーション・プログラムを生成し、セキュリティーについての過度の心配をすることなしに組み込みコンピュータ・モジュール上でそのアプリケーション・プログラムを実行することを可能とする。オープン・オペレーティング・システムを搭載した標準的なパーソナル・コンピュータでは、アプリケーション・プログラムがセキュリティー面での心配を生み出さないことを保証するか、パーソナル・コンピュータをクラッシュさせるかはユーザ次第であろう。対照的に、組み込みモジュールでは、サード・パーティの開発者がモジュールに読み出したアプリケーション・プログラムがあるにもかかわらず、モジュールが適切に機能し続けることをモジュール提供者が保証する必要があるだろう。
【００２７】
図２は、本発明の好ましい実施形態において、コンピュータ・モジュール内の１以上のアプリケーション・プログラムを実行するために処理されるであろう操作のフローチャートの一例である。これらの操作は図１のマシンコード安全化ツール１２２及び／又はアプリケーション・プログラム１２４に関する安全性検査実行コード１２６によって処理されるであろう。
【００２８】
特に、図２に示すブロック２００で、マシンコード・アプリケーション・プログラム１２４によるコンピュータ・モジュール１１０の指定メモリ領域外への読み出し、書き込み、及び／又はジャンプを制御するために、ＣＰＵ１１０上で直接実行されるときにマシンコード・アプリケーション・プログラム１２４の読み出し検査、書き込み検査、及び／又はジャンプ検査をすることによって、コンピュータ・モジュール１００のＣＰＵ１１０上でマシンコード・アプリケーション・プログラム１２４が直接実行されるであろう。ある実施形態では、指定領域外への読み出し、書き込み、及び／又はジャンプは防がれるであろう。
【００２９】
図３は、本発明の様々な実施形態における検査を伴う読み出し、書き込み、及び／又はジャンプのために処理されるであろう操作のフローチャートの一例であり、図２のブロック２００に対応するであろう。特に、図３に示すように、ブロック３１０で、１以上のマシンコード・アプリケーション・プログラム１２４がコンピュータ・モジュール１００に読み出される。マシンコード・アプリケーション・プログラム１２４の読み出しは、後続する操作が始まる前に全体が行われても良いし、一部が行われても良いし、及び／又は後続する操作と連動して１行ずつ処理されても良いことが理解されるだろう。
【００３０】
ブロック３２０を参照して、アプリケーション・プログラムのよるコンピュータ・モジュール１００の指定メモリ領域外への読み出し、書き込み、及び／又はジャンプを制御及び／又は防止をするために、図１の安全性検査実行コード１２６のような安全性検査実行コードはブロック３１０で少なくとも部分的にコンピュータ・モジュール１００内に読み出されたアプリケーション・プログラム１２４に挿入される。本発明のある実施形態では、コンピュータ・モジュール１００はランダム・アクセス・メモリ（ＲＡＭ）のような揮発性メモリとフラッシュ・メモリのような不揮発性メモリとを含んでいても良い。安全性検査実行コード１２６は実行アプリケーション・コード１２４によるＲＡＭの指定領域外への読み出し及び／又は書き込み、及び／又はフラッシュ・メモリの指定領域外へのジャンプを制御及び／又は防止するであろう。
【００３１】
さらに図３を参照して、ブロック３３０で、ブロック３２０において挿入され追加された安全性検査実行コード１２６のために、アプリケーション・プログラム１２４が再リンクされることが望ましいだろう。最後に、ブロック３４０で、安全性検査実行コード１２６を挿入されたアプリケーション・プログラム１２４はＣＰＵ上で実行される。開発の間及び／又は実際の使用の間、実行が処理されるであろう。
【００３２】
図４は、本発明のある実施形態において、図１におけるコンピュータ・モジュール１００の中央演算処理ユニット１１０向けのアプリケーション・プログラム１２４のような、コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムの開発で処理されるであろう操作のフローチャートの一例である。本発明のある実施形態では、これらの操作は統合開発環境を提供するだろう。図４のブロック４１０に示すように、アプリケーション・プログラム用のソースコードが記述及びデバックされる。ある実施形態では、標準的なソースコード・オーサリングツール及びデバッグツールとともに、Ｃ言語のような標準的なソースコード言語が使用されるであろう。独自開発の及び／又はカスタマイズされたソースコード言語及び／又はツールを使用する必要はない。Ｃ言語以外のソースコード言語を使用してもよいことを当業者は理解できるであろう。これらのソースコード言語は、中央演算処理ユニット１１０上で実行できるネイティブ・マシン命令にソースコードを翻訳するコンパイラを含むべきである。したがって、ある実施形態では、例えばＢａｓｉｃ、Ｊａｖａ(登録商標)、ＡＤＡ、Ｐａｓｃａｌ、アセンブリ言語などが使用されるであろう。
【００３３】
次に、ブロック４２０で、実行アプリケーション・プログラムを提供するために、ソースコードはコンパイル及びアセンブルされる。ある実施形態では、フリーウェアのＧＮＵコンパイラ・コレクション（ＧＣＣ）のような標準的なコンパイラ／アセンブラが使用されるであろう。カスタマイズされたコンパイラ及び／又はアセンブラを提供する必要はないし、保守する必要もない。ブロック３１０で、図３においてすでに説明したように実行アプリケーション・プログラムはコンピュータ・モジュール内に読み出され、ブロック３２０で、図３においてすでに説明したように安全性検査実行コードが実行アプリケーション・プログラムに挿入される。そしてブロック４３０で、安全性検査コードを挿入された実行アプリケーション・プログラムがモジュールに記憶される。最後に、ブロック３４０で、図３において説明したように安全性検査コードを含む実行アプリケーション・プログラムは開発環境で及び／又は運用環境で実行される。
【００３４】
図５は、安全性検査実行コードの挿入を処理するであろう操作のフローチャートの一例であり、図３及び／又は４のブロック３２０に対応するであろう。図５に示すとおり、ブロック５１０で、図１のマシンコード安全化ツール１２２のようなマシンコード安全化ツールはコンピュータ・モジュール１００内に読み出される。マシンコード安全化ツールはコンピュータ・モジュール内に読み出されたプログラムに安全性検査実行コードを挿入するように構成される。そしてブロック５２０で、コンピュータ・モジュール１００内に読み出された実行アプリケーション・プログラム１２４に安全性検査実行コード１２６のような安全性実行コードを挿入するために、マシンコード安全化ツールによってコンピュータ・モジュール内に読み出された実行アプリケーション・プログラムが処理される。
【００３５】
ここで、図３から図５の操作についてさらに説明する。特に、ブロック４２０を再び参照して、コンパイル及びアセンブルの間に、ソースコードはアプリケーション・プログラムが利用できるコンピュータ・モジュール１００の組み込み関数の対応表に再リンクされるであろう。開発者が利用できる組み込み関数を含む対応表ファイルの一例を表１に図示する。アプリケーションが関数を呼び出したときにどこにジャンプするかをリンカに教えることによって、対応表ファイルは開発者のアプリケーション・プログラムが正しくリンクされることを可能とする。表１に示すとおり、ある実施形態では、プリント、送信、ダイヤル、応答、ハングアップ、ショート・メッセージ・サービス（ＳＭＳ）、及び／又はＰＩＮ有効化の関数が提供される。
表１
組み込み関数対応表
*(.text) 
.text
0x02000000  _m2m_printf
0x02000004  _m2m_sendAT
0x02000008  _m2m_dial
0x0200000c  _m2m_answer
0x02000010  _m2m_hangup
0x02000014  _m2m_sms_send
0x02000018  _m2m_sms_read
0x020000Ic  _m2m_sms_delete
0x02000020  _m2m_pin1
0x02000024  _m2m_pin2
0x02000028  _m2m_pin3
0x0200002C  _m2m_pin4
さらに、ブロック３２０で、安全性検査実行コードが挿入された場合に、安全性検査コードを挿入された実行プログラムは、挿入され追加された安全性検査コードを補完するために再リンクされるであろう。
【００３６】
本発明の様々な実施形態をさらに説明する。特に、上述したソニー  エリクソン  ＧＲ４７／４８のようなコンピュータ・モジュールのユーザの多くは、自己のモジュール／コントローラ・ハードウェアを設計し、構築するためのリソースを有していないかもしれない。さらに、ＧＲ４７／４８のようなモジュールは、開発者にモジュール上で直接動作する１以上の組み込みアプリケーションを記述することを可能とするであろうため、別個のハードウェア・コントローラを使用する必要はないであろう。あいにく、組み込みアプリケーションは比較的処理が遅いインタプリタ言語で実行されるかもしれない。モジュールにテキスト・ソースコードで組み込みアプリケーションがアップロードされ、過度のメモリを消費するかもしれないし、例えばコメントを含まない正に簡潔なソースコードであるために開発者に余計な負担を強いるかもしれない。ソースコードは例えば「Ｃ言語もどき」な特製の言語で書かれているかもしれないが、これには本物のＣ言語が含む豊富な機能が欠けているかもしれないし、保守する必要があるかもしれない。
【００３７】
Ｊａｖａ(登録商標)のような商用の代替は、たとえＪａｖａ(登録商標)仮想マシンを小さいサイズに縮小したとしても、モジュールのメモリ内のリソースを過度に消費するであろうため、実用的ではないであろう。さらに、Ｊａｖａ(登録商標)のような商用の代替に変更することは、独自仕様の「Ｃ言語もどき」でコーディング済みの既存の開発者にとって望ましくないであろう。
【００３８】
本発明のある実施形態は、モジュール上に直接読み出されたマシンコード・アプリケーション・プログラムをコンパイルするために、標準的なエディタ、アセンブラ、及びコンパイラを標準的な言語とともに使用することを可能とする。本発明のある実施形態における安全化ツールは読み出されたアプリケーション・プログラム向けのセキュリティーを提供できる。
【００３９】
図６は、本発明の様々な実施形態におけるアプリケーション・プログラム開発環境を機能的に説明する。開発者は標準的なＣ言語エディタを用いてＣ言語コード・ソースファイル６１０を記述する。前述の表１で説明したように、組み込みライブラリ・ジャンプ・テーブルの対応表６３０が提供されるであろう。組み込みライブラリ・ジャンプ・テーブル６３０は、ＧＮＵコンパイラ、ＧＮＵアセンブラ、及びＧＮＵリンカ６２０のような標準的な統合開発環境を用いて開発者がコードをコンパイルし、コードをデバッグするためにローカル・ホスト上で開発者がコードをステップ・スルーすることを可能とする。商用統合開発環境のすべての能力を開発者は利用できるであろう。コンピュータ・モジュールの特性がどの統合開発環境をユーザが使用するかを指定する必要はないし、カスタマイズされた統合開発環境を保守し又はサポートする必要もない。
【００４０】
コンパイルする際に、コンパイルされた実行ファイル作成するために開発者はＧＮＵコンパイラ６２０を実行するであろう。コンパイラ６２０はＧＮＵのフリーウェアのコンパイラ、アセンブラ及びリンカ、組み込み関数ジャンプ・テーブル６３０とリンクするリンカ対応ファイル、並びにコンパイラがコンパイルされた実行コードを生成するのに使用する構成情報を含んでもよい。対応表ファイル６３０は組み込みライブラリ関数で表される静的フラッシュ・ジャンプ・テーブルのメモリアドレスを含んでもよい。ユーザは対応表６３０で与えられるその他の関数呼出しの知識がないかもしれないので、ユーザは他の関数呼出しをリンクすることができないかもしれない。
【００４１】
コンパイラ６２０の操作の結果として、実行ファイルが生成される。しかしながら、この実行ファイルは、指定メモリ領域外への読み出し、書き込み、及び／又はジャンプをしてモジュールの他の操作を間違わせるかもしれないため、潜在的に安全でない実行ファイル６４０である。
【００４２】
ローダ・ツール６５０は安全でない実行ファイル６４０のイメージをモジュール１００′上にアップロードするのに使用される。ブロック３１０に関連して上述したように、イメージは全体が読み出されるかもしれないし、セクションごとかもしれないし、行ごとかもしれない。実行ファイルをネイティブ・コードとして安全に実行するためにモジュール１００′は安全化ツール１２２′を実行し、図１の安全性検査実行コード１２６を挿入されたのアプリケーション・プログラム１２４に対応する安全な実行ファイル１２４′を生成する。安全な実行ファイル１２４′はブロック６６０で示すフラッシュ・メモリに記憶されるかもしれない。
【００４３】
本発明の様々な実施形態におけるマシンコード安全化ツール１２２、１２２′についてさらに説明する。特に、どの組み込みアプリケーションも安全であることが保証されること、つまりアプリケーションが自身のリソース・サンドボックスから逃れられないことが望ましいであろう。組み込みアプリケーションには自身の存在場所であるフラッシュ・メモリの占有区画が与えられる。組み込みアプリケーションはこのフラッシュ・メモリの位置から実行される。プログラム変数に使用されるであろうＲＡＭの占有区画を組み込みアプリケーションに提供してもよい。組み込みアプリケーションに占有タスクを提供してもよく、タスクのためのレジスタ・スタックがＲＡＭ領域に存在しても良い。
【００４４】
本発明のある実施形態では、安全化ツール１２２、１２２′は開発者の安全でないマシンコード実行ファイル６４０を取得し、読み出し検査、書き込み検査、及び分岐検査のルーチンの呼出しを挿入する。すべての読み出し命令、保存命令、及び分岐命令は割り当て領域内で実行することを保証するように修正されるであろう。例えば、保存（書き込み）命令はすべて割り当てＲＡＭ領域内のメモリをポイントすることが保証されるであろう。さらに、すべての分岐命令及びジャンプ命令がフラッシュ領域内のメモリをポイントすることを検証することができる。
【００４５】
本発明の様々な生実施形態において、潜在的に安全でない実行コード６４０の一例と、安全でないコードの実行をマシンコード安全化ツール１２２／１２２′がどのように防止するかと、を説明する。安全でない保存命令又は書き込み命令の一例を説明する。しかしながら、同様の例を読み出し命令及びジャンプ命令に適用しても良い。以下の例は単なる例示とみなされるべきであり、発明を制限するものと解釈されるべきではない。
【００４６】
特に、潜在的にメモリの外側を壊すかもしれないため、以下のＣ言語コードは安全でないとみなされるであろう。
char* ptr = 0x00080000;    // ＥＡ領域の終末をポイント
* (ptr + 0x10000 ) = OxBB; // メモリの外側を破壊
このＣ言語コードは図６のＣ言語ソースファイル６１０に含まれるかもしれない。コンパイラ／アセンブラ／リンカ６２０はソースコードを以下のアセンブリコードにコンパイルするであろう。
LDR r0, OxBB          // 書き込む値をr0に読み出し
LDR r2, 0x00080000    // r2がメモリの終末をポイント
STR r0, [r2 + #10000] // [r2+10000]番地に保存
ある実施形態では、安全化ツール１２２／１２２′は上記ＳＴＲ（保存）命令を以下に置き換えるだろう。
LDR r0, OxBB           // 書き込む値をr0に読み出し
LDR r12, [r2 + #10000] // [r2 + #10000]番地をr12に読み出し
BR write_check         // 書き込み検査機能を呼出し
STR r0, rl2            // 関数から戻ったら、アドレスを書き込み
ここで、書き込み検査機能は以下のようなものであろう。
CMP r12, write_ea_start
BLE write_exception     // r12が妥当な範囲を下回る場合は停止
CMP r12, write_ea_end
BGE write_exception     // r12が妥当な範囲を上回る場合は停止
ここからわかるように、書き込み検査機能は書き込みアドレスを妥当な書き込み始点アドレス及び書き込み終点アドレスと比較し、書き込みアドレスの範囲外である場合は例外を生成する。そして、書き込み検査サブルーチンが範囲外のポインタを検知した場合、アプリケーション・タスクは停止し、及び／又はエラー・メッセージが通知されるであろう。同様の機能が読み出し命令及びジャンプ命令にも提供されるであろう。組み込みアプリケーションは安全性検査のためにわずかに操作が遅くなるかもしれないが、それでもインタプリタを使用した場合よりもはるかに処理速度が早いだろう。
【００４７】
ブロック３３０に関連して一般的に説明したとおり、安全化ツール１２２、１２２′はバイナリ実行ファイル上で操作できるため、安全性検査コードを挿入した場合には目的となる新たなメモリアドレスを反映するために分岐命令及びジャンプ命令を修正する必要があるであろう。この再リンクは当初のアドレスと新しいオフセットとを含むテーブルを作成することで達成されるであろう。再リンクは各分岐命令に到達したときにオフセット算術することで実行できる。例えば、以下の表２のような分岐オフセット・テーブルが提供されるであろう。
表２
当初のアドレス  オフセット
0x00080000      0x00
0x00080010      0x08
0x00080024      0x10
0x0008003C      0x18
安全化ツール１２２、１２２′が以下の行に到達したとする。
BR 0x00080018
ツールは表２を参照して、0x00080010番地から0x00080024番地までのすべてのコードは８バイト分ずれることを判定する。その後、分岐命令は以下に置き換わるであろう。
BR 0x00080020
【００４８】
実行時に、モジュール１００、１００′は、ＲＡＭ全体の０値化、すべての静的及び不変変数の正しいＲＡＭアドレスへのコピー、スタック及びヒープ・ポインタの初期化を含むＣ言語の開始プロセスを処理するであろう。モジュール１１０、１１０′は専用の優先度の低い組み込みアプリケーション・タスクを開始し、組み込みアプリケーションのメイン機能をポイントし、そして組み込みアプリケーションを実行することを可能とする。第２のタスクは組み込みアプリケーションのタスクを監視でき、十分なスタック領域とその他の潜在的な問題を検査する。問題はユーザに報告されるであろう。
【００４９】
本発明のある実施形態では、インタプリタ・ソースコードよりも一般的に容量が小さいマシンコードとしてアプリケーションをモジュールに記憶できるため、アプリケーションを大きくすることが可能となる。したがって、アプリケーションが大きくなったとしても、割り当てられたメモリ領域に適合する。さらに、アプリケーションをネイティブ・コードとして実行するため、インタプリタを使用したスクリプトよりも早く実行できる。開発者は完全なＣ言語及び／又は他の言語を利用できるであろうため、及び／又は商用統合開発環境を利用できるであろうため、開発者はより強力なアプリケーションを生み出すことができるであろう。商用統合開発環境のコーディング機能を使用できるであろうため、コーディングもより簡単になるであろう。さらに、カスタマイズされた言語及び統合開発活動をモジュールの販売者がサポートする必要はないであろう。
【００５０】
図と説明とを用いて、本発明の実施形態が開示されたが、明細書の用語は一般的かつ記述的な意味でのみ使用され、制限を目的としたものではなく、本発明の範囲は特許請求の範囲で設定される。
【図面の簡単な説明】
【００５１】
【図１】本発明の好適な実施形態におけるコンピュータ・モジュールのブロック図の一例である。
【図２】本発明の好適な実施形態におけるアプリケーション・プログラムの実行のために処理されるであろう操作のフローチャートの一例である。
【図３】本発明の好適な実施形態における実行時にアプリケーション・プログラムの検査を伴う読み出し、書き込み、及びジャンプで処理されるであろう操作のフローチャートの一例である。
【図４】本発明の好適な実施形態におけるアプリケーション開発のために処理されるであろう操作のフローチャートの一例である。
【図５】本発明の好適な実施形態における安全性検査実行コードを挿入するために処理されるであろう操作のフローチャートの一例である。
【図６】本発明の好適な実施形態におけるアプリケーション・プログラム開発環境の機能ブロック図の一例である。
【図１】
2009505275.tif 000003
【図２】
2009505275.tif 000004
【図３】
2009505275.tif 000005
【図４】
2009505275.tif 000006
【図５】
2009505275.tif 000007
【図６】
2009505275.tif 000008
【手続補正書】
【提出日】平成19年6月13日(2007.6.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラム開発方法であって、
コンパイル及びアセンブルされた実行アプリケーション・プログラムを前記コンピュータ・モジュール内に読み出す工程と、
実行アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、該コンピュータ・モジュール内に読み出された該実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程と、
前記安全性検査実行コードを挿入された前記実行アプリケーション・プログラムを前記コンピュータ・モジュール内に記憶する工程と
を備え、
安全性検査コードを挿入する前記工程は、
前記コンピュータ・モジュールに読み出されたプログラムに前記安全性検査コードを挿入するように構成された該コンピュータ・モジュールのマシンコード安全化ツールを提供する工程と、
前記コンピュータ・モジュールに読み出された前記実行アプリケーション・プログラムに前記安全性検査実行コードを挿入するために、前記マシンコード安全化ツールを用いて該コンピュータ・モジュールに読み出された該実行アプリケーション・プログラムを処理する工程と
を含むことを特徴とするアプリケーション・プログラム開発方法。
【請求項２】
前記アプリケーション・プログラム用のソースコードを記述及びデバッグする工程と、
前記コンパイル及びアセンブルされた実行アプリケーション・プログラムを提供するために前記アプリケーション・プログラム用の前記ソースコードをコンパイル及びアセンブルする工程と
が、コンパイル及びアセンブルされた実行アプリケーション・プログラムを前記コンピュータ・モジュール内に読み出す前記工程に先行することを特徴とする請求項１に記載の方法。
【請求項３】
コンパイル及びアセンブルする前記工程は、前記アプリケーション・プログラムが利用できる前記コンピュータ・モジュールの組み込み関数の対応表に前記ソースコードをリンクする工程をさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
安全性検査実行コードを挿入する前記工程は、前記安全性検査コードを挿入された前記実行アプリケーション・プログラムを再リンクする工程をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記安全性検査実行コードが挿入された前記実行アプリケーション・プログラムを記憶する前記工程の後に、
前記安全性検査実行コードが挿入された前記実行アプリケーション・プログラムを前記中央演算処理ユニット上で実行する工程
が処理されることを特徴とする請求項１に記載の方法。
【請求項６】
安全性検査実行コードを挿入する前記工程は、
前記アプリケーション・プログラムによる前記コンピュータ・モジュールの前記指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを防止するために、前記コンピュータ・モジュール内に読み出された前記実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程をさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記コンピュータ・モジュールは揮発性メモリ及び不揮発性メモリを含み、
安全性検査実行コードを挿入する前記工程は、
前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記コンピュータ・モジュール内に読み出された該実行アプリケーション・プログラムに安全性検査実行コードを挿入する工程
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部を含み、
前記コンピュータ・モジュールは前記無線周波部のための機能を提供するように構成される
ことを特徴とする請求項１に記載の方法。
【請求項９】
請求項１に記載の方法を実行するように構成された、コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
【請求項１０】
請求項１に記載の方法を実行するように構成されたアプリケーション開発環境システム。
【請求項１１】
コンピュータ・モジュールであって、
中央演算処理ユニットと、
前記中央演算処理ユニット上で実行されるプログラムを記憶するように構成されたメモリと、
前記中央演算処理ユニット上で直接実行されるように構成されたメモリ内のマシンコード・アプリケーション・プログラムと、
前記中央演算処理ユニット上で直接実行され、前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するように構成された前記メモリ内のマシンコード安全化ツールと
を備え、
前記メモリは揮発性メモリ及び不揮発性メモリを含み、
前記マシンコード安全化ツールは、前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記コンピュータ・モジュール内に読み出された該マシンコード・アプリケーション・プログラムに安全性検査実行コードを挿入するように構成される
ことを特徴とするコンピュータ・モジュール。
【請求項１２】
前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部をさらに備え、
前記アプリケーション・プログラムは前記無線周波部のための機能を提供するように構成される
ことを特徴とする請求項１１に記載のコンピュータ・モジュール。
【請求項１３】
請求項１１に記載のマシンコード安全化ツールを提供するように構成された、
コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
【請求項１４】
コンピュータ・モジュールであって、
中央演算処理ユニットと、
前記中央演算処理ユニット上で実行されるプログラムを記憶するように構成されたメモリと、
前記中央演算処理ユニット上で直接実行されるように構成されたメモリ内のマシンコード・アプリケーション・プログラムと、
前記中央演算処理ユニット上で直接実行し、
前記マシンコード・アプリケーション・プログラムによる前記コンピュータ・モジュールの指定メモリ領域外への読み出し、書き込み、及びジャンプのうち少なくとも何れかを制御するために、アプリケーション・プログラムに安全性検査実行コードを挿入する
ように構成された前記メモリ内のマシンコード安全化ツールと、
前記中央演算処理ユニット上で直接実行するように構成され、前記安全性検査実行コードを含む、メモリ内の１以上のアプリケーション・プログラム
を備えるコンピュータ・モジュール。
【請求項１５】
前記メモリは揮発性メモリ及び不揮発性メモリを含み、
前記マシンコード安全化ツールは、
前記実行アプリケーション・プログラムによる、前記揮発性メモリの指定メモリ領域外への読み出し及び書き込みのうち少なくとも何れかと、前記不揮発性メモリの指定メモリ領域外へのジャンプと、のうち少なくとも何れかを制御するために、前記アプリケーション・プログラムに前記安全性検査実行コードを挿入するように構成される
ことを特徴とする請求項１４に記載のコンピュータ・モジュール。
【請求項１６】
前記コンピュータ・モジュールは前記中央演算処理ユニットによって制御される無線周波部をさらに備え、
前記アプリケーション・プログラムは前記無線周波部のための機能を提供するように構成される
ことを特徴とする請求項１４に記載のコンピュータ・モジュール。
【請求項１７】
請求項１４に記載のマシンコード安全化ツールを提供するように構成された、
コンピュータ・モジュールの中央演算処理ユニット用のアプリケーション・プログラムを開発するためのコンピュータプログラム。
【国際調査報告】
2009505275.tif 000009
2009505275.tif 000010