μT-Kernel/DSの機能

この章では、μT-Kernel/DS(Debugger Support)で提供している機能の詳細について説明を行う。

μT-Kernel/DSは、デバッガがμT-Kernelの内部状態の参照や実行のトレースを行うための機能を提供するものである。μT-Kernel/DSの提供する機能は、デバッガ専用であり、一般のアプリケーション等からは使用しない。

注意全般的な注意・補足事項
 

  • μT-Kernel/DSのシステムコール(td_~)は、特に明記されているものを除き、タスク独立部およびディスパッチ禁止中・割込み禁止中からも呼び出すことができる。

    ただし、実装によっては機能が制限される場合がある。

  • μT-Kernel/DSのシステムコール(td_~)を割込み禁止状態で呼び出した場合、割込み許可されることなく処理される。同様に、カーネルのその他の状態も変化させない。割込み許可状態やディスパッチ許可状態で呼び出された場合は、カーネルの動作も継続されるため、カーネルの状態は変化する場合がある。

  • μT-Kernel/DSのシステムコール(td_~)は、μT-Kernel/OSのシステムコールの呼出可能な保護レベルより低い保護レベル(TSVCLimit より低い保護レベル)から呼び出すことはできない(E_OACV)。

  • 常に発生する可能性のあるエラー E_PAR, E_MACV, E_CTX などは、特に説明を必要とする場合以外は省略している。

カーネル内部状態取得機能

カーネル内部状態取得機能は、デバッガがカーネルの内部状態を取得するための機能である。オブジェクトの一覧を取得する機能、タスクの優先順位を取得する機能、待ち行列に並んだタスクの並び順を取得する機能、オブジェクトやシステムやタスクレジスタの状態を取得する機能、および時刻を取得する機能が含まれる。

td_lst_tsk - タスクIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_tsk(ID list[], INT nent);

パラメータ

ID list[] ListタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されているタスクの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されているタスクIDのリストを取得し、list へ最大 nent 個分のタスクIDを格納する。戻値に、使用されているタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できていないことを示す。

td_lst_sem - セマフォIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_sem(ID list[], INT nent);

パラメータ

ID list[] ListセマフォIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されているセマフォの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されているセマフォIDのリストを取得し、list へ最大 nent 個分のセマフォIDを格納する。戻値に、使用されているセマフォの個数を返す。戻値 > nent であれば、すべてのセマフォIDは取得できていないことを示す。

td_lst_flg - イベントフラグIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_flg(ID list[], INT nent);

パラメータ

ID list[] ListイベントフラグIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されているイベントフラグの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されているイベントフラグIDのリストを取得し、list へ最大 nent 個分のイベントフラグIDを格納する。戻値に、使用されているイベントフラグの個数を返す。戻値 > nent であれば、すべてのイベントフラグIDは取得できていないことを示す。

td_lst_mbx - メールボックスIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_mbx(ID list[], INT nent);

パラメータ

ID list[] ListメールボックスIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されているメールボックスの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されているメールボックスIDのリストを取得し、list へ最大 nent 個分のメールボックスIDを格納する。戻値に、使用されているメールボックスの個数を返す。戻値 > nent であれば、すべてのメールボックスIDは取得できていないことを示す。

td_lst_mtx - ミューテックスIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_mtx(ID list[], INT nent);

パラメータ

ID list[] ListミューテックスIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されているミューテックスの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されているミューテックスIDのリストを取得し、list へ最大 nent 個分のミューテックスIDを格納する。戻値に、使用されているミューテックスの個数を返す。戻値 > nent であれば、すべてのミューテックスIDは取得できていないことを示す。

td_lst_mbf - メッセージバッファIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_mbf(ID list[], INT nent);

パラメータ

ID list[] ListメッセージバッファIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されているメッセージバッファの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されているメッセージバッファIDのリストを取得し、list へ最大 nent 個分のメッセージバッファIDを格納する。戻値に、使用されているメッセージバッファの個数を返す。戻値 > nent であれば、すべてのメッセージバッファIDは取得できていないことを示す。

td_lst_mpf - 固定長メモリプールIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_mpf(ID list[], INT nent);

パラメータ

ID list[] List固定長メモリプールIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されている固定長メモリプールの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されている固定長メモリプールIDのリストを取得し、list へ最大 nent 個分の固定長メモリプールIDを格納する。戻値に、使用されている固定長メモリプールの個数を返す。戻値 > nent であれば、すべての固定長メモリプールIDは取得できていないことを示す。

td_lst_mpl - 可変長メモリプールIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_mpl(ID list[], INT nent);

パラメータ

ID list[] List可変長メモリプールIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されている可変長メモリプールの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されている可変長メモリプールIDのリストを取得し、list へ最大 nent 個分の可変長メモリプールIDを格納する。戻値に、使用されている可変長メモリプールの個数を返す。戻値 > nent であれば、すべての可変長メモリプールIDは取得できていないことを示す。

td_lst_cyc - 周期ハンドラIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_cyc(ID list[], INT nent);

パラメータ

ID list[] List周期ハンドラIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されている周期ハンドラの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されている周期ハンドラIDのリストを取得し、list へ最大 nent 個分の周期ハンドラIDを格納する。戻値に、使用されている周期ハンドラの個数を返す。戻値 > nent であれば、すべての周期ハンドラIDは取得できていないことを示す。

td_lst_alm - アラームハンドラIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_alm(ID list[], INT nent);

パラメータ

ID list[] ListアラームハンドラIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されているアラームハンドラの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

現在使用されているアラームハンドラIDのリストを取得し、list へ最大 nent 個分のアラームハンドラIDを格納する。戻値に、使用されているアラームハンドラの個数を返す。戻値 > nent であれば、すべてのアラームハンドラIDは取得できていないことを示す。

td_lst_ssy - サブシステムIDのリスト参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_lst_ssy(ID list[], INT nent);

パラメータ

ID list[] ListサブシステムIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count使用されているサブシステムの個数
またはError Codeエラーコード

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_SUBSYSTEM サブシステム管理機能のサポート

解説

現在使用されているサブシステムIDのリストを取得し、list へ最大 nent 個分のサブシステムIDを格納する。戻値に、使用されているサブシステムの個数を返す。戻値 > nent であれば、すべてのサブシステムIDは取得できていないことを示す。

td_rdy_que - タスクの優先順位の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_rdy_que(PRI pri, ID list[], INT nent);

パラメータ

PRI pri Task Priority対象タスク優先度
ID list[] Task ID ListタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count優先度 pri の実行できる状態のタスクの個数
またはError Codeエラーコード

エラーコード

E_PAR パラメータエラー(pri が不正あるいは利用できない値)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

実行できる状態(実行可能状態および実行状態)のタスクのうち、優先度が pri であるものを、優先順位の高い順に一列に並べ、その並び順にタスクIDのリストを取得する。

list には、優先順位が最高のものを先頭としてその並び順に、タスクIDが最大 nent 個まで格納される。

戻値には、pri の優先度を持つ実行できる状態のタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できていないことを示す。

td_sem_que - セマフォの待ち行列の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_sem_que(ID semid, ID list[], INT nent);

パラメータ

ID semid Semaphore ID対象セマフォID
ID list[] Task ID List待ちタスクのタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count待ちタスクの個数
またはError Codeエラーコード

エラーコード

E_ID ID番号が不正(semid が不正あるいは利用できない)
E_NOEXS 対象オブジェクトが存在しない(semid のセマフォが存在しない)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

semid で指定したセマフォの待ち行列に並んでいるタスクのIDのリストを取得する。list には、セマフォの待ち行列の先頭からその並び順にタスクIDが最大 nent 個まで格納される。戻値には、セマフォの待ち行列に並んでいるタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できないことを示す。

td_flg_que - イベントフラグの待ち行列の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_flg_que(ID flgid, ID list[], INT nent);

パラメータ

ID flgid EventFlag ID対象イベントフラグID
ID list[] Task ID List待ちタスクのタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count待ちタスクの個数
またはError Codeエラーコード

エラーコード

E_ID ID番号が不正(flgid が不正あるいは利用できない)
E_NOEXS 対象オブジェクトが存在しない(flgid のイベントフラグが存在しない)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

flgid で指定したイベントフラグの待ち行列に並んでいるタスクのIDのリストを取得する。list には、イベントフラグの待ち行列の先頭からその並び順にタスクIDが最大 nent 個まで格納される。戻値には、イベントフラグの待ち行列に並んでいるタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できないことを示す。

td_mbx_que - メールボックスの待ち行列の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_mbx_que(ID mbxid, ID list[], INT nent);

パラメータ

ID mbxid Mailbox ID対象メールボックスID
ID list[] Task ID List待ちタスクのタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count待ちタスクの個数
またはError Codeエラーコード

エラーコード

E_ID ID番号が不正(mbxid が不正あるいは利用できない)
E_NOEXS 対象オブジェクトが存在しない(mbxid のメールボックスが存在しない)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

mbxid で指定したメールボックスの待ち行列に並んでいるタスクのIDのリストを取得する。list には、メールボックスの待ち行列の先頭からその並び順にタスクIDが最大 nent 個まで格納される。戻値には、メールボックスの待ち行列に並んでいるタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できないことを示す。

td_mtx_que - ミューテックスの待ち行列の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_mtx_que(ID mtxid, ID list[], INT nent);

パラメータ

ID mtxid Mutex ID対象ミューテックスID
ID list[] Task ID List待ちタスクのタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count待ちタスクの個数
またはError Codeエラーコード

エラーコード

E_ID ID番号が不正(mtxid が不正あるいは利用できない)
E_NOEXS 対象オブジェクトが存在しない(mtxid のミューテックスが存在しない)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

mtxid で指定したミューテックスの待ち行列に並んでいるタスクのIDのリストを取得する。list には、ミューテックスの待ち行列の先頭からその並び順にタスクIDが最大 nent 個まで格納される。戻値には、ミューテックスの待ち行列に並んでいるタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できないことを示す。

td_smbf_que - メッセージバッファの送信待ち行列の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_smbf_que(ID mbfid, ID list[], INT nent);

パラメータ

ID mbfid Message Buffer ID対象メッセージバッファID
ID list[] Task ID List待ちタスクのタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count待ちタスクの個数
またはError Codeエラーコード

エラーコード

E_ID ID番号が不正(mbfid が不正あるいは利用できない)
E_NOEXS 対象オブジェクトが存在しない(mbfid のメッセージバッファが存在しない)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

mbfid で指定したメッセージバッファの送信待ち行列に並んでいるタスクのIDのリストを取得する。list には、メッセージバッファの送信待ち行列の先頭からその並び順にタスクIDが最大 nent 個まで格納される。戻値には、メッセージバッファの送信待ち行列に並んでいるタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できないことを示す。

td_rmbf_que - メッセージバッファの受信待ち行列の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_rmbf_que(ID mbfid, ID list[], INT nent);

パラメータ

ID mbfid Message Buffer ID対象メッセージバッファID
ID list[] Task ID List待ちタスクのタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count待ちタスクの個数
またはError Codeエラーコード

エラーコード

E_ID ID番号が不正(mbfid が不正あるいは利用できない)
E_NOEXS 対象オブジェクトが存在しない(mbfid のメッセージバッファが存在しない)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

mbfid で指定したメッセージバッファの受信待ち行列に並んでいるタスクのIDのリストを取得する。list には、メッセージバッファの受信待ち行列の先頭からその並び順にタスクIDが最大 nent 個まで格納される。戻値には、メッセージバッファの受信待ち行列に並んでいるタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できないことを示す。

td_mpf_que - 固定長メモリプールの待ち行列の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_mpf_que(ID mpfid, ID list[], INT nent);

パラメータ

ID mpfid Memory Pool ID対象固定長メモリプールID
ID list[] Task ID List待ちタスクのタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count待ちタスクの個数
またはError Codeエラーコード

エラーコード

E_ID ID番号が不正(mpfid が不正あるいは利用できない)
E_NOEXS 対象オブジェクトが存在しない(mpfid の固定長メモリプールが存在しない)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

mpfid で指定した固定長メモリプールの待ち行列に並んでいるタスクのIDのリストを取得する。list には、固定長メモリプールの待ち行列の先頭からその並び順にタスクIDが最大 nent 個まで格納される。戻値には、固定長メモリプールの待ち行列に並んでいるタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できないことを示す。

td_mpl_que - 可変長メモリプールの待ち行列の参照

C言語インタフェース

#include <tk/dbgspt.h>

INT ct = td_mpl_que(ID mplid, ID list[], INT nent);

パラメータ

ID mplid Memory Pool ID対象可変長メモリプールID
ID list[] Task ID List待ちタスクのタスクIDを格納する領域
INT nent Number of List Entrieslist に格納可能な最大数

リターンパラメータ

INT ct Count待ちタスクの個数
またはError Codeエラーコード

エラーコード

E_ID ID番号が不正(mplid が不正あるいは利用できない)
E_NOEXS 対象オブジェクトが存在しない(mplid の可変長メモリプールが存在しない)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

mplid で指定した可変長メモリプールの待ち行列に並んでいるタスクのIDのリストを取得する。list には、可変長メモリプールの待ち行列の先頭からその並び順にタスクIDが最大 nent 個まで格納される。戻値には、可変長メモリプールの待ち行列に並んでいるタスクの個数を返す。戻値 > nent であれば、すべてのタスクIDは取得できないことを示す。

td_ref_tsk - タスク状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_tsk(ID tskid, TD_RTSK *rtsk);

パラメータ

ID tskid Task ID対象タスクID(TSK_SELF 可)
TD_RTSK* rtsk Packet to Refer Task Statusタスク状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rtsk の内容

void* exinf Extended Information拡張情報
PRI tskpri Task Priority現在の優先度
PRI tskbpri Task Base Priorityベース優先度
UINT tskstat Task Stateタスク状態
UW tskwait Task Wait Factor待ち要因
ID wid Waiting Object ID待ちオブジェクトID
INT wupcnt Wakeup Count起床要求キューイング数
INT suscnt Suspend Count強制待ち要求ネスト数
UW waitmask Wait Mask待ちを禁止されている待ち要因
UINT texmask Task Exception Mask許可されているタスク例外
UINT tskevent Task Event発生しているタスクイベント
FP task Task Start Addressタスク起動アドレス
SZ stksz User Stack Sizeユーザスタックサイズ(バイト数)
SZ sstksz System Stack Sizeシステムスタックサイズ(バイト数)
void* istack Initial User Stack Pointerユーザスタックポインタ初期値
void* isstack Initial System Stack Pointerシステムスタックポインタ初期値

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

また、以下のサービスプロファイルが本システムコールに関係する。

TK_SUPPORT_DISWAI 待ち禁止状態に関する情報(waitmask)の取得が可能
TK_SUPPORT_TASKEXCEPTION タスク例外情報(texmask)の取得が可能
TK_SUPPORT_TASKEVENT タスクイベント発生情報(tskevent)の取得が可能
TK_HAS_SYSSTACK タスクがユーザスタックとは独立したシステムスタックを持ち、ユーザスタックに加えてシステムスタックに対する情報(sstksz, isstack)の取得が可能

解説

タスクの状態を参照する。tk_ref_tsk と同等だが、タスク起動アドレスおよびスタックに関する情報が追加されている。

スタック領域は、スタックポインタ初期値の位置から低位アドレス(値の小さい方)へ向かって、スタックサイズ分となる。

  • istackstksz ≦ ユーザスタック領域 < istack

  • isstacksstksz ≦ システムスタック領域 < isstack

なお、スタックポインタ初期値(istack, isstack)は、スタックポインタの現在位置ではない。タスク起動前の状態であっても、スタック領域は使用されている場合がある。スタックポインタの現在位置を得るには、td_get_reg を用いる。

td_ref_tex - タスク例外の状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_tex(ID tskid, TD_RTEX *pk_rtex);

パラメータ

ID tskid Task ID対象タスクID(TSK_SELF 可)
TD_RTEX* pk_rtex Packet to Refer Task Exception Statusタスク例外状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

pk_rtex の内容

UINT pendtex Pending Task Exception発生しているタスク例外
UINT texmask Task Exception Mask許可されているタスク例外

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_TASKEXCEPTION タスク例外処理機能のサポート

解説

タスク例外の状態を参照する。tk_ref_tex と同等。

td_ref_sem - セマフォ状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_sem(ID semid, TD_RSEM *rsem);

パラメータ

ID semid Semaphore ID対象セマフォID
TD_RSEM* rsem Packet to Refer Semaphore Statusセマフォ状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rsem の内容

void* exinf Extended Information拡張情報
ID wtsk Waiting Task ID待ちタスクのID
INT semcnt Semaphore Count現在のセマフォカウント値

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

セマフォの状態を参照する。tk_ref_sem と同等。

td_ref_flg - イベントフラグ状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_flg(ID flgid, TD_RFLG *rflg);

パラメータ

ID flgid EventFlag ID対象イベントフラグID
TD_RFLG* rflg Packet to Refer EventFlag Statusイベントフラグ状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rflg の内容

void* exinf Extended Information拡張情報
ID wtsk Waiting Task ID待ちタスクのID
UINT flgptn EventFlag Bit Pattern現在のイベントフラグのビットパターン

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

イベントフラグの状態を参照する。tk_ref_flg と同等。

td_ref_mbx - メールボックス状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_mbx(ID mbxid, TD_RMBX *rmbx);

パラメータ

ID mbxid Mailbox ID対象メールボックスID
TD_RMBX* rmbx Packet to Refer Mailbox Statusメールボックス状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rmbx の内容

void* exinf Extended Information拡張情報
ID wtsk Waiting Task ID待ちタスクのID
T_MSG* pk_msg Packet of Message次に受信されるメッセージ

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

メールボックスの状態を参照する。tk_ref_mbx と同等。

td_ref_mtx - ミューテックス状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_mtx(ID mtxid, TD_RMTX *rmtx);

パラメータ

ID mtxid Mutex ID対象ミューテックスID
TD_RMTX* rmtx Packet to Refer Mutex Statusミューテックス状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rmtx の内容

void* exinf Extended Information拡張情報
ID htsk Locking Task IDロックしているタスクのID
ID wtsk Lock Waiting Task IDロック待ちタスクのID

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

ミューテックスの状態を参照する。tk_ref_mtx と同等。

td_ref_mbf - メッセージバッファ状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_mbf(ID mbfid, TD_RMBF *rmbf);

パラメータ

ID mbfid Message Buffer ID対象メッセージバッファID
TD_RMBF* rmbf Packet to Refer Message Buffer Statusメッセージバッファ状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rmbf の内容

void* exinf Extended Information拡張情報
ID wtsk Waiting Task ID受信待ちタスクのID
ID stsk Send Waiting Task ID送信待ちタスクのID
INT msgsz Message Size次に受信されるメッセージのサイズ(バイト数)
SZ frbufsz Free Buffer Size空きバッファのサイズ(バイト数)
INT maxmsz Maximum Message Sizeメッセージの最大長(バイト数)

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

メッセージバッファの状態を参照する。tk_ref_mbf と同等。

td_ref_mpf - 固定長メモリプール状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_mpf(ID mpfid, TD_RMPF *rmpf);

パラメータ

ID mpfid Memory Pool ID対象固定長メモリプールID
TD_RMPF* rmpf Packet to Refer Memory Pool Statusメモリプール状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rmpf の内容

void* exinf Extended Information拡張情報
ID wtsk Waiting Task ID待ちタスクのID
SZ frbcnt Free Block Count空き領域のブロック数

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

固定長メモリプールの状態を参照する。tk_ref_mpf と同等。

td_ref_mpl - 可変長メモリプール状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_mpl(ID mplid, TD_RMPL *rmpl);

パラメータ

ID mplid Memory Pool ID対象可変長メモリプールID
TD_RMPL* rmpl Packet to Refer Memory Pool Statusメモリプール状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rmpl の内容

void* exinf Extended Information拡張情報
ID wtsk Waiting Task ID待ちタスクのID
SZ frsz Free Memory Size空き領域の合計サイズ(バイト数)
SZ maxsz Max Memory Size最大の空き領域のサイズ(バイト数)

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

可変長メモリプールの状態を参照する。tk_ref_mpl と同等。

td_ref_cyc - 周期ハンドラ状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_cyc(ID cycid, TD_RCYC *rcyc);

パラメータ

ID cycid Cyclic Handler ID対象周期ハンドラID
TD_RCYC* rcyc Packet to Refer Cyclic Handler Status周期ハンドラの状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rcyc の内容

void* exinf Extended Information拡張情報
RELTIM lfttim Left Time次のハンドラ起動までの残り時間(ミリ秒)
UINT cycstat Cyclic Handler Status周期ハンドラの状態

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

周期ハンドラの状態を参照する。tk_ref_cyc と同等。

td_ref_cyc で取得する周期ハンドラ状態情報(TD_RCYC)における残り時間 lfttim は、ミリ秒単位に切り上げた値(単位ミリ秒)を返す。マイクロ秒単位の情報を知りたい場合には、td_ref_cyc_u を使う。

td_ref_cyc_u - 周期ハンドラ状態参照(マイクロ秒単位)

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_cyc_u(ID cycid, TD_RCYC_U *rcyc_u);

パラメータ

ID cycid Cyclic Handler ID対象周期ハンドラID
TD_RCYC_U* rcyc_u Packet to Refer Cyclic Handler Status周期ハンドラの状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rcyc_u の内容

void* exinf Extended Information拡張情報
RELTIM_U lfttim_u Left Time次のハンドラ起動までの残り時間(マイクロ秒)
UINT cycstat Cyclic Handler Status周期ハンドラの状態

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_USEC マイクロ秒のサポート

解説

td_ref_cyc のリターンパラメータである lfttim を64ビットマイクロ秒単位の lfttim_u としたシステムコールである。

リターンパラメータが lfttim_u となった点を除き、本システムコールの仕様は td_ref_cyc と同じである。詳細は td_ref_cyc の説明を参照のこと。

td_ref_alm - アラームハンドラ状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_alm(ID almid, TD_RALM *ralm);

パラメータ

ID almid Alarm Handler ID対象アラームハンドラID
TD_RALM* ralm Packet to Refer Alarm Handler Statusアラームハンドラの状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

ralm の内容

void* exinf Extended Information拡張情報
RELTIM lfttim Left Timeハンドラ起動までの残り時間(ミリ秒)
UINT almstat Alarm Handler Statusアラームハンドラの状態

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

アラームハンドラの状態を参照する。tk_ref_alm と同等。

td_ref_alm で取得するアラームハンドラ状態情報(TD_RALM)における残り時間 lfttim は、ミリ秒単位に切り上げた値(単位ミリ秒)を返す。マイクロ秒単位の情報を知りたい場合には、td_ref_alm_u を使う。

td_ref_alm_u - アラームハンドラ状態参照(マイクロ秒単位)

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_alm_u(ID almid, TD_RALM_U *ralm_u);

パラメータ

ID almid Alarm Handler ID対象アラームハンドラID
TD_RALM_U* ralm_u Packet to Refer Alarm Handler Statusアラームハンドラの状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

ralm_u の内容

void* exinf Extended Information拡張情報
RELTIM_U lfttim_u Left Timeハンドラ起動までの残り時間(マイクロ秒)
UINT almstat Alarm Handler Statusアラームハンドラの状態

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_USEC マイクロ秒のサポート

解説

td_ref_alm のリターンパラメータである lfttim を64ビットマイクロ秒単位の lfttim_u としたシステムコールである。

リターンパラメータが lfttim_u となった点を除き、本システムコールの仕様は td_ref_alm と同じである。詳細は td_ref_alm の説明を参照のこと。

td_ref_sys - システム状態参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_sys(TD_RSYS *pk_rsys);

パラメータ

TD_RSYS* pk_rsys Packet to Refer System Statusシステム状態を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

pk_rsys の内容

UINT sysstat System Stateシステム状態
ID runtskid Running Task ID現在実行状態にあるタスクのID
ID schedtskid Scheduled Task ID実行状態にすべきタスクのID

エラーコード

E_OK 正常終了

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

システムの状態を参照する。tk_ref_sys と同等。

td_ref_ssy - サブシステム定義情報の参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_ssy(ID ssid, TD_RSSY *rssy);

パラメータ

ID ssid Subsystem ID対象サブシステムID
TD_RSSY* rssy Packet to Refer Subsystemサブシステム定義情報を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

rssy の内容

PRI ssypri Subsystem Priorityサブシステム優先度

エラーコード

E_OK 正常終了
E_ID ID番号が不正
E_NOEXS 対象オブジェクトが存在しない

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_SUBSYSTEM サブシステム管理機能のサポート

解説

サブシステムの状態を参照する。tk_ref_ssy と同等。

td_get_reg - タスクレジスタの参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_get_reg(ID tskid, T_REGS *pk_regs, T_EIT *pk_eit, T_CREGS *pk_cregs);

パラメータ

ID tskid Task ID対象タスクのID(TSK_SELF 不可)
T_REGS* pk_regs Packet of Registers汎用レジスタの値を返す領域へのポインタ
T_EIT* pk_eit Packet of EIT Registers例外時に保存されるレジスタの値を返す領域へのポインタ
T_CREGS* pk_cregs Packet of Control Registers制御レジスタの値を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

T_REGS, T_EIT, T_CREGSの内容は、CPUおよび実装ごとに定義する。

エラーコード

E_OK 正常終了
E_ID 不正ID番号(tskid が不正あるいは利用できない)
E_NOEXS オブジェクトが存在していない(tskid のタスクが存在しない)
E_OBJ オブジェクトの状態が不正(対象タスクが現在実行状態のタスク)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_REGOPS タスクレジスタ取得・設定機能のサポート

解説

タスクのレジスタを参照する。tk_get_reg と同等。

現在実行状態にあるタスクは参照することはできない。タスク独立部の実行中を除けば、現在実行状態のタスクは自タスクである。

pk_regs, pk_eit, pk_cregs は、それぞれ NULL を指定すると、対応するレジスタは参照されない。

T_REGS, T_EIT, T_CREGSの内容は実装定義である。

td_set_reg - タスクレジスタの設定

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_set_reg(ID tskid, CONST T_REGS *pk_regs, CONST T_EIT *pk_eit, CONST T_CREGS *pk_cregs);

パラメータ

ID tskid Task ID対象タスクのID(TSK_SELF 不可)
CONST T_REGS* pk_regs Packet of Registers汎用レジスタ
CONST T_EIT* pk_eit Packet of EIT Registers例外時に保存されるレジスタ
CONST T_CREGS* pk_cregs Packet of Control Registers制御レジスタ

T_REGS, T_EIT, T_CREGSの内容は、CPUおよび実装ごとに定義する。

リターンパラメータ

ER ercd Error Codeエラーコード

エラーコード

E_OK 正常終了
E_ID 不正ID番号(tskid が不正あるいは利用できない)
E_NOEXS オブジェクトが存在していない(tskid のタスクが存在しない)
E_OBJ オブジェクトの状態が不正(対象タスクが現在実行状態のタスク)

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_REGOPS タスクレジスタ取得・設定機能のサポート

解説

タスクのレジスタを設定する。tk_set_reg と同等。

現在実行状態にあるタスクに設定することはできない。タスク独立部の実行中を除けば、現在実行状態のタスクは自タスクである。

pk_regs, pk_eit, pk_cregs は、それぞれ NULL を指定すると、対応するレジスタは設定されない。

T_REGS, T_EIT, T_CREGS の内容は実装定義である。

td_get_utc - システム時刻参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_get_utc(SYSTIM *tim, UW *ofs);

パラメータ

SYSTIM* tim Time現在時刻(ミリ秒)を返す領域へのポインタ
UW* ofs Offsetリターンパラメータ ofs を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード
SYSTIM tim Time現在時刻(ミリ秒)
UW ofs Offsettim からの相対的な経過時間(ナノ秒)

tim の内容

W hi High 32bitsシステムの現在時刻の上位32ビット
UW lo Low 32bitsシステムの現在時刻の下位32ビット

エラーコード

E_OK 正常終了

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_UTC UNIX表現のシステム時刻のサポート

解説

現在時刻(1970年1月1日0時0分0秒(UTC)からの通算のミリ秒数)を取得する。tim に返される値は tk_get_utc と同じである。tim は、タイマ割込み間隔(周期)の分解能となるが、さらに細かい精度の時刻情報として tim からの経過時間を ofs にナノ秒単位で取得する。ofs の分解能は実装依存であるが、一般にはハードウェアタイマの分解能となる。

tim は、タイマ割込みによってカウントされる時刻であるため、割込み禁止期間中にタイマ割込み周期が来た場合、タイマ割込みハンドラが起動されず(起動が遅らされ)時刻が更新されないことがある。このような場合、tim には前回のタイマ割込みによって更新された時刻が返され、ofs には前回のタイマ割込みからの経過時間を返す。したがって、ofs はタイマ割込み間隔より長い時間となる場合がある。ofs がどの程度まで長い経過時間を計測できるかはハードウェアなどに依存するが、少なくともタイマ割込み間隔の2倍未満(0≦ofs<タイマ割込み間隔の2倍)の範囲まで計測できることが望ましい。

なお、tim および ofs に返される時刻は、td_get_utc を呼び出してから戻るまでにかかった時間範囲の中のどこかの時点の時刻となる。td_get_utc を呼び出した時点の時刻でも、td_get_utc から戻った時点の時刻でもない。したがって、より正確な情報を得たい場合は、割込み禁止状態で呼び出すべきである。

td_get_utc_u - システム時刻参照(マイクロ秒単位)

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_get_utc_u(SYSTIM_U *tim_u, UW *ofs);

パラメータ

SYSTIM_U* tim_u Time現在時刻(マイクロ秒)を返す領域へのポインタ
UW* ofs Offsetリターンパラメータ ofs を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード
SYSTIM_U tim_u Time現在時刻(マイクロ秒)
UW ofs Offsettim_u からの相対的な経過時間(ナノ秒)

エラーコード

E_OK 正常終了

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_UTC UNIX表現のシステム時刻のサポート
TK_SUPPORT_USEC マイクロ秒のサポート

解説

td_get_utc のリターンパラメータである tim を64ビットマイクロ秒単位の tim_u としたシステムコールである。

リターンパラメータが tim_u となった点を除き、本システムコールの仕様は td_get_utc と同じである。詳細は td_get_utc の説明を参照のこと。

td_get_tim - システム時刻参照(TRON表現)

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_get_tim(SYSTIM *tim, UW *ofs);

パラメータ

SYSTIM* tim Time現在時刻(ミリ秒)を返す領域へのポインタ
UW* ofs Offsetリターンパラメータ ofs を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード
SYSTIM tim Time現在時刻(ミリ秒)
UW ofs Offsettim からの相対的な経過時間(ナノ秒)

tim の内容

W hi High 32bitsシステムの現在時刻の上位32ビット
UW lo Low 32bitsシステムの現在時刻の下位32ビット

エラーコード

E_OK 正常終了

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_TRONTIME TRON表現のシステム時刻のサポート

解説

現在時刻(1985年1月1日0時(GMT)からの通算のミリ秒数)を取得する。tim に返される値は tk_get_tim と同じである。tim は、タイマ割込み間隔(周期)の分解能となるが、さらに細かい精度の時刻情報として tim からの経過時間を ofs にナノ秒単位で取得する。ofs の分解能は実装依存であるが、一般にはハードウェアタイマの分解能となる。

tim は、タイマ割込みによってカウントされる時刻であるため、割込み禁止期間中にタイマ割込み周期が来た場合、タイマ割込みハンドラが起動されず(起動が遅らされ)時刻が更新されないことがある。このような場合、tim には前回のタイマ割込みによって更新された時刻が返され、ofs には前回のタイマ割込みからの経過時間を返す。したがって、ofs はタイマ割込み間隔より長い時間となる場合がある。ofs がどの程度まで長い経過時間を計測できるかはハードウェアなどに依存するが、少なくともタイマ割込み間隔の2倍未満(0≦ofs<タイマ割込み間隔の2倍)の範囲まで計測できることが望ましい。

なお、tim および ofs に返される時刻は、td_get_tim を呼び出してから戻るまでにかかった時間範囲の中のどこかの時点の時刻となる。td_get_tim を呼び出した時点の時刻でも、td_get_tim から戻った時点の時刻でもない。したがって、より正確な情報を得たい場合は、割込み禁止状態で呼び出すべきである。

補足事項

td_get_timtd_get_utc と同等の機能を持つAPIであるが、システム時刻の起点とする日時のみが異なっている。td_get_tim は、旧バージョンのμT-KernelやT-Kernelとの互換性を維持するためのAPIである。

td_get_tim_u - システム時刻参照(TRON表現、マイクロ秒単位)

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_get_tim_u(SYSTIM_U *tim_u, UW *ofs);

パラメータ

SYSTIM_U* tim_u Time現在時刻(マイクロ秒)を返す領域へのポインタ
UW* ofs Offsetリターンパラメータ ofs を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード
SYSTIM_U tim_u Time現在時刻(マイクロ秒)
UW ofs Offsettim_u からの相対的な経過時間(ナノ秒)

エラーコード

E_OK 正常終了

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_TRONTIME TRON表現のシステム時刻のサポート
TK_SUPPORT_USEC マイクロ秒のサポート

解説

td_get_tim のリターンパラメータである tim を64ビットマイクロ秒単位の tim_u としたシステムコールである。

リターンパラメータが tim_u となった点を除き、本システムコールの仕様は td_get_tim と同じである。詳細は td_get_tim の説明を参照のこと。

td_get_otm - システム稼働時間参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_get_otm(SYSTIM *tim, UW *ofs);

パラメータ

SYSTIM* tim Time稼働時間(ミリ秒)を返す領域へのポインタ
UW* ofs Offsetリターンパラメータ ofs を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード
SYSTIM tim Time稼働時間(ミリ秒)
UW ofs Offsettim からの相対的な経過時間(ナノ秒)

tim の内容

W hi High 32bitsシステム稼働時間の上位32ビット
UW lo Low 32bitsシステム稼働時間の下位32ビット

エラーコード

E_OK 正常終了

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート

解説

システム稼働時間(システム起動時からの積算ミリ秒数)を取得する。tim に返される値は tk_get_otm と同じである。tim は、タイマ割込み間隔(周期)の分解能となるが、さらに細かい精度の時刻情報として tim からの経過時間を ofs にナノ秒単位で取得する。ofs の分解能は実装依存であるが、一般にはハードウェアタイマの分解能となる。

tim は、タイマ割込みによってカウントされる時刻であるため、割込み禁止期間中にタイマ割込み周期が来た場合、タイマ割込みハンドラが起動されず(起動が遅らされ)時刻が更新されないことがある。このような場合、tim には前回のタイマ割込みによって更新された時刻が返され、ofs には前回のタイマ割込みからの経過時間を返す。したがって、ofs はタイマ割込み間隔より長い時間となる場合がある。ofs がどの程度まで長い経過時間を計測できるかはハードウェアなどに依存するが、少なくともタイマ割込み間隔の2倍未満(0≦ofs<タイマ割込み間隔の2倍)の範囲まで計測できることが望ましい。

なお、tim および ofs に返される時刻は、td_get_otm を呼び出してから戻るまでにかかった時間範囲の中のどこかの時点の時刻となる。td_get_otm を呼び出した時点の時刻でも、td_get_otm から戻った時点の時刻でもない。したがって、より正確な情報を得たい場合は、割込み禁止状態で呼び出すべきである。

td_get_otm_u - システム稼働時間参照(マイクロ秒単位)

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_get_otm_u(SYSTIM_U *tim_u, UW *ofs);

パラメータ

SYSTIM_U* tim_u Time稼働時間(マイクロ秒)を返す領域へのポインタ
UW* ofs Offsetリターンパラメータ ofs を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード
SYSTIM_U tim_u Time稼働時間(マイクロ秒)
UW ofs Offsettim_u からの相対的な経過時間(ナノ秒)

エラーコード

E_OK 正常終了

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のすべてのサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DBGSPT μT-Kernel/DSのサポート
TK_SUPPORT_USEC マイクロ秒のサポート

解説

td_get_otm のリターンパラメータである tim を64ビットマイクロ秒単位の tim_u としたシステムコールである。

リターンパラメータが tim_u となった点を除き、本システムコールの仕様は td_get_otm と同じである。詳細は td_get_otm の説明を参照のこと。

td_ref_dsname - DSオブジェクト名称の参照

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_ref_dsname(UINT type, ID id, UB *dsname);

パラメータ

UINT type Object Type対象オブジェクトタイプ
ID id Object ID対象オブジェクトID
UB* dsname DS Object NameDSオブジェクト名称を返す領域へのポインタ

リターンパラメータ

ER ercd Error Codeエラーコード

dsname の内容

オブジェクト生成時、または td_set_dsname で設定されたDSオブジェクト名称

エラーコード

E_OK 正常終了
E_PAR オブジェクトタイプ不正
E_NOEXS 対象オブジェクトが存在しない
E_OBJ DSオブジェクト名称未使用

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DSNAME DSオブジェクト名称のサポート

解説

オブジェクト生成時に設定したDSオブジェクト名称(dsname)を参照する。対象となるオブジェクトは、オブジェクトタイプ(type)とオブジェクトID(id)で指定する。

指定可能なオブジェクトタイプ(type)は、以下の通りである。

TN_TSK 0x01タスク
TN_SEM 0x02セマフォ
TN_FLG 0x03イベントフラグ
TN_MBX 0x04メールボックス
TN_MBF 0x05メッセージバッファ
TN_POR 0x06(予約)
TN_MTX 0x07ミューテックス
TN_MPL 0x08可変長メモリプール
TN_MPF 0x09固定長メモリプール
TN_CYC 0x0a周期ハンドラ
TN_ALM 0x0bアラームハンドラ

DSオブジェクト名称は、オブジェクトの属性に、TA_DSNAME が指定された場合に有効となる。オブジェクト生成後に、td_set_dsname でDSオブジェクト名称を再設定した場合は、この名称が参照される。

DSオブジェクト名称の仕様は以下の通りとするが、μT-Kernelでは文字コードのチェックを行わない。

使用可能文字(UB)

a~z, A~Z, 0~9, _

名称長

最大8バイト('\0'は含まない)

補足事項

読み出したDSオブジェクト名称は '\0' で終端される。このため、dsname には9バイト以上の領域を用意する必要がある。

td_set_dsname - DSオブジェクト名称の設定

C言語インタフェース

#include <tk/dbgspt.h>

ER ercd = td_set_dsname(UINT type, ID id, CONST UB *dsname);

パラメータ

UINT type Object Type対象オブジェクトタイプ
ID id Object ID対象オブジェクトID
CONST UB* dsname DS Object Name設定するDSオブジェクト名称

リターンパラメータ

ER ercd Error Codeエラーコード

エラーコード

E_OK 正常終了
E_PAR オブジェクトタイプ不正
E_NOEXS 対象オブジェクトが存在しない
E_OBJ DSオブジェクト名称未使用

利用可能なコンテキスト

タスク部準タスク部タスク独立部

関連するサービスプロファイル

以下のサービスプロファイルが有効に設定されている場合に限り、本システムコールはサポートされる。

TK_SUPPORT_DSNAME DSオブジェクト名称のサポート

解説

オブジェクト生成時に設定したDSオブジェクト名称(dsname)を再設定する。対象となるオブジェクトは、オブジェクトタイプ(type)とオブジェクトID(id)で指定する。

指定可能なオブジェクトタイプ(type)は、td_ref_dsname と同様である。

設定可能なDSオブジェクト名称の仕様は以下の通りとするが、μT-Kernelでは文字コードのチェックを行わない。

使用可能文字(UB)

a~z, A~Z, 0~9, _

名称長

最大8バイト(満たない場合は'\0'で埋める)

DSオブジェクト名称は、オブジェクトの属性に、TA_DSNAME が指定されている場合に有効である。TA_DSNAME 属性が指定されていないオブジェクトを対象とした場合は、エラー E_OBJ となる。