オペレーティングシステム(OS)サンプルデモ

場所

$TwlSDK/build/demos/os
$TwlSDK/build/demos.TWL/os

コンパイル方法

$TwlSDK/build/demos/os (または$TwlSDK/build/demos.TWL/os) ディレクトリに移り、

% make

と入力します。コンパイルが始まり、実行ファイルである .srl ファイルやバイナリ情報を記述した .nef または .tef ファイルが、

$TwlSDK/build/demos/os/(サンプル名)/bin/(プラットフォーム)/(ターゲット)/
$TwlSDK/build/demos.TWL/os/(サンプル名)/bin/(プラットフォーム)/(ターゲット)/

の下に生成されます。例えば、

$TwlSDK/build/demos/os/thread-1/bin/ARM9-TS/Release/main.srl

thread-1 デモの実行ファイルとなります。

実行方法

NITRO ROM の場合

Ensata エミュレータを用いる場合

IS-NITRO-DEBUGGER を用いる場合

IS-TWL-DEBUGGER を用いる場合

TWL/NITRO HYBRID ROM の場合

IS-NITRO-DEBUGGER を用いる場合

IS-TWL-DEBUGGER を用いる場合

TWL LIMITED ROM の場合

IS-TWL-DEBUGGER を用いる場合

説明


デモ名 ディレクトリ 動作
alarm-1 demos ワンショットのアラームを1つ使用します。
alarm-2 demos 周期的なアラームと、ワンショットのアラームを使用します。
arena-1 demos アリーナを設定しメモリを取得します。
argument-1 demos 引数データをROMイメージに埋め込み表示します。
argument-2 demos 文字列からその場で引数データを作成して設定します。
callTrace-1 demos スレッドシステムを使用せずに、関数コールトレース表示を行います。
callTrace-2 demos スレッドシステムを使用して、関数コールトレース表示を行います。
consoleType-1 demos 動作環境情報を画面に表示します。
cplusplus-1 demos C++の実装のためにスタティックイニシャライザを呼ぶ前にメモリ管理の初期化を行います。
cpuSpeed-1 demos.TWL CPU速度を倍速と等速で切り替えます。
entropy-1 demos OS_GetLowEntropyData() を使用します。
event-1 demos イベントによってスレッドを起こします。
exceptionDisplay-1 demos 例外表示を行い、例外コールバックを使用します。
(IS-TWL-DEBUGGER では例外コールバックを使用しません)
exceptionDisplay-2 demos 0除算で擬似的に例外を発生させます。
exceptionDisplay-3 demos 例外発生時に、関数コールトレース情報を表示します。
(IS-TWL-DEUBGGER では関数コールトレース情報を表示しません)
exceptionDisplay-4 demos 例外発生時に、画面に例外時コンテキストを表示します。
(IS-TWL-DEBUGGER では画面にコンテキストを表示しません)
forChina-1 demos 中国向けアプリケーションを作成する簡易サンプルです。
forChina-fs demos forChina-1と同様ですが、OS_ShowAttentionChina() を独自に定義して画像データをファイルシステムから取得します。
forKorea-1 demos 韓国向けアプリケーションを作成する簡易サンプルです。
functionCost-1 demos 関数のコストを計測して表示します。
functionCost-2 demos 複数のスレッドで関数のコストを計測して表示します。
functionCost-3 demos 複数のスレッドで計測した関数コストを全体で集計して表示します。
heap-1 demos ヒープを作成して領域を確保したり解放したりします。
message-1 demos メッセージでスレッドを起こします。
mutex-1 demos 複数のスレッドから1つの関数をアクセスする際にmutexで排他制御します。
mutex-2 demos スレッドが終了するときに mutex をアンロックします。
os_jump demos.TWL OS_JumpToSystemMenu()OS_RebootSystem() などハードウェアリセットを介する関数の動作デモです。
reset-1 demos ソフトウェアリセットをかけます。
simple-1 demos 最もシンプルな動作デモです。
sleep-1 demos 一定時間スレッドをスリープします。
spinwait-1 demos OS_SpinWait() で一定時間ウェイトします。
thread-1 demos 2つのスレッドを作成し、一方がもう一方を直接起こします。
thread-2 demos 2つのスレッドを作成し、割り込みハンドラからそれぞれを起こします。
thread-3 demos OS_JoinThread() を使用する例です。
threadQueue-1 demos スレッドキューを用いてスレッドを起こします。
threadYield-1 demos OS_YieldThread() を使用する例です。
tick-1 demos システムのtick値を取得します。
timer-1 demos 16bitタイマと32bitタイマを使用します。
valarm-1 demos Vカウントを用いたアラームを使用します。
waitIrq-1 demos 別スレッドを動作させながらVブランクの発生を待ちます。
waitIrq-2 demos OS_WaitIrq()OS_WaitAnyIrq() の動作の違いを示します。

動作

exceptionDisplay-*, reset-1 は ensata では正常動作をしません。

IS-TWL-DEBUGGER では、exceptionDisplay-* は例外が発生したコードで停止します。

arbitrary_jump は TwlNmenu.srl を使って本体保存メモリに tad をインポートしてから実行してください。

デモのいくつかは OS_Printf() で情報をデバッグコンソールに表示しているものがあります。しかしFINALROM版のROMでは OS_Printf() が無効化されるので、そういうものに関しては FINALROM版での確認が出来ません。

参照

OS関数一覧

履歴

2009/07/01 exceptionDisplay-* について説明を修正
2009/06/17 exceptionDisplay-4 デモの説明追記
2008/07/09 一旦削除していた argument-1, argument-2 を追加
2008/04/25 表を一新。TWL用の一覧に変更。
2006/10/19 forKorea-1 サンプルの説明を追加。
2005/09/09 argument-2 を追加
2005/07/22 functionCost-1 の記載漏れを修正
2005/07/21 argument-1 を追加
2005/07/14 thread-10 を追加
2005/07/13 thread-6, thread-7, thread-8, thread-9 を追加。
2005/07/11 forChina-1、forChina-fsサンプルの説明を追加。
2005/05/10 favorite-colorサンプルの説明を追加。
2005/03/02 記述内容を現在のサポート環境の状況に合うよう修正。
2004/12/08 interrupt-key-1 を削除。動作を修正。
2004/09/01 reset-1 を追加。
2004/08/17 IS-NITRO-EMULATORについての表記を統一。
2004/07/10 .bin から .srl へ変更。
2004/06/25 thread-5を追加。
2004/06/08 profile関連のデモをデフォルトでMakefileに入れるようにした。
2004/05/24 functionCost-1,2,3, waitIrq-1,2 を追加。必要なprofile機能についての記述を追加。
2004/04/15 callTrace-1, callTrace-2, cplusplus-1, exceptionDisplay-3 の記述を追加。
2004/04/05 mutex-2, sleep-1, timer-1 の記述を追加。systemClock-1 を tick-1 に修正。
2004/03/17 exceptionDisplay-2, valarm-1, spinWait-1 の記述を追加。
2004/02/05 alarm-1,alarm-2,exceptionDisplay-1,systemClock-1 の記述を追加。
2004/01/18 interrupt-dma-1 サンプルはdmaCallback-1 としてMIに移した。
2004/01/09 初版