(57)【要約】【課題】  携帯端末のように小型で安価な装置にあって、初期化機能の実行進捗に合わせた画面表示を行う。また、プログラムを格納するＮＡＮＤフラッシュメモリに余分な冗長性を持たせることなく限られた容量でエラーの信頼性を向上する。【解決手段】  ＮＡＮＤフラッシュメモリに、同じ内容の第１ブート層と第２ブート層を格納する。そして、エラーのない方をＲＡＭへコピーＣ２して（ステップＳ２１）、ＲＡＭ上でブート層プログラムを実行する（ステップＳ３０）。そして、簡単なロゴなどの文字表示（第１画面表示）を行う（ステップＳ３２）。次に、ＲＡＭ上でシステム層プログラムを実行する（ステップＳ４０）。そして、複数の画像の切り替えによる画面表示（第２画面表示）を行う（ステップＳ４４）。【選択図】  図３
2006146485.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ内に格納されたプログラムをシステムメモリにコピーしてＣＰＵがシステムメモリ上で実行する携帯端末にあって、
前記不揮発性メモリは、
ブートプログラムと、
システムプログラムと、
アプリケーションプログラムとを備え、
前記ＣＰＵは、
前記ブートプログラムを前記システムメモリにコピーして当該システムメモリ上で当該ブートプログラムを実行することにより第１画面を表示し、
前記システムプログラムを前記システムメモリにコピーして当該システムメモリ上で当該システムプログラムを実行することにより第２画面を表示し、
前記アプリケーションプログラムを前記システムメモリにコピーして当該システムメモリ上で当該アプリケーションプログラムを実行することにより第３画面を表示することを特徴とする携帯端末。
【請求項２】
不揮発性メモリ内に格納されたプログラムをシステムメモリにコピーしてＣＰＵがシステムメモリ上で実行する携帯端末にあって、
前記不揮発性メモリは、
ブートプログラムと、
システムプログラムと、
複数のアプリケーションプログラムとを備え、
前記ＣＰＵは、
前記ブートプログラムを前記システムメモリにコピーして当該システムメモリ上で当該ブートプログラムを実行することにより第１画面を表示し、
前記システムプログラムを前記システムメモリにコピーして当該システムメモリ上で当該システムプログラムを実行することにより第２画面を表示し、
前記複数のアプリケーションプログラムの中の個々のアプリケーションプログラムを順次前記システムメモリにコピーする毎に個々のアプリケーションプログラムに対応した第４画面表示を行うことを特徴とする携帯端末。
【請求項３】
不揮発性メモリ内に格納されたプログラムをシステムメモリにコピーしてＣＰＵがシステムメモリ上で実行する携帯端末にあって、
前記不揮発性メモリは、
第１ブートプログラムと、
前記第１ブートプログラムと同じ内容を有する第２ブートプログラムとを備え、
前記ＣＰＵは、
前記不揮発性メモリ内の前記第１ブートプログラムまたは第２ブートプログラムのエラーのない方を前記システムメモリにコピーし、
前記システムメモリ上で前記第１ブートプログラムまたは第２ブートプログラムを実行することを特徴とする携帯端末。
【請求項４】
不揮発性メモリ内に格納されたプログラムをシステムメモリにコピーしてＣＰＵがシステムメモリ上で実行する携帯端末にあって、
前記不揮発性メモリは、
ブートプログラムと、
システムプログラムと、
アプリケーションプログラムとを備え、
前記ＣＰＵは、
前記ブートプログラムを前記システムメモリにコピーして当該システムメモリ上で当該ブートプログラムを実行し、
前記システムプログラムを前記システムメモリにコピーして当該システムメモリ上で当該システムプログラムを実行し、
前記システムプログラム実行後に製造テストプログラムを実行することを特徴とする携帯端末。
【請求項５】
不揮発性メモリ内に格納されたプログラムをシステムメモリにコピーしてＣＰＵがシステムメモリ上で実行する携帯端末にあって、
前記ＣＰＵは、
前記メモリシステム上でプログラムを実行中にエラーが検出された時、前記不揮発性メモリ内に格納されたプログラムをシステムメモリに再度コピーして、システムメモリ上でプログラムを再度実行することを特徴とする携帯端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯端末におけるメモリシステムの起動時の処理であるブートに関し、特にブート時の画面表示と、信頼性の向上と、製造テストの効率化に関する。
【背景技術】
【０００２】
（背景技術１）
ＮＡＮＤフラッシュメモリを利用したブートシステム及びその方法がある（例えば、特許文献１参照。）。  
この特許文献１の［従来の技術］欄第４頁および図１において、ＢＩＯＳは、表示機能を含む初期化機能を実行するプログラムであることが記載されている。ＢＩＯＳは、ＮＡＮＤフラッシュメモリに貯蔵されており、システムメモリにロード後に実行される。また、特許文献１の［発明の実施の形態］欄第６〜７頁、第１１頁および図２、図３において、ＮＡＮＤフラッシュメモリには、ブートコード、ＯＳ及び他のプログラムが貯蔵されていることが記載されている。ＮＡＮＤフラッシュメモリの外に設けられたブートストラッパは、ＮＡＮＤフラッシュメモリのブートコードを内部ＲＡＭにロードする。そして、内部ＲＡＭ上で、ブートコード内の初期化機能が実行され、更にブートコード内のコピーループ命令により、ＮＡＮＤフラッシュメモリのＯＳがシステムメモリにロードされる。そして、システムメモリ上でＯＳが実行される。そして、ＯＳと関連した全てのプログラム、ファイルがシステムメモリにロードされた後に、システムはＯＳによって駆動される。
【０００３】
（背景技術２）
フラッシュメモリを用いてブーティングされるシステム装置及びそのブーティング方法がある（例えば、特許文献２参照。）。  
この特許文献２の第５〜７頁および図１、図２、図５において、フラッシュメモリには、ハンドラとローダ、ブートコード、ＯＳコード、応用コードが貯蔵されていることが記載されている。そして、電源オン後の初期化時に、自動でハンドラとローダがレジスタにロードされ、レジスタ上でハンドラが実行されてローダがシステムメモリにロードされる。そして、システムメモリ上でローダが実行されてブートコードとＯＳコードがシステムメモリにロードされる。
【特許文献１】特開２００３−２７１３９１号公報（第４、６〜７頁、図１〜図３、）
【特許文献２】特開２００４−１１８８２６号公報（第５〜７頁、図１、図２、図５）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の特許文献１〜２に開示された装置および方法では、初期化機能を実行するＢＩＯＳが表示機能を含むことは記載されているが、表示機能の詳細に関する記載がない。また、ＮＡＮＤフラッシュメモリのエラーに対する対応が記載されていない。また、装置の製造テストに関する記載がない。また、ＮＡＮＤフラッシュメモリからシステムメモリにロード後に、システムメモリ上で発生するエラーに関する記載がない。
【０００５】
本発明は、上記の問題点を解決するためになされたもので、携帯端末のように小型で安価な装置にあって、初期化機能の実行進捗に合わせた画面表示を行うことを目的とする。また、安価なＮＡＮＤフラッシュメモリではあるが、冗長性を持たせることなく、限られた容量のＮＡＮＤフラッシュメモリでエラーの信頼性を向上することを目的とする。また、ＮＡＮＤフラッシュメモリに格納されたブートローダ、ブート層、システム層、アプリケーション層のすべてのシステムメモリ等へのロードが終了した時点ではなく、ローダ、ブートコード（ブート層）、ＯＳコードのロードが終了した時点において、携帯端末の製造テストを早く実施することを目的とする。また、ＮＡＮＤフラッシュメモリからシステムメモリにロード後に、システムメモリ上でエラーが発生した時の信頼性を向上することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の携帯端末は、不揮発性メモリ内に格納されたプログラムをシステムメモリにコピーしてＣＰＵがシステムメモリ上で実行する携帯端末にあって、前記不揮発性メモリは、ブートプログラムと、システムプログラムと、アプリケーションプログラムとを備え、前記ＣＰＵは、前記ブートプログラムを前記システムメモリにコピーして当該システムメモリ上で当該ブートプログラムを実行することにより第１画面を表示し、前記システムプログラムを前記システムメモリにコピーして当該システムメモリ上で当該システムプログラムを実行することにより第２画面を表示し、前記アプリケーションプログラムを前記システムメモリにコピーして当該システムメモリ上で当該アプリケーションプログラムを実行することにより第３画面を表示することを特徴とする。
【０００７】
また、本発明の携帯端末は、不揮発性メモリ内に格納されたプログラムをシステムメモリにコピーしてＣＰＵがシステムメモリ上で実行する携帯端末にあって、前記不揮発性メモリは、第１ブートプログラムと、前記第１ブートプログラムと同じ内容を有する第２ブートプログラムとを備え、前記ＣＰＵは、前記不揮発性メモリ内の前記第１ブートプログラムまたは第２ブートプログラムのエラーのない方を前記システムメモリにコピーし、前記システムメモリ上で前記第１ブートプログラムまたは第２ブートプログラムを実行することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、携帯端末のように小型で安価な装置にあって、初期化機能の実行進捗に合わせた画面表示を行うことが可能となる。また、安価なＮＡＮＤフラッシュメモリではあるが、冗長性を持たせることなく、限られたＮＡＮＤフラッシュメモリでエラーの信頼性を向上することが可能となる。また、ＮＡＮＤフラッシュメモリに格納されたローダ、ブートコード（ブート層）、ＯＳコード、応用コードのすべてのシステムメモリ等へのロードが終了した時点ではなく、ローダ、ブートコード（ブート層）、ＯＳコードのロードが終了した時点において、携帯端末の製造テストを早く実施することが可能となる。また、ＮＡＮＤフラッシュメモリからシステムメモリにロード後に、システムメモリ上でエラーが発生した時の信頼性を向上することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例を、図面を参照して説明する。  
図１は、本発明の各実施例に係る携帯端末の主要部の構成を示すブロック図である。携帯端末の主要部は、ＣＰＵ１、転送制御部２、ＮＡＮＤ型フラッシュメモリ３、変換部４、ＲＡＭ５、画像ファイル６、ＬＣＤコントローラ７、ＬＣＤ８、ＵＳＢＩ／Ｆ９、バス１０、コネクタ１１などにより構成されている。  
ＣＰＵ１は全体の制御を行う。転送制御部２は、メモリやＩ／Ｏ間のデータ転送を行う。ＮＡＮＤ型フラッシュメモリ３は、安価ではあるが、バイト単位やワード単位でのランダムアクセスできないシーケンシャルアクセスの不揮発性一括消去メモリであり、各種のプログラムなどが予め格納されている。ランダムアクセスできないため、ＣＰＵ１が直接、ＮＡＮＤ型フラッシュメモリ３上で各種のプログラムを実行することはできない。変換部４は、ＮＡＮＤ型フラッシュメモリ３のシーケンシャルアクセスのデータ形態をランダムアクセスのデータ形態に双方向に変換する機能を持つ。ＲＡＭ５は、高速のシステムメモリであり、プログラムの実行エリアなどに使用される。ＮＡＮＤ型フラッシュメモリ３に格納された各種のプログラムは一旦ＲＡＭ５にコピー（ロード）された後、ＣＰＵ１によりＲＡＭ５上で実行される。
【００１０】
画像ファイル６は、携帯端末の電源オン時の起動時画面データやその他の画像データが格納されている。ＬＣＤコントローラ７は、液晶表示部であるＬＣＤ８を制御する。ＵＳＢＩ／Ｆ９は、携帯端末の外部装置（図示せず）との間のインターフェースであり、コネクタ１１により外部装置と接続される。
【００１１】
なお、プログラムを予め格納するメモリは、ＮＡＮＤ型フラッシュメモリ３の代わりに、ＨＤＤ（ハードディスク装置）などのランダムアクセスできないシーケンシャルアクセスのメモリであってもよい。  
また、プログラムを予め格納するメモリは、安価な低速のＲＯＭでランダムアクセス可能なメモリであってもよい。この場合、変換部４は不要となる。但し、低速であるため、同様に低速のＲＯＭから高速のシステムメモリへプログラムを一旦ロードしてから、高速のシステムメモリ上でプログラムを実行するようにしてもよい。  
また、プログラムの一部をＮＡＮＤ型フラッシュメモリ３以外のメモリ上に予め格納するようにしてもよい。
【実施例１】
【００１２】
図２は、実施例１に係る携帯端末の電源オン時のブートの仕組みを説明する図である。ブートは、電源オン時に、プログラム格納エリアからシステムメモリ等にプログラムをロード（コピー）して、システムメモリ上でＣＰＵが初期化処理を行う仕組みである。  
ＮＡＮＤ型フラッシュメモリ３には、ブートローダ３１、第１ブート層３２、第２ブート層３３、システム層３４、アプリケーション層３５のプログラムが予め格納されている。ブートローダ３１は、第１ブート層３２または第２ブート層３３をＲＡＭ５のブート層５１にロード（コピーＣ２）するためのプログラムであり、ブート層をロードする意味でブートローダと称する。
【００１３】
第１ブート層３２の内容と第２ブート層３３の内容は同じであり、バックアップを目的として２個設ける。このプログラム内容は、携帯端末の電源オン後の初期に必要とされる起動時画面表示などの初期化機能を有する。また、システム層３４をＲＡＭ５のシステム層５２にロード（コピーＣ３）するためのプログラムも有する。このブート層のプログラム容量は比較的小さい容量である。携帯端末のような小型で安価な装置では、ＮＡＮＤ型フラッシュメモリ３として十分な容量を冗長度を持たせて備えることはできない。そのため、このブート層についてのみは、バックアップを目的として２個設けることにより、それほど容量を増やすことなく携帯端末の信頼性を上げることができる。
【００１４】
システム層３４は、ＯＳ機能を有する。また、アプリケーション層３５をＲＡＭ５のアプリケーション層５３にロード（コピーＣ４）するためのプログラムも有する。  
アプリケーション層３５は、アプリケーションプログラムを有する。  
メモリ１ａは、ＣＰＵ１がプログラムを高速で実行できるメモリやレジスタであり、ＣＰＵ１の内部に設けられたり、ＲＡＭ５内や、またその他のメモリであってもよい。
【００１５】
図３および図４は、実施例１に係る携帯端末のブート時のゼネラルフローチャートである。図２も用いて、多段ブートの仕組みについて動作を説明する。  
携帯端末の電源がオンになると(ステップＳ１０)、転送制御部２のハード処理により、ＮＡＮＤ型フラッシュメモリ３のブートローダ３１は、メモリ１ａにハードコピーＣ１される（ステップＳ１１）。電源オン直後は、ＣＰＵ１が実行できるランダムアクセスのメモリ１ａやＲＡＭ５上にプログラムがないために、ＣＰＵ１が介在できずに純粋にハード処理によりハードコピーＣ１が実行される。
【００１６】
このハードコピーＣ１（ステップＳ１１）が完了すると、ＣＰＵ１がメモリ１ａ上で動作できる状態になり、ＣＰＵ１は、メモリ１ａ上のブートローダの実行処理に入る（ステップＳ２０）。ここでは、ＣＰＵ１は、ブートローダの内容に従い、ＮＡＮＤフラッシュメモリ３の第１ブート層３２または第２ブート層３３を変換部４経由で読み出してエラーの有無を確認する。そして第１ブート層３２または第２ブート層３３のいずれかエラーのない方をＲＡＭ５のブート層５１にコピー（Ｃ２）する指示を転送制御部２に対して行う（ステップＳ２１）。  
最初のブートであるブート層の実行が失敗すると、後に続くシステム層やアプリケーション層のブートが行えなくなってしまうが、ブート層を２個備えることにより最初のブート層の信頼性が上がり、後段のブートに継続することができる。また、最初のブート層の実行のみに終わったとしても、少なくとも起動時の画像表示を行うことができるため、故障表示等を行うことができる。
【００１７】
ＮＡＮＤフラッシュメモリ３の第１ブート層３２、第２ブート層３３共に修正できないエラーが有る場合は先へ進むことができず、故障状態（ステップＳ６０）である。この状態ではＣＰＵ１は何も行うことはできない。  
転送制御部２は、ＤＭＡ（ダイレクト・メモリ・アクセス）などの高速転送（コピーＣ２）を行う。ＣＰＵ１は、コピーＣ２の進捗をチェックし（ステップＳ２２）、終了を待つ。このブート層コピーＣ２の所要時間をＢ秒間とすると、これは、第１ブート層３２、第２ブート層３３のプログラム量が少ないために短時間で終了する。
【００１８】
このコピー（Ｃ２）が終了すると（ステップＳ２２の「ＹＥＳ」）、次に、ＣＰＵ１は、コピー（Ｃ２）されたＲＡＭ５上のブート層５１の実行処理に入る（ステップＳ３０）。ここでは、ＣＰＵ１は、ブート層５１の内容に従い、コピーＣ３、すなわち、ＮＡＮＤフラッシュメモリ３のシステム層３４をＲＡＭ５のシステム層５２にコピーすることを転送制御部２に指示し、コピーＣ３がスタートする（ステップＳ３１）。更に、ＣＰＵ１は、起動画面表示処理を行う（ステップＳ３２。第１画面）。これは、画像ファイル６中の起動時画面をＬＣＤコントローラ７に送出し、ＬＣＤコントローラ７が起動時画面をＬＣＤ８に表示させる。この画面は、ロゴなどの文字の簡単な画面（第１画面）であり、電源オン直後Ｂ秒後に、携帯端末のユーザは、起動時画面をすぐに見ることができて、安心感を持つ。  
このロゴなどの文字の簡単な画面（第１画面）表示を継続して行い、システム層コピーＣ３が終わるのを待つ（ステップＳ３３）。この所要時間をＳ秒間とすると、これは、システム層３４のプログラム量が多いために数秒間の時間を要し、ユーザは一般的に長く感じる。
【００１９】
このコピー（Ｃ３）が終了すると（ステップＳ３３の「ＹＥＳ」）、次に、ＣＰＵ１は、コピー（Ｃ３）されたＲＡＭ５上のシステム層５２の実行処理に入る（ステップＳ４０。図４）。
【００２０】
図４において、ＣＰＵ１は、システム層５２の内容に従い、ＯＳを実行する（ステップＳ４１）。この時点で、携帯端末のハード機能は動作可能な状態になる。
【００２１】
次に、携帯端末のメーカー工場部門における製造テストモードかユーザによる通常動作かをチェックする（ステップＳ４２）。これは、たとえば、携帯端末のコネクタ１１に外部装置が接続されていて、その外部装置から製造テストの指示入力があるかどうかをチェックすることなどによりわかる。製造テストの指示入力がなければ通常動作であり、更に、ＣＰＵ１は、コピーＣ４、すなわち、ＮＡＮＤフラッシュメモリ３のアプリケーション層３５をＲＡＭ５のアプリケーション層５３にコピーすることを転送制御部２に指示し、コピーＣ４がスタートする（ステップＳ４３）。更に、ＣＰＵ１は、複数の画像を切り替えることによる画面表示を行う（ステップＳ４４。第２画面）。この表示は複数画像を切り替えて表示され、ユーザに対して動作しているという安心感を与えるために表示する。
【００２２】
この複数の画像の切り替えによる画面表示（第２画面）を継続して行い、アプリケーション層コピーＣ４が終わるのを待つ（ステップＳ４５。Ａ秒間）。この時間は、アプリケーション層３５のプログラム量が多いために数秒間の時間を要し、ユーザは一般的に長く感じるが、その間、同一画面表示で単調になることなく、複数の画像の切り替えによる画面表示を見ることができる。  
このコピー（Ｃ４）終了（ステップＳ４４の「ＹＥＳ」）により、ＲＡＭ５へのプログラムコピーは完了し、ＲＡＭ５のプログラムデータが壊れることを防ぐためにＲＡＭプロテクトをかける（ステップＳ４６）。
【００２３】
次に、ＣＰＵ１は、コピー（Ｃ４）されたＲＡＭ５上のアプリケーション層５３の実行処理に入る（ステップＳ５０）。この実行により、正規画面表示が行われる（ステップＳ５１。第３画面）。アプリケーション層５３の他の実行処理の詳細説明は省略する。
【００２４】
ここで、ステップＳ４２において「製造テスト」の場合、ＣＰＵ１は、製造テスト処理に入る（ステップＳ７０）。そして、携帯端末の製造テストを実行する（ステップＳ７１）。この製造テスト処理（ステップＳ７０）は、アプリケーション層のコピーＣ４（ステップＳ４５）や製造テストで不要な複数の画像の切り替えによる画面表示（第２画面表示）を経由しない。従って、携帯端末の電源オンからシステム層コピーＣ３のＳ秒間（数秒間）が経過した時点で、製造テストを実行することができ、製造工程の時間短縮を行うことができる。
【００２５】
実施例１によれば、ユーザは、電源オン直後から、ロゴなどの文字の簡単な画面（第１画面）を見ることができ、更に、システム層のコピー中には複数の画像の切り替えによる画面表示を見ることができて、安心感を得ることができる。
【実施例２】
【００２６】
図５は、実施例２に係る携帯端末のブート時のゼネラルフローチャートである。ＮＡＮＤフラッシュメモリ３（図２）のアプリケーション層３５を更に複数のアプリケーション層に分けて、個々のアプリケーション層ごとにＲＡＭ５へのコピーとＲＡＭ５上での実行を行う実施例である。実施例１のブート時のゼネラルフローチャート（１／２）（図３）の部分は同じ動作であり、これに引き続いて実行されるゼネラルフローチャート（２／２）（図４）の部分が異なる。これを図５を用いて説明する。  
システム層３４のＲＡＭ５のへのコピーが終了すると、ＲＡＭ上のシステム層の実行に入る（ステップＳ４００）。ＣＰＵ１は、ＲＡＭ５上のシステム層５２の内容に従い、ＯＳを実行する（ステップＳ４０１）。この時点で、携帯端末のハード機能はすべて動作可能な状態になる。製造テスト（ステップＳ４０２、Ｓ７０）については、実施例１（図４）と同じであり説明を省略する。
【００２７】
ステップＳ４０２の「通常動作」の場合、ＣＰＵ１は、コピーＣ４１、すなわち、ＮＡＮＤフラッシュメモリ３のアプリケーション層３５の中の第１アプリケーション層をＲＡＭ５のアプリケーション層５３の該当エリアにコピーすることを転送制御部２に指示し、コピーＣ４１がスタートする（ステップＳ４０３）。更に、ＣＰＵ１は、複数の画像の切り替えによる画面表示を行う（ステップＳ４０４。第２画面）。  
この複数の画像の切り替えによる画面表示（第２画面）を継続して行い、第１アプリケーション層コピーＣ４１が終わるのを待つ（ステップＳ４０５。Ａ１秒間）。
【００２８】
アプリケーション層３５の中の第１アプリケーション層のＲＡＭ５のへのコピーが終了すると、ＲＡＭ上の第１アプリケーション層の実行に入る（ステップＳ５００）。ＣＰＵ１は、ＲＡＭ上の第１アプリケーション層の内容に従い、コピーＣ４２、すなわち、ＮＡＮＤフラッシュメモリ３のアプリケーション層３５の中の第２アプリケーション層をＲＡＭ５のアプリケーション層５３の該当エリアにコピーすることを転送制御部２に指示し、コピーＣ４２がスタートする（ステップＳ５０１）。更に、ＣＰＵ１は、第１アプリケーション画面表示を行う（ステップＳ５０２。第４画面の１）。  
この第１アプリケーション画面表示（第４画面の１）を継続して行い、第２アプリケーション層コピーＣ４２が終わるのを待つ（ステップＳ５０３。Ａ２秒間）。
【００２９】
アプリケーション層３５の中の第２アプリケーション層のＲＡＭ５のへのコピーが終了すると、ＲＡＭ上の第２アプリケーション層の実行に入る（ステップＳ６００）。ＣＰＵ１は、ＲＡＭ上の第２アプリケーション層の内容に従い、コピーＣ４３、すなわち、ＮＡＮＤフラッシュメモリ３のアプリケーション層３５の中の第３アプリケーション層をＲＡＭ５のアプリケーション層５３の該当エリアにコピーすることを転送制御部２に指示し、コピーＣ４３がスタートする（ステップＳ６０１）。更に、ＣＰＵ１は、第２アプリケーション画面表示を行う（ステップＳ６０２。第４画面の２）。  
この第２アプリケーション画面表示（第４画面の２）を継続して行い、第３アプリケーション層コピーＣ４３が終わるのを待つ（ステップＳ６０３。Ａ３秒間）。
【００３０】
以降、複数のアプリケーション層を同様に順次コピー、実行、表示を行い、全アプリケーション層のコピーが終了すると、ＲＡＭ５へのプログラムコピーは完了する。そして、ＲＡＭ５のプログラムデータが壊れることを防ぐためにＲＡＭプロテクトをかける（ステップＳ６０４）。  
そして、正規状態（ステップＳ７００）に入り、通常の正規画面表示が行われる（ステップＳ７０１）。
【００３１】
実施例２によれば、ユーザは、電源オン直後から、ロゴなどの文字の簡単な画面（第１画面）を見ることができ、更に、システム層のコピー中には複数の画像の切り替えによる画面表示（第２画面）を見ることができ、更に全アプリケーション層のコピー中には個々のアプリケーション層のコピーの進捗に合わせて、個々のアプリケーション画面表示（第４画面の１、２、・・）を見ることができて、安心感を得ることができる。
【００３２】
（各実施例共通）
図６は、各実施例に係る携帯端末のブート時の詳細フローチャートであり、図３のメモリ１ａ上のローダの実行（ステップＳ２０）の詳細である。ＮＡＮＤフラッシュメモリ３に２個のブート層（第１ブート層３２および第２ブート層３３）を設けて、信頼性を上げる動作の詳細について説明する。  
ＣＰＵ１は、メモリ１ａ上のローダの実行（ステップＳ２０）に入ると、ＮＡＮＤフラッシュメモリ３の第１ブート層３２を読み出して（ステップＳ２０１）、エラーの有無を確認する（ステップＳ２０２）。これは、サムチェックであり、エラーがまったくなければ（ステップＳ２０２で「ＮＯ」）、第１ブート層３２のコピーＣ２を指示する（ステップＳ２０４）。ステップＳ２０２で「１ビットエラー」の場合、修正可能であるため修正処理を行う（ステップＳ２０３）。そして、第１ブート層３２のコピーＣ２を指示する（ステップＳ２０４）。
【００３３】
ステップＳ２０２で「２ビット以上エラー」の場合、修正不可能であるため、次に、ＮＡＮＤフラッシュメモリ３の第２ブート層３３を読み出して（ステップＳ２０５）、エラーの有無を確認する（ステップＳ２０６）。エラーがまったくなければ（ステップＳ２０６で「ＮＯ」）、第２ブート層３３のコピーＣ２を指示する（ステップＳ２０８）。ステップＳ２０６で「１ビットエラー」の場合、修正可能であるため修正処理を行う（ステップＳ２０７）。そして、第２ブート層３３のコピーＣ２を指示する（ステップＳ２０８）。
【００３４】
ステップＳ２０６で「２ビット以上エラー」の場合、修正不可能であり、且つ、第１ブート層３２も修正不可能であったため、これ以上の処理を実行することは出来ず、故障状態（ステップＳ６０）となる。この状態では、ＣＰＵ１は何も処理できない。
【００３５】
なお、ＮＡＮＤフラッシュメモリ３の自然回復もありうるので、いきなり故障状態（ステップＳ６０）とするのではなくて、ステップＳ２０１からＳ２０８の処理を何回か繰り返してもよい。
【００３６】
このように、同じ内容のブート層を２個設けることにより、エラー発生頻度は、個々のエラー発生頻度の２乗となり、信頼性を上げることが出来る。このブート層のプログラム容量は比較的小さい容量である。携帯端末のような小型で安価な装置では、ＮＡＮＤ型フラッシュメモリ３として十分な容量を冗長度を持たせて備えることはできない。そのため、このブート層についてのみは、バックアップを目的として２個設けることにより、それほど容量を増やすことなく携帯端末の信頼性を上げることができる。
【００３７】
正常にコピーＣ２が実行できた場合は、コピーＣ２の終了を待つ（ステップＳ２０９）。コピーＣ２が終了すると（ステップＳ２０９の「ＹＥＳ」）、前のステップＳ２０３およびＳ２０７で１ビットエラーの修正があったかどうかをチェックする（ステップＳ２１０）。修正があった場合（ステップＳ２１０の「ＹＥＳ」）、ＮＡＮＤフラッシュメモリ３の第１ブート層３２と第２ブート層３３を、ＮＡＮＤフラッシュメモリ３の別の物理エリアに移動する（ステップＳ２１１）。これは、１ビットエラーで修正できたとはいえ、１ビットエラーが存在したわけであり、更に信頼性を上げるために物理エリアを移動するものである。
【００３８】
次回の電源オンの時には、この移動先の物理エリアがブートの対象となる。  
これで、ローダの実行が終了し、次のＲＡＭ上のブート層の実行（ステップＳ３０）に入る。
【００３９】
図７は、各実施例に係る携帯端末のＲＡＭ上で実行中のエラー処理に関する詳細フローチャートである。これは、ＲＡＭ上での実行中のすべてまたは一部に適用される。例えば、図３におけるＲＡＭ上のブート層の実行（ステップＳ３０）、ＲＡＭ上のシステム層の実行（ステップＳ４０）、ＲＡＭ上のアプリ層の実行（ステップＳ５０）、および図示しない以降のステップのＲＡＭ上での実行中などに適用される。  
ＣＰＵ１は、プログラムを実行しながら（ステップＳ８１）、エラーチェックを行う（ステップＳ８２）。エラーとしては、存在しない命令をインストラクションフェッチしたり、本来ありえないアドレスをアクセスした場合などがある。これらのエラーが検出されると（ステップＳ８２の「ＹＥＳ」）、ＣＰＵ１は、現在実行中のプログラムが、メモリ１ａ上のローダ実行中（Ｓ２０）であれば（ステップＳ８３、Ｓ８４で「ＹＥＳ」）、携帯端末自体にハードリセットをかける（ステップＳ８５）。それにより、ハード処理でステップＳ１０から起動がかかり、ステップＳ１０（図３）において、ＮＡＮＤフラッシュメモリからメモリ１ａへのブートローダの再コピーが行われる。そして、ステップＳ１０以降が実行される。
【００４０】
エラー検出されたのがＲＡＭ上のブート層実行中（Ｓ３０）であれば（ステップＳ８６、Ｓ８７で「ＹＥＳ」）、ステップＳ２０（図３）へジャンプする。それにより、ステップＳ２０（図３）において、ＮＡＮＤフラッシュメモリからＲＡＭへのブート層の再コピーが行われる。そして、ステップＳ２０以降が実行される。  
エラー検出されたのがＲＡＭ上のシステム層実行中（Ｓ４０）であれば（ステップＳ８８、Ｓ８９で「ＹＥＳ」）、ステップＳ３０（図３）へジャンプする。それにより、ステップＳ３０（図３）において、ＮＡＮＤフラッシュメモリからＲＡＭへのシステム層の再コピーが行われる。そして、ステップＳ３０以降が実行される。  
エラー検出されたのがＲＡＭ上のアプリ層実行中（Ｓ５０）であれば（ステップＳ９０、Ｓ９１で「ＹＥＳ」）、ステップＳ４０（図３）へジャンプする。それにより、ステップＳ４０（図３）において、ＮＡＮＤフラッシュメモリからＲＡＭへのアプリ層の再コピーが行われる。そして、ステップＳ４０以降が実行される。
【００４１】
エラー検出されたのがＲＡＭ上のその他を実行中であれば（ステップＳ９１で「ＮＯ」）、適宜、ステップＳ８５、Ｓ２０、Ｓ３０、Ｓ４０へジャンプする。それにより、ＮＡＮＤフラッシュメモリからメモリ１ａやＲＡＭへの再コピーが行われる。そして、以降が実行される。  
なお、エラー検出時にジャンプする先は、上記に限らず、適宜上流段階のいずれかのステップへ戻っても良い。  
このように、ＲＡＭ上などでエラーが発生した場合に、ＮＡＮＤフラッシュメモリに格納されているプログラムを再コピーすることにより信頼性を上げることができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の各実施例に係る携帯端末の主要部の構成を示すブロック図。
【図２】本発明の実施例１に係る携帯端末の電源オン時のブートの仕組みを説明する図。
【図３】本発明の実施例１に係る携帯端末のブート時のゼネラルフローチャート（１／２）。
【図４】本発明の実施例１に係る携帯端末のブート時のゼネラルフローチャート（２／２）。
【図５】本発明の実施例２に係る携帯端末のブート時のゼネラルフローチャート。
【図６】本発明の各実施例に係る携帯端末のブート時の詳細フローチャート（メモリ１ａ上のローダの実行）。
【図７】本発明の各実施例に係る携帯端末のＲＡＭ上で実行中のエラー処理に関する詳細フローチャート。
【符号の説明】
【００４３】
１  ＣＰＵ
２  転送制御部
３  ＮＡＮＤ型フラッシュメモリ
４  変換部
５  ＲＡＭ
６  画像ファイル
７  ＬＣＤコントローラ
８  ＬＣＤ
９  ＵＳＢＩ／Ｆ
１０  バス
１１  コネクタ
【図１】
2006146485.tif 000003
【図２】
2006146485.tif 000004
【図３】
2006146485.tif 000005
【図４】
2006146485.tif 000006
【図５】
2006146485.tif 000007
【図６】
2006146485.tif 000008
【図７】
2006146485.tif 000009