GadgetSeed  0.9.6
コンソールIO

GadgetSeedは標準化されたコンソールIOがあります。

コンソールIOはUNIX系OSの標準入出力に似ています。

コンソールIOは「標準入力」、「標準出力」、「エラー出力」の3種類があります。
これはらの入出力には何らかのデバイスドライバを割り当てることができます。
また、入出力デバイスはタスク毎に固有のデバイスを割り当てることができます。

コンソールデバイスにはUARTデバイスを使うことを推奨します。
また、コンソールデバイスは コマンドシェル のインタフェースとして使用されます。


コンソールIO API

標準入出力デバイス登録API

以下のAPIはシステムの標準入出力デバイスを登録します。
これらのAPIで登録されたデバイスは生成されたタスクの標準入出力デバイスとなります。
これらのAPIはシステムの初期化時に使用して下さい。
コマンドシェルを使用する場合は、必ず何らかのデバイスを登録する必要があります。

include ファイル : console.h

API名 機能
register_console_in_dev() システム標準のコンソール入力デバイスを登録する
register_console_out_dev()システム標準のコンソール出力デバイスを登録する
register_error_out_dev() システム標準のエラー出力デバイスを登録する

文字列出力API

GadgetSeedはprintf()に似た書式付きの文字列出力APIがあります。

include ファイル : tprintf.h

API名 機能
tprintf() 簡易printf
eprintf() エラー出力用簡易printf

tprintf() は、 register_console_out_dev() で登録されたデバイスに出力されます。
eprintf() は、 register_error_out_dev() で登録されたデバイスに出力されます。

コンソール入力API

標準入力から入力データを取得するには以下のAPIを使用します。

include ファイル : console.h

API名 機能
cgets() 標準入力より文字列を取得する
cgetc() 標準入力より1文字を取得する
cwait() 標準入力より入力を待つ
cgetcnw() 標準入力より1文字を取得する(待ち無し)

標準入出力デバイス変更API

実行中のタスクは、標準入出力デバイスは動的に変更することができます。
標準入出力デバイスを変更するには、以下のAPIを使用します。

include ファイル : syscall.h

API名 機能
set_console_in_device() 実行タスクの標準入力デバイスを設定する
set_console_out_device() 実行タスクの標準出力デバイスを設定する
set_error_out_device() 実行タスクのエラー出力デバイスを設定する