Palm Programmer's Laboratory

トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Palm OS Programmer's Companion Volume I/11-4

← 3 節に戻る ↑11 章トップへ 5 節に進む →


11-4 システムのブートとリセット

 
全てリセットは通常、ハンドヘルド背面の小さな穴を伸ばしたペーパークリップでつつくことで行ないます。“リセットスイッチ”として知られるこの穴は、( Palm III では)シリアルナンバーステッカーの右上にあります。追加のキー操作によって、リセットの挙動は以下のように変化します。
 

ソフトリセット

ソフトリセットは全てのダイナミックヒープをクリアします(ヒープ0とカード0)。ストレージヒープは手を付けられずに残ります。オペレーティングシステムは新しいスタック、新しい大域変数、再起動したドライバ、およびリセットされたコミュニケーションポートでスクラッチから再起動します。ハンドヘルドの全てのアプリケーションは sysAppLaunchCmdSystemReset 起動コードを受信します。
 

上ボタンリセット

上ボタンを押しながらペーパークリップでリセットスイッチを押すと、以下の2つの例外を除いてソフトリセットと同じロジックが実行されます。

  • sysAppLaunchCmdSystemReset 起動コードがアプリケーションに送信されません。これは、この起動コードの受信によって(稀にでなく)クラッシュするアプリケーションがハンドヘルド内にあるためにシステムのブートを妨げている場合に有用です。
  • OS はスタートアップ中にシステムパッチをロードしません。これは、システムパッチのデータベースを削除、あるいは置き換える必要がある場合に有用です。システムパッチはロードされるとオープン状態になるため、システムから削除したり置き換えたりできなくなります。

 

ハードリセット

ハードリセットは、電源ボタンを押しながらペーパークリップでリセットスイッチを押すことで行ないます。これはソフトリセットの効果に加え、ストレージヒープも消去します。結果として、プログラム、データ、パッチ、ユーザー情報などが全て失なわれます。全データの削除を確認するメッセージが表示されます。

sysAppLaunchCmdSystemReset 起動コードがこの時アプリケーションに送られます。“全てのデータを削除”を選択すると、ディジタイザのキャリブレーションは初期状態に戻ります。4 つの主要アプリケーションのデフォルトデータベースは ROM からコピーされます。

“全てのデータを削除”というメッセージが表示されている状態で上ボタンを押し、上ボタンを押したままの状態で 4 つあるアプリケーションボタンを押すと、システムは 4 つの主要アプリケーションのデフォルトデータベースを ROM から読み込まずに起動します。

 

システムリセットコール

システムマネージャは Palm ハンドヘルドのリブートをサポートします。ハンドヘルドをリセットするには、SysReset をコールします。このコールはソフトリセットを行ない、リセットスイッチを押した場合と同じ効果を持ちます。アプリケーションでは通常このコールを使用すべきではありません。

例えば、SysReset は同期アプリケーションで使用されます。ユーザーがハンドヘルドにシステム拡張をコピーした場合、同期アプリケーションは同期完了後にハンドヘルドを自動的にリセットし、システム拡張が自身をインストールできるようにします。

 


← 3 節に戻る ↑11 章トップへ 5 節に進む →