インテルのみ表示可能 — GUID: oho1642993236208
Ixiasoft
インテルのみ表示可能 — GUID: oho1642993236208
Ixiasoft
11.3.3. スレッドセーフ・ドライバー
HAL と MicroC/OS-II 環境の間でドライバーを移植できるようにするために、インテルはオペレーティング・システム機能へのアクセスを提供する、オペレーティング・システムに依存しない一連のマクロを定義します。これらのマクロは、マルチスレッド環境にのみ関連する機能を実装します。マルチスレッド uCOS/II プロジェクトに向けてコンパイルを実行すると、マクロは MicroC/OS-II API 呼び出しに展開されます。シングルスレッド HAL プロジェクトに向けてコンパイルを実行すると、マクロは無害な空の実装に展開されます。これらのマクロは、インテルが提供するデバイスドライバー・コードであり、同様の移植性を備えたデバイスドライバーを作成する必要がある場合に使用できます。
ヘッダーファイルに対してリストされたパスは、<Intel Quartus installation directory>/nios2eds/components/micrium_uc_osii/UCOSII/inc ディレクトリーを基準とする相対パスです。
マクロ | MicroC/OS-II 実装 | シングルスレッド HAL 実装 |
---|---|---|
イベント・フラグ・マクロ os/alt_flag.h および priv/alt_flag_ucosii.h で定義されます。 |
||
ALT_FLAG_GRP(group) | group という名前のフラググループを作成します。 | 空のステートメントです。 |
ALT_EXTERN_FLAG_GRP(group) | group という名前のフラググループへ外部参照を作成します。 | |
ALT_STATIC_FLAG_GRP(group) | group という名前の静的フラググループを作成します。 | |
ALT_FLAG_CREATE(group, flags) | OSFlagCreate() を呼び出して、フラグ・グループ・ポインターの group をフラグ値 flags で初期化します。エラーコードは、マクロの戻り値です。 | 0 を返します。(成功) |
ALT_FLAG_PEND(group, flags, wait_type, timeout) | group、flags、wait_type、および timeout に設定された最初の 4 つの入力引数で OSFlagPend() を呼び出します。エラーコードは、マクロの戻り値です。 | |
ALT_FLAG_POST(group, flags, opt) | group、flags、および opt に設定された最初の 3 つの入力引数で OSFlagPost() を呼び出します。エラーコードは、マクロの戻り値です。 | |
セマフォーマクロ os/alt_sem.h and priv/alt_sem_ucosii.h で定義されます。 |
||
ALT_SEM(sem) | sem という名前の OS_Event ポインターを作成します。 | 空のステートメントです。 |
ALT_EXTERN_SEM(sem) | sem という名前の OS_Event ポインターへの外部参照を作成します。 | |
ALT_STATIC_SEM(sem) | sem という名前の静的 OS_Eventpointer を作成します。 | |
ALT_STATIC_CREATE(sem, value) | 引数値で OSSemCreate() を呼び出し、OS_Event ポインター sem を初期化します。戻り値は、成功時は 0、それ以外は負の値です。 | 0 を返します。(成功) |
ALT_SEM_PEND(sem, timeout) | sem および timeout に設定された最初の 2 つの引数で OSSemPend() を呼び出します。エラーコードは、マクロの戻り値です。 | |
ALT_SEM_POST(sem) | 入力引数 sem を使用して OSSemPost() を呼び出します。 |
引数 | 有効な入力 | 定義するヘッダー |
---|---|---|
wait_type |
|
|
timeout |
|
|
opt |
|