以下、図面を参照しながら、本発明の一実施形態について説明する。
なお、以下の実施形態では、本発明の携帯端末の適用例として携帯電話端末を挙げているが、本実施形態にて説明する内容はあくまで一例であり、本発明はこの例に限定されないことは言うまでもない。
先ず、本発明の実施形態として、CDMA通信方式の無線通信処理を実行するCDMAプログラムとGSM通信方式の無線通信処理を実行するGSMプログラムの何れかにて起動(ブート)可能となされたデュアルブート対応の携帯電話端末を挙げる。
[本実施形態の携帯電話端末の概略構成]
図1には、本発明実施形態の携帯電話端末の概略的な内部ブロック構成例を示す。
この図1において、本実施形態の携帯電話端末は、ユーザによる事前の選択に応じて、ブート時に、CDMAエアーインターフェースによる通信に係る各種信号処理を実行するためのCDMAプログラムと、GSMエアーインターフェースによる通信に係る各種信号処理を実行するためのGSMプログラムの何れかを起動可能となされている。すなわち、本実施形態の携帯電話端末のモデムプロセッサ10は、上記CDMAプログラムとGSMプログラムの何れか起動されたプログラムを実行可能となされている。つまり、本実施形態の携帯電話端末はデュアルブート可能な端末となされている。なお、モデムプロセッサ10は、本実施形態の携帯電話端末における各部の制御や各種信号処理、NANDメモリ13やSDRAMメモリ14の書き込みや読み出しの制御等をも行う。上記CDMAプログラム又はGSMプログラムの起動時の本実施形態の携帯電話端末における動作の詳細については後述する。
RFデバイス11は、携帯電話基地局との間で無線通信を行うためのアンテナや、信号の変復調等を行うための各種回路部からなる。当該RFデバイス11は、モデムプロセッサ10と専用コントロールラインを通じて接続されている。RFデバイス11とモデムプロセッサ10との間の送受信データのやり取りや、モデムプロセッサ10によるRFデバイス11の制御は、当該専用コントロールラインを通じて行われる。
LCD(Liquid Crystal Display)部12は、携帯電話端末に設けられた、表示によるユーザインターフェースデバイスであり、液晶ディスプレイとその液晶ディスプレイを駆動する回路とからなる。なお、本実施形態では液晶ディスプレイを例示しているが、例えば有機EL(ElectroLuminescent)やFED(Field Emission Display)等の他のディスプレイであってもよい。上記LCD部12は、EBI(External Bus Interface)1バスを介してモデムプロセッサ10に接続されている。LCD部12とモデムプロセッサ10との間のデータのやり取りや、モデムプロセッサ10によるLCD部12の制御は、当該EBI1バスを介して行われる。
NANDメモリ13は、端末起動後にモデムプロセッサ10が通信等の各種信号処理や各部を制御するための各種プログラム、各種初期設定値、ユーザデータ等のその他様々なデータを格納する不揮発性のメモリである。そして、当該NANDメモリ13は、EBI1バスを介してモデムプロセッサ10に接続されている。NANDメモリ13とモデムプロセッサ10との間のデータのやり取りや、モデムプロセッサ10によるNANDメモリ13の制御は、当該EBI1バスを介して行われる。
また本実施形態の場合、NANDメモリ13には、携帯電話端末におけるデュアルブートに関連する制御を実行するブート制御プログラムと、ソフトウェアアップデートに関連する制御を実行するアップデート制御プログラムも格納されている。
さらに本実施形態の場合、NANDメモリ13には、例えばCDMAプログラムとGSMプログラムの何れか一方のみのプログラムと、当該一方のプログラムを他方のプログラムへ変換するためのソフトウェア変換用データ及びソフトウェア変換エンジン用プログラムも格納されている。なお、CDMAプログラムやGSMプログラムは、それぞれ所定のソフトウェア言語等により記述された複数のプログラム構成要素が組み合わされて形成されたプログラムとなっている。
ここで、当該NANDメモリ13に格納されている上記一方のプログラムがCDMAプログラムであった場合、上記ソフトウェア変換用データは、CDMAプログラム内においてGSMプログラムとは異なるプログラム構成要素を特定すると同時に、当該CDMAプログラム内で特定されたプログラム構成要素をGSMプログラム用のプログラム構成要素へ変換(例えば置換)するためのデータとなされる。言い換えると、この場合のソフトウェア変換用データは、CDMAプログラムとGSMプログラムとの間の差分のデータとなっている。以下の説明では、上記CDMAプログラムをGSMプログラムへ変換するためのソフトウェア変換用データを、簡略化して「CDMA→GSM差分データ」と表記することにする。
また 上述のようにNANDメモリ13にCDMAプログラムが格納されている場合、上記ソフトウェア変換エンジン用プログラムは、モデムプロセッサ10が、上記CDMA→GSM差分データを用いて上記CDMAプログラムをGSMプログラムへ変換する処理を実行するためのプログラムとなされる。以下の説明では、上記ソフトウェア変換エンジン用プログラムを簡略化して「ソフトウェア変換エンジン」と表記する。
一方、上記NANDメモリ13に格納されている上記一方のプログラムがGSMプログラムであった場合、上記ソフトウェア変換用データは、GSMプログラム内においてCDMAプログラムとは異なるプログラム構成要素を特定すると同時に、当該GSMプログラム内で特定されたプログラム構成要素をCDMAプログラム用のプログラム構成要素へ変換(置換)するためのデータとなされる。言い換えると、この場合のソフトウェア変換用データは、GSMプログラムとCDMAプログラムとの間の差分のデータとなっている。以下の説明では、上記GSMプログラムをCDMAプログラムへ変換するためのソフトウェア変換用データを、簡略化して「GSM→CDMA差分データ」と表記することにする。
また、このようにNANDメモリ13にGSMプログラムが格納されている場合、上記ソフトウェア変換エンジンは、モデムプロセッサ10が、上記GSM→CDMA差分データを用いて上記GSMプログラムをCDMAプログラムへ変換する処理を実行するためのプログラムとなされる。
SDRAMメモリ14は、モデムプロセッサ10等にて実行されるプログラムが展開されるプログラム領域と、モデムプロセッサ10の作業領域として随時データを格納するためのRAMワーク領域と、送受信データ等の各種データを一時的に蓄積するバッファ領域とを有している。当該SDRAMメモリ14は、EBI2バスを介してモデムプロセッサ10に接続されている。SDRAMメモリ14とモデムプロセッサ10との間のデータのやり取りや、モデムプロセッサ10によるSDRAMメモリ14の制御は、当該EBI2バスを介して行われる。
なお、以下の説明では、本実施形態の携帯電話端末において、ブート時にCDMAプログラムが起動された場合の動作モードをCDMAモードと呼び、ブート時にGSMプログラムが起動された場合の動作モードをGSMモードと呼ぶことにする。
[NANDメモリ上のメモリマッピング]
図2の(B)には、上記NANDメモリ13にCDMAプログラムとCDMA→GSM差分データとソフトウェア変換エンジンが格納されている場合のメモリマッピング例を示す。なお、図2の(B)では、CDMAプログラムとCDMA→GSM差分データとソフトウェア変換エンジンとユーザデータ格納領域のみを示し、他のプログラムやデータ等の図示は省略している。
また、図2の(A)には、図2の(B)に示された本実施形態のメモリマッピングに対する比較例として、NANDメモリ上にCDMAプログラムとGSMプログラムの両方を独立して格納した場合のメモリマッピング例を示している。
これら図2の(B)から判るように、本実施形態のようにCDMAプログラムとCDMA→GSM差分データとソフトウェア変換エンジンを格納するようにした場合には、図2の(A)と比較して、より多くのユーザデータ格納領域を確保することができる。すなわち、CDMAプログラムやGSMプログラムのデータ量に比べ、CDMA→GSM差分データとソフトウェア変換エンジンのデータ量は非常に少ない。このため、図2の(B)の場合は、図2の(A)のGSMプログラムのデータ量からCDMA→GSM差分データ及びソフトウェア変換エンジンのデータ量を差し引いた分だけ、ユーザデータ格納領域が増加している。
一方、図3の(B)には、上記NANDメモリ13にGSMプログラムとGSM→CDMA差分データとソフトウェア変換エンジンとユーザデータ格納領域が格納されている場合のメモリマッピングを示す。なお、図3の(A)には、図2の(A)と同様のNANDメモリのメモリマッピング例を示している。この図3の例も図2の場合と同様であり、図3の(B)の場合は、図3の(A)のCDMAプログラムのデータ量からGSM→CDMA差分データ及びソフトウェア変換エンジンのデータ量を差し引いた分だけ、ユーザデータ格納領域が増加している。
上述のように本実施形態の場合、NANDメモリ13にはCDMAプログラムとGSMプログラムの何れか一方のみのプログラムが格納されている。また、NANDメモリ13に格納される差分データは、CDMAプログラムが格納されている場合にはCDMA→GSM差分データのみとなされ、一方、GSMプログラムが格納されている場合にはGSM→CDMA差分データのみとなる。したがって本実施形態によれば、CDMAプログラムとGSMプログラムの両方が格納される場合と比較して、ユーザデータ格納領域等を多く確保することが可能となっている。具体的には、CDMAプログラムとGSMプログラムの両方が格納される場合と比較すると、本実施形態の場合は、数MByte単位でより多くのメモリ容量を確保でき、そのメモリ容量をユーザデータ格納領域等に加えることが可能となる。
なお、本実施形態において、CDMAプログラムとGSMプログラムの何れをNANDメモリ13に格納しておくかは、それらプログラムの使用頻度を考慮して決定される。例えば、ユーザが主に使用する地域でCDMA通信方式が使用されている場合にはCDMAプログラムをNANDメモリ13に格納しておき、また、主にGSM通信方式が使用される地域である場合にはGSMプログラムを格納しておくようにする。
[デュアルブート対応の端末におけるブート時の動作]
本実施形態の携帯電話端末は、起動時には、例えばモデムプロセッサ10が、NANDメモリ13等に格納されているブート制御プログラムを実行することにより、以下に説明するような起動処理を行う。
先ず、NANDメモリ13にCDMAプログラムとCDMA→GSM差分データとソフトウェア変換エンジンが格納されている場合において、事前にユーザによりCDMAモードでの起動が選択されていた場合の起動処理について、図4を参照しながら説明する。
図4は、NANDメモリ13にCDMAプログラム等が格納され、且つCDMAモードでの起動が事前に選択されていた場合において、ブート時にモデムプロセッサ10がNANDメモリ13からSDRAMメモリ14のプログラム領域へCDMAプログラムを展開する様子を示している。なお、図4の(A)はSDRAMメモリ14のメモリマッピングを示し、図4の(B)はNANDメモリ13のメモリマッピングを示している。但し、図4の(B)は、前述の図2の(B)の例と同様に、CDMAプログラムとCDMA→GSM差分データとソフトウェア変換エンジンとユーザデータ格納領域のみを示し、他のプログラムやデータ等の図示は省略している。また、図4の(A)では、プログラム領域とRAMワーク領域のみ図示しており、バッファ領域等の他の領域の図示は省略している。
すなわち、NANDメモリ13にCDMAプログラム等が格納され且つCDMAモードでの起動がユーザにより事前に選択されていた場合、図4に示すように、ブート制御プログラム実行中のモデムプロセッサ10は、NANDメモリ13のCDMAプログラムをそのままSDRAMメモリ14のプログラム領域へ展開して起動させる。これにより、本実施形態の携帯電話端末はCDMAモードで起動することになる。
次に、NANDメモリ13にCDMAプログラムとCDMA→GSM差分データとソフトウェア変換エンジンが格納されていた場合において、事前にユーザによりGSMモードでの起動が選択されていた場合の起動処理について、図5を参照しながら説明する。
図5は、NANDメモリ13にCDMAプログラム等が格納され、且つGSMモードでの起動が事前に選択されていた場合において、ブート時にモデムプロセッサ10が実行するプログラムの展開及びデータの転送処理の様子を示している。なお、図5の(A)はSDRAMメモリ14のメモリマッピングを示し、図5の(B)はNANDメモリ13のメモリマッピングを示している。但し、図5の(B)は、前述の図4の(B)の例と同様に、CDMAプログラムとCDMA→GSM差分データとソフトウェア変換エンジンとユーザデータ格納領域のみを示し、他のプログラムやデータ等の図示は省略している。また、図5の(A)では、プログラム領域とRAMワーク領域のみ図示しており、バッファ領域等の図示は省略している。
すなわち、NANDメモリ13にCDMAプログラム等が格納され且つGSMモードでの起動がユーザにより事前に選択されていた場合、ブート制御プログラム実行中のモデムプロセッサ10は、先ずNANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開(P1)して起動する。なお、RAMワーク領域は、プログラム起動後はそのプログラムにて定義される変数等の格納領域となるが、この時点では未だブート中であるので、当該RAMワーク領域の全領域の使用が可能となっている。
次に、当該ソフトウェア変換エンジン実行中のモデムプロセッサ10は、SDRAMメモリ14のRAMワーク領域内に別途形成したソフトウェア変換用ワーク領域を用いて、NANDメモリ13のCDMAプログラムとCDMA→GSM差分データからGSMプログラムを作成(P2)する。
また、ソフトウェア変換エンジン実行中のモデムプロセッサ10は、上記ソフトウェア変換用ワーク領域上で作成したGSMプログラムを、SDRAMメモリ14のプログラム領域へ逐次転送して展開(P3)する。なお、この時のプログラムの変換処理は、規定のブロック単位で実施されるため、上記プログラム領域への展開時には当該ブロック単位でのデータ転送が行われる。
そして、SDRAMメモリ14のプログラム領域へGSMプログラムを全て展開し終えると、モデムプロセッサ10は、当該GSMプログラムを起動させる。これにより、本実施形態の携帯電話端末はGSMモードで起動することになる。
なお、SDRAMメモリ14のプログラム領域へGSMプログラムを全て展開し終わった場合には、SDRAMメモリ14のRAMワーク領域上のソフトウェア変換エンジンとソフトウェア変換用ワーク領域上のデータを消去し、RAMワーク領域上で使用可能な領域を確保することが望ましい。
一方、NANDメモリ13に、GSMプログラムとGSM→CDMA差分データとソフトウェア変換エンジンが格納されていた場合、携帯電話端末は、ブート時に図6と図7に示すような起動処理を行う。
図6には、NANDメモリ13にGSMプログラムとGSM→CDMA差分データとソフトウェア変換エンジン等が格納され、且つGSMモードでの起動がユーザにより事前に選択されていた時の起動処理の様子を示す。なお、図6の(A)はSDRAMメモリ14のメモリマッピングを示し、図6の(B)はNANDメモリ13のメモリマッピングを示している。但し、図6の(B)は、前述の図3の例と同様に、GSMプログラムとGSM→CDMA差分データとソフトウェア変換エンジンとユーザデータ格納領域のみを示し、他のプログラムやデータ等の図示は省略している。また、図6の(A)では、プログラム領域とRAMワーク領域のみ図示しており、バッファ領域等の図示は省略している。
すなわち、図6に示すように、NANDメモリ13にGSMプログラム等が格納され且つGSMモードでの起動がユーザにより事前に選択されていた場合、ブート制御プログラム実行中のモデムプロセッサ10は、NANDメモリ13のGSMプログラムをそのままSDRAMメモリ14のプログラム領域へ展開して起動させる。これにより、本実施形態の携帯電話端末はGSMモードで起動することになる。
これに対し、NANDメモリ13にGSMプログラム等が格納され、且つCDMAモードでの起動がユーザにより事前に選択されていた場合、本実施形態の携帯電話端末のブート時には、図7に示すような起動処理が行われる。
図7には、NANDメモリ13にGSMプログラム等が格納され、且つCDMAモードでの起動がユーザにより事前に選択されていた場合に、ブート時にモデムプロセッサ10が実行するプログラムの展開及びデータの転送処理の様子を示している。なお、図7の(A)はSDRAMメモリ14のメモリマッピングを示し、図7の(B)はNANDメモリ13のメモリマッピングを示している。但し、図7の(B)は、前述の図6の(B)の例と同様に、GSMプログラムとGSM→CDMA差分データとソフトウェア変換エンジンとユーザデータ格納領域のみを示し、他のプログラムやデータ等の図示は省略している。また、図7の(A)では、プログラム領域とRAMワーク領域のみ図示しており、バッファ領域等の図示は省略している。
すなわち、NANDメモリ13にGSMプログラム等が格納され、且つCDMAモードでの起動がユーザにより事前に選択されていた場合、ブート制御プログラム実行中のモデムプロセッサ10は、先ず、NANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開(P1)して起動する。なお、この時点でのRAMワーク領域は、前述同様に全領域の使用が可能となっている。
次に、当該ソフトウェア変換エンジン実行中のモデムプロセッサ10は、SDRAMメモリ14のRAMワーク領域内に別途形成したソフトウェア変換用ワーク領域を用い、NANDメモリ13のGSMプログラムとGSM→CDMA差分データからCDMAプログラムを作成(P2)する。
また、ソフトウェア変換エンジン実行中のモデムプロセッサ10は、上記ソフトウェア変換用ワーク領域上で作成したCDMAプログラムを、SDRAMメモリ14のプログラム領域へ逐次転送して展開(P3)する。なお、この例での転送も前述同様にブロック単位で行われる。
そして、SDRAMメモリ14のプログラム領域へCDMAプログラムを全て展開し終えると、モデムプロセッサ10は、当該CDMAプログラムを起動させる。これにより、本実施形態の携帯電話端末はCDMAモードで起動することになる。
なお、SDRAMメモリ14のプログラム領域へCDMAプログラムを全て展開し終わった場合には、SDRAMメモリ14のRAMワーク領域上のソフトウェア変換エンジンとソフトウェア変換用ワーク領域上のデータを消去して、RAMワーク領域上で使用可能な領域を確保することが望ましい。
[デュアルブート対応の端末におけるブート時の動作フローチャート]
図8には、NANDメモリ13にCDMAプログラム等が格納されている場合において、ブート時にモデムプロセッサ10にて実行される処理の流れを示す。
図8において、携帯電話端末の電源ON等により起動処理が開始されると、モデムプロセッサ10は、ブート制御プログラムの実行により、先ずNANDメモリ13等に保存されているユーザ設定値を参照する。このユーザ設定値は、前述したようにCDMAモードとGSMモードの何れで起動するかをユーザが事前に選択して設定された値であり、例えばNANDメモリ13等の不揮発性メモリ上でフラグ情報等により管理される値となされている。
そして、モデムプロセッサ10は、ステップS1の処理として、ブート時の動作モードを表すユーザ設定値がCDMAモードを示す値に設定されているか否か判断する。上記ステップS1の判断処理において、モデムプロセッサ10は、CDMAモードが設定されていると判断した場合にはステップS2へ処理を進め、一方、GSMモードが設定されていると判断した場合にはステップS3へ処理を進める。
ステップS2の処理に進むと、モデムプロセッサ10は、NANDメモリ13上のCDMAプログラムをそのままSDRAMメモリ14のプログラム領域へ展開する。
そして、モデムプロセッサ10は、当該SDRAMメモリ14のプログラム領域へ展開されたCDMAプログラムを起動させる。これにより、本実施形態の携帯電話端末はCDMAモードで起動することになる。
一方、ステップS3の処理に進むと、モデムプロセッサ10は、NANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開して起動する。
そして、このステップS3によるソフトウェア変換エンジンの展開及び起動が完了すると、モデムプロセッサ10は、当該ソフトウェア変換エンジンによる処理の実行に切り替わり、ステップS4へ処理を進める。
ステップS4の処理に進むと、上記モデムプロセッサ10は、SDRAMメモリ14のワーク領域内に別途形成したソフトウェア変換用ワーク領域を用い、NANDメモリ13上のCDMAプログラムとCDMA→GSM差分データからGSMプログラムを作成する。また、モデムプロセッサ10は、上記ソフトウェア変換用ワーク領域上で作成したGSMプログラムを、SDRAMメモリ14のプログラム領域へ逐次転送して展開する。
そして、SDRAMメモリ14のプログラム領域へGSMプログラムを全て展開し終わると、モデムプロセッサ10は、ステップS5の処理として、SDRAMメモリ14のRAMワーク領域上のソフトウェア変換エンジンとソフトウェア変換用ワーク領域上のデータを消去する。
その後、モデムプロセッサ10は、上記SDRAMメモリ14のプログラム領域へ展開されたGSMプログラムを起動させる。これにより、本実施形態の携帯電話端末はGSMモードで起動することになる。なお、ステップS5におけるデータ消去処理は、GSMプログラムの起動後に行われてもよい。
図9には、NANDメモリ13にGSMプログラム等が格納されている場合において、ブート時にモデムプロセッサ10にて実行される処理の流れを示す。
図9において、携帯電話端末の電源ON等により起動処理が開始されると、モデムプロセッサ10は、NANDメモリ13等に保存されているユーザ設定値を参照し、ステップS11の処理にて、ブート時の動作モードを表すユーザ設定値がGSMモードを示す値に設定されているか否か判断する。上記ステップS11の判断処理において、モデムプロセッサ10は、GSMモードが設定されていると判断した場合にはステップS12へ処理を進め、一方、CDMAモードが設定されていると判断した場合にはステップS13へ処理を進める。
ステップS12の処理に進むと、モデムプロセッサ10は、NANDメモリ13上のGSMプログラムをそのままSDRAMメモリ14のプログラム領域へ展開し、そのCDMAプログラムを起動させる。これにより、本実施形態の携帯電話端末はGSMモードで起動することになる。
一方、ステップS13の処理に進むと、モデムプロセッサ10は、NANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開して起動し、ステップS14へ処理を進める。
ステップS14の処理に進むと、上記モデムプロセッサ10は、SDRAMメモリ14のソフトウェア変換用ワーク領域を用い、NANDメモリ13上のGSMプログラムとGSM→CDMA差分データからCDMAプログラムを作成する。また、モデムプロセッサ10は、上記ソフトウェア変換用ワーク領域上で作成したCDMAプログラムを、SDRAMメモリ14のプログラム領域へ逐次転送して展開する。
そして、SDRAMメモリ14のプログラム領域へCDMAプログラムを全て展開し終わると、モデムプロセッサ10は、ステップS15の処理として、SDRAMメモリ14のRAMワーク領域上のソフトウェア変換エンジンとソフトウェア変換用ワーク領域上のデータを消去する。
その後、モデムプロセッサ10は、上記SDRAMメモリ14のプログラム領域へ展開されたCDMAプログラムを起動させる。これにより、本実施形態の携帯電話端末はCDMAモードで起動することになる。なお、ステップS15におけるデータ消去処理は、CDMAプログラムの起動後に行われてもよい。
[マルチブートの実施形態]
上述の実施形態では、CDMAプログラムとGSMプログラムの何れかで起動するデュアルブートの例について述べたが、本発明は、三つ以上のプログラムの何れかで起動するマルチブートにも適用可能である。
以下、CDMAプログラムとGSMプログラムに、さらにUMTS(Universal Mobile Telecommunications System)通信方式の無線通信処理を実行するプログラム(以下UMTSプログラムと呼ぶ。)の三つのプログラムの何れかで起動するマルチブートの例について説明する。
本実施形態のように、上記三つのプログラムの何れかで起動するマルチブートを実現する場合、NANDメモリ13には、それら三つのプログラムのうちの何れか一つのプログラムと、当該一つのプログラムをそれぞれ他のプログラムへ変換するためのソフトウェア変換用データと、ソフトウェア変換エンジンとが格納される。
ここで、当該NANDメモリ13に格納されている上記一つのプログラムがCDMAプログラムであった場合、上記ソフトウェア変換用データは、前述のCDMA→GSM差分データと、CDMAプログラムをUMTSプログラムへ変換するためのデータとの二つのデータからなる。なお、CDMAプログラムをUMTSプログラムへ変換するためのデータは、CDMAプログラム内においてUMTSプログラムとは異なるプログラム構成要素を特定すると同時に、当該CDMAプログラム内で特定されたプログラム構成要素をUMTSプログラム用のプログラム構成要素へ変換(置換)するためのデータとなされる。言い換えると、当該ソフトウェア変換用データは、CDMAプログラムとUMTSプログラムとの間の差分のデータとなる。以下の説明では、上記CDMAプログラムをUMTSプログラムへ変換するためのソフトウェア変換用データを、簡略化して「CDMA→UMTS差分データ」と表記する。
また 上記三つのプログラムの何れかで起動するマルチブートを実現する場合において、NANDメモリ13にCDMAプログラムが格納されているとき、ソフトウェア変換エンジンは、前述したCDMAプログラムをGSMプログラムに変換する機能に加えて、CDMAプログラムをUMTSプログラムに変換する機能をも実現する。すなわち、CDMAプログラムをUMTSプログラムに変換する機能は、モデムプロセッサ10が、上記CDMA→UMTS差分データを用いて上記CDMAプログラムをUMTSプログラムへ変換する処理を実行するためのプログラムにより実現される。
一方、上記三つのプログラムの何れかで起動するマルチブートを実現する場合において、上記NANDメモリ13に格納されている一つのプログラムがGSMプログラムであったとすると、上記ソフトウェア変換用データは、前述のGSM→CDMA差分データと、GSMプログラムをUMTSプログラムへ変換するためのデータの二つのデータからなる。すなわち、GSMプログラムをUMTSプログラムへ変換するためのデータは、GSMプログラム内においてUMTSプログラムとは異なるプログラム構成要素を特定すると同時に、当該GSMプログラム内で特定されたプログラム構成要素をUMTSプログラム用のプログラム構成要素へ変換するためのデータとなされる。換言すると、この場合のソフトウェア変換用データは、GSMプログラムとUMTSプログラムとの間の差分のデータとなる。以下、上記GSMプログラムをUMTSプログラムへ変換するためのソフトウェア変換用データを、簡略化して「GSM→UMTS差分データ」と表記する。
また、上記三つのプログラムの何れかで起動するマルチブートを実現する場合において、NANDメモリ13にGSMプログラムが格納されているとき、ソフトウェア変換エンジンは、前述したGSMプログラムをCDMAプログラムに変換する機能に加えて、GSMプログラムをUMTSプログラムに変換する機能をも有する。すなわち、GSMプログラムをUMTSプログラムに変換する機能は、モデムプロセッサ10が、上記GSM→UMTS差分データを用いて上記GSMプログラムをUMTSプログラムへ変換する処理を実行するためのプログラムにより実現される。
さらに、上記三つのプログラムの何れかで起動するマルチブートを実現する場合において、上記NANDメモリ13に格納されている一つのプログラムがUMTSプログラムであったとすると、上記ソフトウェア変換用データは、UMTSプログラムをCDMAプログラムへ変換するためのデータと、UMTSプログラムをGSMプログラムへ変換するためのデータの二つからなる。
すなわち、UMTSプログラムをCDMAプログラムへ変換するためのデータは、UMTSプログラム内においてCDMAプログラムとは異なるプログラム構成要素を特定すると同時に、当該UMTSプログラム内で特定されたプログラム構成要素をCDMAプログラム用のプログラム構成要素へ変換(置換)するためのデータとなされる。つまり、この場合のソフトウェア変換用データは、UMTSプログラムとCDMAプログラムとの間の差分のデータとなる。以下、上記UMTSプログラムをCDMAプログラムへ変換するためのソフトウェア変換用データを、簡略化して「UMTS→CDMA差分データ」と表記する。
同様に、UMTSプログラムをGSMプログラムへ変換するためのデータは、UMTSプログラム内においてGSMプログラムとは異なるプログラム構成要素を特定すると同時に、当該UMTSプログラム内で特定されたプログラム構成要素をGSMプログラム用のプログラム構成要素へ変換(置換)するためのデータとなされる。つまり、この場合のソフトウェア変換用データは、UMTSプログラムとGSMプログラムとの間の差分のデータとなる。以下、上記UMTSプログラムをGSMプログラムへ変換するためのソフトウェア変換用データを、簡略化して「UMTS→GSM差分データ」と表記する。
また、上記三つのプログラムの何れかで起動するマルチブートを実現する場合において、NANDメモリ13にUMTSプログラムが格納されているとき、ソフトウェア変換エンジンは、UMTSプログラムをCDMAプログラムに変換する機能と、UMTSプログラムをGSMプログラムへ変換する機能とを有する。
すなわち、UMTSプログラムをCDMAプログラムに変換する機能は、モデムプロセッサ10が、上記UMTS→CDMA差分データを用いて上記UMTSプログラムをCDMAプログラムへ変換する処理を実行するためのプログラムとなされる。
また、UMTSプログラムをGSMプログラムに変換する機能は、モデムプロセッサ10が、上記UMTS→GSM差分データを用いて上記UMTSプログラムをGSMプログラムへ変換する処理を実行するためのプログラムとなされる。
なお、以下の説明では、上述のようなマルチブート対応の携帯電話端末において、ブート時にUMTSプログラムが起動された時の動作モードをUMTSモードと呼ぶことにする。
[マルチブート対応時のNANDメモリ上のメモリマッピング]
図10の(B)には、上記NANDメモリ13にCDMAプログラムとCDMA→GSM差分データとCDMA→UMTS差分データとソフトウェア変換エンジンが格納されている場合のメモリマッピング例を示す。なお、図10の(B)には、CDMAプログラムとCDMA→GSM差分データ,CDMA→UMTS差分データとソフトウェア変換エンジンとユーザデータ格納領域のみを示し、他のプログラムやデータ等の図示は省略している。
また、図10の(A)には、図10の(B)に示された本実施形態のメモリマッピングに対する比較例として、NANDメモリ上にCDMAプログラムとGSMプログラムとUMTSプログラムの三つを独立して格納した場合のメモリマッピング例を示している。
これら図10の(B)から判るように、本実施形態のようにCDMAプログラムとCDMA→GSM差分データ,CDMA→UMTS差分データとソフトウェア変換エンジンを格納するようにした場合には、図10の(A)と比較して、より多くのユーザデータ格納領域を確保することができる。すなわち、CDMAプログラムやGSMプログラム,UMTSプログラムのデータ量に比べ、CDMA→GSM差分データ,CDMA→UMTS差分データ及びソフトウェア変換エンジンのデータ量は非常に少ない。このため、図10の(B)の場合は、図10の(A)のGSMプログラム及びUMTSプログラムのデータ量から、CDMA→GSM差分データ,CDMA→UMTS差分データ及びソフトウェア変換エンジンのデータ量を差し引いた分だけ、ユーザデータ格納領域が増加している。
なお、上述のようなマルチブート対応の場合において、NANDメモリ13にGSMプログラム等が格納されている場合のメモリマッピングは、図10の(B)において、CDMAプログラムをGSMプログラムと書き換え、また、CDMA→GSM差分データをGSM→CDMA差分データ、CDMA→UMTS差分データをGSM→UMTS差分データとい書き換えたものとなり、それらの図示及び説明については省略する。同様に、マルチブート対応の場合において、NANDメモリ13にUMTSプログラム等が格納されている場合のメモリマッピングは、図10の(B)において、CDMAプログラムをUMTSプログラムと書き換え、また、CDMA→GSM差分データをUMTS→GSM差分データ、CDMA→UMTS差分データをUMTS→CDMA差分データと書き換えたものとなり、それらの図示及び説明については省略する。
[マルチブート対応時の端末におけるブート時の動作]
上述のようなマルチブート対応の本実施形態の携帯電話端末において、モデムプロセッサ10は、起動時には以下に説明するような起動処理を行う。
上記マルチブート対応の携帯電話端末において、NANDメモリ13にCDMAプログラムとCDMA→GSM差分データとCDMA→UMTS差分データとソフトウェア変換エンジンが格納され、且つ、事前にユーザによりUMTSモードでの起動が選択されていた場合の起動処理について、図11を参照しながら説明する。
図11は、NANDメモリ13にCDMAプログラム等が格納され、且つUMTSモードでの起動が事前に選択されていた場合において、ブート時にモデムプロセッサ10が実行するプログラムの展開及びデータの転送処理の様子を示している。なお、図11の(A)はSDRAMメモリ14のメモリマッピングを示し、図11の(B)はNANDメモリ13のメモリマッピングを示している。但し、図11の(B)は、CDMAプログラムとCDMA→GSM差分データとCDMA→UMTS差分データとソフトウェア変換エンジンとユーザデータ格納領域のみを示し、他のプログラムやデータ等の図示は省略している。また、図11の(A)では、プログラム領域とRAMワーク領域のみ図示しており、バッファ領域等の図示は省略している。
このように、上記マルチブート対応の携帯電話端末において、NANDメモリ13にCDMAプログラム等が格納され且つUMTSモードでの起動がユーザにより事前に選択されていた場合、ブート制御プログラム実行中のモデムプロセッサ10は、先ずNANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開(P1)して起動する。
次に、当該ソフトウェア変換エンジン実行中のモデムプロセッサ10は、SDRAMメモリ14のソフトウェア変換用ワーク領域を用いて、NANDメモリ13のCDMAプログラムとCDMA→UMTS差分データからUMTSプログラムを作成(P2)する。
また、ソフトウェア変換エンジン実行中のモデムプロセッサ10は、上記ソフトウェア変換用ワーク領域上で作成したUMTSプログラムを、SDRAMメモリ14のプログラム領域へ逐次転送して展開(P3)する。
そして、SDRAMメモリ14のプログラム領域へUMTSプログラムを全て展開し終えると、モデムプロセッサ10は、当該UMTSプログラムを起動させる。これにより、本実施形態の携帯電話端末はUMTSモードで起動することになる。
なお、上記マルチブート対応の場合において、NANDメモリ13にGSMプログラム等が格納されていたとすると、図11は、CDMAと記載されている部分をGSMと書き換え、一方GSMと記載されている部分をCDMAと書き換えたものとなる。この例の場合の動作は、前述した説明の流れと同じであるためここでは省略する。同様に、マルチブート対応の場合において、NANDメモリ13にUMTSプログラム等が格納されていたとすると、図11は、CDMAと記載されている部分をUMTSと書き換え、一方UMTSと記載されている部分をCDMAと書き換えたものとなる。この例の場合の動作に付いても、前述した説明の流れと同じであるためここでは省略する。
また、上記マルチブート対応の場合において、NANDメモリ13にCDMAプログラム或いはGSMプログラム或いはUMTSプログラム等が格納されていた場合において、それらNANDメモリ13に格納されているプログラムの起動がユーザにより事前に選択されていた時には、それらプログラムがそのままSDRAMメモリ14のプログラム領域へ展開されることになる。この例の場合の動作に付いても、前述した説明の流れと同じであるためここでは省略する。
[マルチブート対応時の端末におけるブート時の動作フローチャート]
図12には、上述したマルチブート対応の端末において、NANDメモリ13に例えばCDMAプログラム等が格納されている場合、ブート時にモデムプロセッサ10にて実行される処理の流れを示す。
図12において、携帯電話端末の電源ON等により起動処理が開始されると、モデムプロセッサ10は、NANDメモリ13等に保存されているユーザ設定値を参照し、ステップS31の処理として、ユーザ設定値がCDMAモードを示す値に設定されているか否か判断する。上記ステップS31の判断処理において、モデムプロセッサ10は、CDMAモードが設定されていると判断した場合にはステップS32へ処理を進め、一方、GSMモードが設定されていると判断した場合にはステップS33へ処理を進める。
ステップS32の処理に進むと、モデムプロセッサ10は、NANDメモリ13上のCDMAプログラムをそのままSDRAMメモリ14のプログラム領域へ展開し、その当該展開されたCDMAプログラムを起動させる。これにより、本実施形態の携帯電話端末はCDMAモードで起動することになる。
一方、ステップS33の処理に進むと、モデムプロセッサ10は、ユーザ設定値がGSMモードを示す値に設定されているか否か判断する。上記ステップS33の判断処理において、モデムプロセッサ10は、GSMモードが設定されていると判断した場合にはステップS34へ処理を進め、一方、UMTSモードが設定されていると判断した場合にはステップS37へ処理を進める。
ステップS34の処理に進んだ場合、モデムプロセッサ10は、NANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開して起動し、当該ソフトウェア変換エンジンによる処理の実行へ切り替えてステップS35へ処理を進める。
ステップS35の処理に進むと、上記モデムプロセッサ10は、SDRAMメモリ14のソフトウェア変換用ワーク領域を用い、NANDメモリ13上のCDMAプログラムとCDMA→GSM差分データからGSMプログラムを作成する。また、モデムプロセッサ10は、上記ソフトウェア変換用ワーク領域上で作成したGSMプログラムを、プログラム領域へ逐次転送して展開する。
そして、SDRAMメモリ14のプログラム領域へGSMプログラムを全て展開し終わると、モデムプロセッサ10は、ステップS36の処理として、SDRAMメモリ14のRAMワーク領域上のソフトウェア変換エンジンとソフトウェア変換用ワーク領域上のデータを消去する。
その後、モデムプロセッサ10は、上記SDRAMメモリ14のプログラム領域へ展開されたGSMプログラムを起動させる。これにより、本実施形態の携帯電話端末はGSMモードで起動することになる。なお、ステップS35におけるデータ消去処理は、GSMプログラムの起動後に行われてもよい。
また、ステップS33からステップS37の処理に進んだ場合もステップS34の場合と同様に、モデムプロセッサ10は、NANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開して起動する。そして、モデムプロセッサ10は、当該ソフトウェア変換エンジンによる処理の実行へ切り替えてステップS38へ処理を進める。
ステップS38の処理に進むと、上記モデムプロセッサ10は、SDRAMメモリ14のソフトウェア変換用ワーク領域を用い、NANDメモリ13上のCDMAプログラムとCDMA→UMTS差分データからUMTSプログラムを作成する。また、モデムプロセッサ10は、上記ソフトウェア変換用ワーク領域上で作成したUMTSプログラムを、プログラム領域へ逐次転送して展開する。
そして、SDRAMメモリ14のプログラム領域へUMTSプログラムを全て展開し終わると、モデムプロセッサ10は、ステップS39の処理として、SDRAMメモリ14のRAMワーク領域上のソフトウェア変換エンジンとソフトウェア変換用ワーク領域上のデータを消去する。
その後、モデムプロセッサ10は、上記SDRAMメモリ14のプログラム領域へ展開されたUMTSプログラムを起動させる。これにより、本実施形態の携帯電話端末はUMTSモードで起動することになる。なお、ステップS39におけるデータ消去処理は、UMTSプログラムの起動後に行われてもよい。
[ソフトウェア及び差分データのアップデート]
上述したように例えばCDMAモード,GSMモードやUMTSモードを適宜切り替えて起動可能となされた本実施形態の携帯電話端末において、ソフトウェアのアップデートが必要になった場合には、以下のような手順によりアップデートが実施される。なお、本実施形態の携帯電話端末において、ソフトウェアのアップデートは、いわゆるエアーダウンロードによるソフトウェアの更新機能(FOTA:firmware over the air updating)を用いて行われるとする。
先ず、NANDメモリ13にCDMAプログラム等が格納され、CDMAモードとGSMモードを適宜切り替えて起動可能なデュアルブート対応の携帯電話端末を例に挙げて説明する。以下の説明では、CDMAプログラムは出荷時のバージョンが「V01.00.00」となっており、それがバージョン「V01.00.01」へ変更され、その後、最新版のバージョン「V01.00.02」がリリースされたと仮定する。
ここで、本実施形態では、CDMAプログラムとGSMプログラムの両プログラムのバージョンを同一として定義する。また本実施形態では、CDMA→GSM差分データについては、CDMAプログラムのバージョンに合わせたものを用意し、CDMAプログラムのアップデートと同時にCDMA→GSM差分データのアップデートも行われる。
本実施形態において、図13に示すように、例えば現時点のCDMAプログラムのバージョンが「V01.00.00」であり、それが「V01.00.01」にアップデートされる場合、CDMAプログラムについては「V01.00.01」のソフトウェア更新用データがダウンロードされる。一方、CDMA→GSM差分データについては、上記アップデートされるCDMAプログラムのバージョン「V01.00.01」に対応したバージョン「sV01.00.01」の差分更新用データがダウンロードされる。
また、図13に示すように、例えば現時点のCDMAプログラムのバージョンが「V01.00.01」であり、それが「V01.00.02」にアップデートされる場合、CDMAプログラムについては「V01.00.02」のソフトウェア更新用データがダウンロードされる。一方、CDMA→GSM差分データについては、当該アップデートされるCDMAプログラムのバージョン「V01.00.02」に対応したバージョン「sV01.00.02」の差分更新用データがダウンロードされる。
また、図13に示すように、現時点のCDMAプログラムのバージョンが「V01.00.00」であり、それが「V01.00.02」にアップデートされる場合、CDMAプログラムについては「V01.00.02」のソフトウェア更新用データがダウンロードされる。一方、CDMA→GSM差分データについては、当該アップデートされるCDMAプログラムのバージョン「V01.00.02」に対応したバージョン「sV01.00.02」の差分更新用データがダウンロードされる。
このように、本実施形態では、CDMAプログラムについてはバージョンアップに応じたアップデートがなされ、CDMA→GSM差分データについてはCDMAプログラムのバージョンに対応した差分更新用データを用いたアップデートが行われる。
なお、NANDメモリ13にGSMプログラム等が格納されている場合のバージョンアップについては、上述の説明においてCDMAをGSMに代えることで流用可能であるため、それらの例示及びその説明については省略することとする。
[ソフトウェア及び差分データアップデート時の動作]
図14には、上述したようにNANDメモリ13にCDMAプログラム等が格納されている場合に、そのCDMAプログラムとCDMA→GSM差分データのアップデートが行われる際の処理手順を示す。なお、図14では、一例として、CDMAプログラムのバージョン「V01.00.00」が「V01.00.02」にアップデートされる場合を挙げている。
図14において、CDMAプログラムとCDMA→GSM差分データのアップデートが行われる場合、本実施形態の携帯電話端末では、モデムプロセッサ10によるアップデート制御プログラムの実行により、FOTA機能を用いたダウンロードが実施される。この場合のダウンロードデータは、CDMAプログラムのバージョン「V01.00.00」を「V01.00.02」にアップデートするためソフトウェア更新用データと、CDMA→GSM差分データをバージョン「sV01.00.02」にアップデートするための差分更新用データとからなる。そして、アップデート制御プログラム実行中のモデムプロセッサ10は、上記ダウンロードデータを、NANDメモリ13上に用意された更新用データ格納領域に保存(P11)させる。
次に、当該アップデート制御プログラム実行時のモデムプロセッサ10は、NANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開(P12)すると共に、上記ダウンロードされたソフトウェア更新用データ及び差分更新用データをRAMワーク領域へ転送(P12)する。
そして、モデムプロセッサ10は、上記展開されたソフトウェア変換エンジンにより、NANDメモリ13上の旧バージョン「V01.00.00」のCDMAプログラムを、上記ソフトウェア更新用データを使用して新バージョン「V01.00.02」のCDMAプログラムへ書き換える処理つまり更新処理(P13)を行う。すなわち、本実施形態において、ソフトウェア変換エンジンは、当該アップデート時の上記更新処理として、旧バージョンのCDMAプログラムを新バージョンのCDMAプログラムへ変換する処理を行う。言い換えると、上記CDMAプログラムのソフトウェア更新用データは、旧バージョンのCDMAプログラム内において、新バージョンのCDMAプログラムとは異なるプログラム構成要素を特定すると同時に、当該旧バージョンのCDMAプログラム内で特定されたプログラム構成要素を、新バージョンのCDMAプログラム用のプログラム構成要素へ変換(置換)するためのソフトウェア変換用データとなされている。したがって、ソフトウェア変換エンジンは、前述したプログラム変換処理と同様の処理を実行することで、当該アップデート時の更新処理を実現している。
また、モデムプロセッサ10は、上記CDMAプログラムの更新処理の後(若しくはその更新処理と並行して)、CDMA→GSM差分データのアップデートも行う。すなわち、モデムプロセッサ10は、NANDメモリ13上のCDMA→GSM差分データを、上記差分更新用データを使用してバージョン「sV01.00.02」のCDMA→GSM差分データへ書き換える処理つまり更新処理(P13)を行う。なお、この場合の差分更新用データは、新バージョンのCDMA→GSM差分データとなされ、NANDメモリ13上の旧バージョンのCDMA→GSM差分データを上書きするデータとなされる。
これにより、NANDメモリ13上のCDMAプログラムは旧バージョン「V01.00.00」から新バージョン「V01.00.02」に更新(P14)されると共に、CDMA→GSM差分データも新バージョン「sV01.00.02」に更新(P14)される。
なお、図14では、CDMAプログラムのバージョン「V01.00.00」が「V01.00.02」にアップデートされる例を挙げたが、他のバージョンへの更新が行われる場合も上述同様の処理が行われる。
また、上述の説明では、新バージョンの差分更新用データにより旧バージョンのCDMA→GSM差分データを上書きする例を述べたが、当該差分更新用データについてもソフトウェア更新用データと同様に、旧バージョンと新バージョンとの間の差分からなるデータとなされていてもよい。すなわち、差分更新用データは、旧バージョンのCDMA→GSM差分データ内において、新バージョンのCDMA→GSM差分データとは異なるデータ構成要素を特定すると同時に、当該旧バージョンのCDMA→GSM差分データ内で特定されたデータ構成要素を、新バージョンのCDMA→GSM差分データのデータ構成要素へ変換(置換)するための差分変換用データであってもよい。
また、NANDメモリ13にGSMプログラム等が格納されている場合のアップデートについては、上述の説明においてCDMAをGSMに代えることで流用可能であるため、それらの例示及びその説明については省略することとする。
[本実施形態におけるソフトウェアバージョン管理]
上述したように、本実施形態においては、CDMAプログラムのアップデートが行われると、当該アップデートされたプログラムのバージョンに合わせて、CDMA→GSM差分データのバージョンアップも行われる。
したがって、本実施形態によれば、上記CDMAプログラムのアップデートが完了した後に、例えばGSMモードで起動がなされた場合には、バージョンアップ後のCDMAプログラム及びCDMA→GSM差分データにより自動的にバージョンアップがなされたGSMプログラムによる起動が可能となる。
また、本実施形態の場合は、CDMAプログラムとCDMA→GSM差分データのバージョンアップが行われると、それと同時にGSMプログラムも自動的にバージョンアップされることになるため、それらCDMAプログラムとGSMプログラムの各バージョンの管理が非常に容易となる。
図15〜図17を参照して、本実施形態におけるCDMAプログラムとCDMA→GSM差分データのアップデートによるバージョン管理と、その比較例としてCDMAプログラムとGSMプログラムの両方をNANDメモリ等に格納した場合のバージョン管理の違いについて説明する。なお、図15には、本実施形態においてCDMAプログラムのバージョンアップ時に管理すべき内容を示し、図16には、本実施形態におけるCDMA→GSM差分データのバージョンアップ時に管理すべき内容を示している。また、図17には、図15及び図16に対する比較例として、CDMAプログラムとGSMプログラムの両方がNANDメモリ等に格納されているとした場合において、特にGSMプログラムのバージョンアップ時に管理すべき内容を示している。
本発明実施形態の場合、バージョンアップ時に管理すべき情報は、図15及び図16に示すように、CDMAプログラムのバージョンと、そのCDMAプログラムのバージョンに対応したCDMA→GSM差分データのバージョンのみとなる。
すなわち本実施形態の場合、CDMAプログラムについては、図15に示すように、更新前バージョンが「V01.00.00」であった時には、更新可能なバージョンとして「V01.00.01」と「V01.00.02」を管理することになる。また、更新前バージョンが「V01.00.01」であった時には、更新可能なバージョンとして「V01.00.02」を管理することになる。
また本実施形態において、CDMA→GSM差分データについては、図16に示すように、CDMAプログラムのバージョンが「V01.00.00」である時には、それに対応したバージョン「sV01.00.00」のみを管理すれば良い。また、CDMAプログラムのバージョンが「V01.00.01」である時には、CDMA→GSM差分データについては、当該CDMAプログラムのバージョンに対応した「sV01.00.01」のみを管理すれば良い。同様に、CDMAプログラムのバージョンが「V01.00.02」である時には、CDMA→GSM差分データについては、当該CDMAプログラムのバージョンに対応した「sV01.00.02」のみを管理すれば良い。つまり、本実施形態によれば、CDMAプログラムのバージョンアップがなされた時には、CDMA→GSM差分データのバージョンと上記CDMAプログラムのバージョンを揃えるように管理することのみ行えばよく、GSMプログラムのバージョンについては一切管理しなくてよいため、バージョン管理が非常に容易となる。
一方で、CDMAプログラムとGSMプログラムの両方がNANDメモリ等に格納されているような場合には、図15及び図17に示すように、それら両方のプログラムについて、更新可能なバージョンの管理を行わなければならない。すなわち、図15及び図17に示すように、CDMAプログラムとGSMプログラムの両方について、それぞれ更新前バージョンが「V01.00.00」であった時には、更新可能なバージョンとして「V01.00.01」と「V01.00.02」をそれぞれについて管理しなければならない。同様に、CDMAプログラムとGSMプログラムの両方について、それぞれ更新前バージョンが「V01.00.01」であった時には、更新可能なバージョンとして「V01.00.02」をそれぞれについて管理しなければならない。言い換えると、CDMA,GSMプログラムの両方がNANDメモリに格納されているとした場合、CDMAプログラムのバージョンが例えば「V01.00.02」であっても、GSMプログラムのバージョンが例えば「V00.00.00」のままであるようなことが起こり、それそれのプログラムについてバージョン管理が必要となり非常に管理が煩雑になる。
これに対して本実施形態の場合は、CDMA→GSM差分データのバージョンはCDMAプログラムのバージョンに連動するため、実質的にはCDMAプログラムのバージョンのみ管理すればよく、GSMプログラムについては管理が不要であるため、バージョン管理が非常に容易になる。
なお、本実施形態では、CDMAプログラムのアップデートと同時にCDMA→GSM差分データのアップデートも行う例を挙げたが、例えばCDMAプログラムの各バージョンにおいてそれぞれ同じCDMA→GSM差分データが使用される場合も本発明は適用可能である。すなわち例えば図18に示すように、CDMAプログラムについては順次バージョンアップされるが、それら各バージョンにおいてCDMA→GSM差分データは共通したデータが使用される場合も、各バージョンのCDMAプログラムと共通のCDMA→GSM差分データから、自動的にバージョンアップされたGSMプログラムの生成が可能となる。
[アップデート時の動作フローチャート]
図19には、NANDメモリ13にCDMAプログラム等が格納されたデュアルブート端末において、本実施形態に係るアップデート制御プログラムをモデムプロセッサ10が実行して前述したアップデートを行う際の処理の流れを示す。
携帯電話端末のモデムプロセッサ10は、例えばユーザからのアップデート指示入力によるか若しくは自動アップデート設定等によりソフトウェアのアップデート処理が開始され、且つ実際にアップデートが必要である場合には、図19に示すフローチャートの処理を開始する。
図19のフローチャートの処理が開始されると、モデムプロセッサ10は、先ずステップS51の処理として、例えばFOTA機能によるダウンロードにより、CDMAプログラムのソフトウェア更新用データのファイルを取得し、そのファイルをNANDメモリ13へ格納する。
また、モデムプロセッサ10は、ステップS52の処理として、ステップS51でダウンロードしたCDMAプログラムのバージョンに対応した、CDMA→GSM差分データの差分更新用データのファイルをFOTA機能でのダウンロードにより取得し、そのファイルをNANDメモリ13へ格納する。
上記CDMAプログラムのソフトウェア更新用データと差分更新用データの両ファイルのダウンロードが完了すると、モデムプロセッサ10は、ステップS53の処理として、ソフトウェア変換エンジンにより、上記ダウンロードしたCDMAプログラムのソフトウェア更新用データを用いて、CDMAプログラムを更新する。
また、モデムプロセッサ10は、ステップS54の処理として、上記ダウンロードしたCDMA→GSM差分データの差分更新用データを用いて、CDMA→GSM差分データを更新する。
[マルチブート端末のソフトウェア及び差分データのアップデート]
前述の説明ではデュアルブート端末におけるソフトウェアアップデートについて述べたが、本実施形態の携帯電話端末がマルチブート対応の端末である場合、アップデートは以下のようにして行われる。なお、以下の説明では、CDMAモード、GSMモード、UMTSモードの何れかで起動可能なマルチブート端末を例に挙げている。
ここで、マルチブート対応の携帯電話端末において、一例として図20に示すように、端末の内部メモリに、CDMAとGSMとUMTSの三つのプログラムが格納されているとした場合、それら三つのプログラムをそれぞれアップデートする必要がある。すなわち例えば、それら三つのプログラムは、例えば出荷時のバージョン「V01.00.00」から「V01.00.01」へ、さらに「V01.00.01」から「V01.00.02」等へと個々にアップデートしなければならなくなる。
これに対し、本実施形態のマルチブート対応の携帯電話端末の場合は、図21に示すようにしてアップデートが行われる。なお、以下の説明では、NANDメモリ13にCDMAプログラム等が格納され、また、端末出荷時のCDMAプログラムのバージョンは「V01.00.00」となっており、それがバージョン「V01.00.01」へ変更され、その後、最新版のバージョン「V01.00.02」がリリースされたと仮定する。
マルチブート対応の本実施形態の携帯電話端末は、前述のデュアルブート対応の場合と同様に、CDMAプログラム、GSMプログラム、UMTSプログラムの全プログラムのバージョンを同一として定義する。また本実施形態では、CDMA→GSM差分データとCDMA→UMTS差分データについては、CDMAプログラムのバージョンに合わせたものをそれぞれ用意し、CDMAプログラムのアップデートと同時に、それらCDMA→GSM差分データとCDMA→UMTS差分データのアップデートも行われる。
本実施形態において、図21に示すように、例えば現時点のCDMAプログラムのバージョンが「V01.00.00」であり、それが「V01.00.01」にアップデートされる場合、CDMAプログラムについては「V01.00.01」のソフトウェア更新用データがダウンロードされる。一方、CDMA→GSM差分データとCDMA→UMTS差分データについては、当該アップデートされるCDMAプログラムのバージョン「V01.00.01」に対応したバージョン「sV01.00.01」の差分更新用データがそれぞれダウンロードされる。
また、図21に示すように、例えば現時点のCDMAプログラムのバージョンが「V01.00.01」であり、それが「V01.00.02」にアップデートされる場合、CDMAプログラムについては「V01.00.02」のソフトウェア更新用データがダウンロードされる。一方、CDMA→GSM差分データとCDMA→UMTS差分データについては、当該CDMAプログラムのバージョン「V01.00.02」に対応したバージョン「sV01.00.02」の差分更新用データがそれぞれダウンロードされる。
同様に、図21に示すように、現時点のCDMAプログラムのバージョンが「V01.00.00」であり、それが「V01.00.02」にアップデートされる場合、CDMAプログラムについては「V01.00.02」のソフトウェア更新用データがダウンロードされる。一方、CDMA→GSM差分データとCDMA→UMTS差分データについては、当該CDMAプログラムのバージョン「V01.00.02」に対応したバージョン「sV01.00.02」の差分更新用データがそれぞれダウンロードされる。
このように、マルチブート対応の携帯電話端末においても前述のデュアルブート端末の場合と同様に、CDMAプログラムのアップデートが行われる時には、それと同時にCDMA→GSM差分データとCDMA→UMTS差分データについても差分更新用データを用いたアップデートが行われ、
なお、NANDメモリ13にGSMプログラム等或いはUMTSプログラム等が格納されている場合のバージョンアップについては、上述の説明においてCDMAをGSMに代えること、或いはCDMAをUMTSに代えることで流用可能であるため、それらの例示及びその説明については省略することとする。
[マルチブート端末におけるソフトウェア及び差分データアップデート時の動作]
図22には、マルチブート端末において、NANDメモリ13にCDMAプログラム等が格納され、そのCDMAプログラムとCDMA→GSM差分データ及びCDMA→UMTS差分データがアップデートされる際の処理手順を示す。なお、図22では、CDMAプログラムのバージョン「V01.00.00」が「V01.00.02」にアップデートされる例を挙げている。
図22において、モデムプロセッサ10によるアップデート制御プログラムの実行により、FOTA機能によるダウンロードが実施される。この例の場合のダウンロードデータは、CDMAプログラムのバージョン「V01.00.00」を「V01.00.02」にアップデートするためソフトウェア更新用データと、CDMA→GSM差分データ及びCDMA→UMTS差分データをそれぞれバージョン「sV01.00.02」にアップデートするための差分更新用データとからなる。そして、アップデート制御プログラム実行中のモデムプロセッサ10は、上記ダウンロードデータを、NANDメモリ13上に用意された更新用データ格納領域に保存(P11)させる。
次に、モデムプロセッサ10は、NANDメモリ13のソフトウェア変換エンジンをSDRAMメモリ14のRAMワーク領域へ展開(P12)すると共に、上記ダウンロードされたソフトウェア更新用データ及び差分更新用データをRAMワーク領域へ転送(P12)する。
そして、モデムプロセッサ10は、上記ソフトウェア変換エンジンにより、NANDメモリ13上の旧バージョン「V01.00.00」のCDMAプログラムを、前述同様にソフトウェア更新用データを使用して新バージョン「V01.00.02」のCDMAプログラムへ書き換える処理つまり更新処理(P13)を行う。
また、モデムプロセッサ10は、CDMA→GSM差分データとCDMA→UMTS差分データのアップデートも行う。すなわち、モデムプロセッサ10は、NANDメモリ13上の旧バージョンのCDMA→GSM差分データ及びCDMA→UMTS差分データを、上記差分更新用データを使用してそれぞれ新バージョン「sV01.00.02」のCDMA→GSM差分データ及びCDMA→UMTS差分データへ書き換える処理、つまり更新処理(P13)を行う。
これにより、NANDメモリ13上のCDMAプログラムは旧バージョン「V01.00.00」から新バージョン「V01.00.02」に更新(P14)されると共に、CDMA→GSM差分データ及びCDMA→UMTS差分データもそれぞれ新バージョン「sV01.00.02」に更新(P14)される。
なお、NANDメモリ13にGSMプログラム或いはUMTSプログラム等が格納されている場合のアップデートについては、上述の説明においてCDMAをGSMに、或いはCDMAをUMTSに代えることで流用可能であるため、それらの例示及びその説明については省略することとする。
[マルチブート端末におけソフトウェアバージョン管理]
上述したマルチブート対応の携帯電話端末では、CDMAプログラムとCDMA→GSM差分データ及びCDMA→UMTS差分データのバージョンアップが同時に行われ、また、そのバージョンアップによりGSMプログラムやUMTSプログラムも自動的にバージョンアップされることになるため、それら各バージョンの管理が非常に容易となる。
すなわち、本実施形態の場合、CDMAプログラムについては、前述の図15に示したように更新前後のバージョンの管理が行われ、また、CDMA→GSM差分データについては前述の図16に示したようにバージョン管理が行われる。
さらに、当該マルチブート対応の端末の場合、CDMA→UMTS差分データについても、CDMA→GSM差分データと同様であり、図23に示すように、CDMAプログラムのバージョンが「V01.00.00」である時には、それに対応したバージョン「sV01.00.00」であるかのみを管理すればよい。また、CDMAプログラムのバージョンが「V01.00.01」である時には、CDMA→UMTS差分データについては、当該CDMAプログラムのバージョンに対応した「sV01.00.01」のみを管理すればよい。同様に、CDMAプログラムのバージョンが「V01.00.02」である時には、CDMA→UMTS差分データについては、当該CDMAプログラムのバージョンに対応した「sV01.00.02」のみを管理すればよい。つまり、本実施形態によれば、CDMA→UMTS差分データのバージョンについては、前述したCDMA→GSM差分データと同様に、CDMAプログラムのバージョンと相対応したバージョンになっているかどうかのみを管理すれば良い。
このように、本実施形態のマルチブート対応の端末によれば、NANDメモリ13にCDMAプログラム等が格納されている場合には、GSMプログラムの管理が不要であり、且つUMTSプログラムの管理も不要であるため、バージョン管理が非常に容易になる。すなわち例えば、CDMAプログラムの旧バージョンが「V01.00.00」であり、それを新バージョン「V01.00.02」へアップデートすることを考えた場合、本実施形態ならば、CDMAプログラムのソフトウェア更新用データとCDMA→GSM差分データ及びCDMA→UMTS差分データの両差分更新用データの合計三つ情報のみを管理すれば良い。これに対して、例えば前述の図20のように、CDMAプログラムとGSMプログラムとUMTSプログラムの三つをそれぞれ管理する場合には、合計6個のソフトウェア更新用データの管理が必要になる。
なお、この例では、三つのプログラムによるマルチブートの例を挙げたが、さらにプログラム数が増加した場合でも、本実施形態によればバージョン管理が容易であり、プログラム数が増える程、本発明実施形態のメリットは高まる。
[マルチブート端末におけるアップデート時の動作フローチャート]
図24には、NANDメモリ13にCDMAプログラム等が格納されたマルチブート端末において、本発明のアップデート制御プログラムをモデムプロセッサ10が実行して前述したアップデートを行う際の処理の流れを示す。
携帯電話端末のモデムプロセッサ10は、例えばユーザからのアップデート開始指示入力によるか若しくは自動アップデート設定等によりソフトウェアのアップデート処理が開始され、且つ実際にアップデートが必要である場合には、図24に示すフローチャートの処理を開始する。
図24のフローチャートの処理が開始されると、モデムプロセッサ10は、先ずステップS61の処理として、FOTA機能によるダウンロードを開始し、CDMAプログラムのソフトウェア更新用データのファイルを取得する。
また、モデムプロセッサ10は、ステップS62の処理として、ステップS61でダウンロードしたCDMAプログラムのバージョンに対応した、CDMA→GSM差分データの差分更新用データのファイルをダウンロード(取得)する。
同様に、モデムプロセッサ10は、ステップS63の処理として、ステップS61でダウンロードしたCDMAプログラムのバージョンに対応した、CDMA→UMTS差分データの差分更新用データのファイルをダウンロード(取得)する。
上記CDMAプログラムのソフトウェア更新用データと差分更新用データの全ファイルのダウンロードが完了すると、
次に、モデムプロセッサ10は、ステップS64の処理として、ソフトウェア変換エンジンにより、上記ダウンロードしたCDMAプログラムのソフトウェア更新用データを用いて、CDMAプログラムを更新する。
また、モデムプロセッサ10は、ステップS65の処理として、上記ダウンロードしたCDMA→GSM差分データの差分更新用データを用いて、CDMA→GSM差分データを更新する。
同様に、モデムプロセッサ10は、ステップS66の処理として、上記ダウンロードしたCDMA→GSM差分データの差分更新用データを用いて、CDMA→UMTS差分データを更新する。
〔まとめ〕
以上説明したように、本発明実施形態においては、ブート時に選択的に起動される一つのプログラムと、そのプログラムを別のプログラムへ変換するためのソフトウェア変換用データ(差分データ)とを格納しておくようにしている。これにより、本発明実施形態によれば、NANDメモリ13にユーザデータ格納領域等のためのメモリ容量を多く確保でき、メモリ容量の有効利用が可能となっている。
また、本発明実施形態においては、NANDメモリ13に格納されているプログラムの更新と同時に、そのプログラムの更新バージョンに合わせてソフトウェア変換用データ(差分データ)の更新も行うようにしている。これにより、本発明実施形態によれば、NANDメモリ13に格納されているプログラム以外の他のプログラムについては一切管理する必要がなくなり、アップデート時のバージョン管理運用が非常に容易となっている。
なお、上述した実施形態の説明は、本発明の一例である。このため、本発明は上述した実施形態に限定されることなく、本発明に係る技術的思想を逸脱しない範囲であれば、設計等に応じて種々の変更が可能であることはもちろんである。