イベントトラッカー API

イベントトラッカーは、タスク・割り込み・タイマハンドラの実行時間や状態遷移を 時間軸に沿って記録する機能です。機能の概要・有効化・IDE上での表示方法、および 記録の開始/停止を行う SOLID_EVTTRK_Ctrl() と、データ保存領域を確保する 要実装関数 IMPL_EVTTRK_Init() については、イベントトラッカー を参照してください。

ここでは、それ以外の OS API について説明します。

これらの API を使用するには、solid_evttrk.h をインクルードしてください。

#include "solid_evttrk.h"

起動オプション

SOLID_EVTTRK_INFO

struct _SOLID_EVTTRK_INFO_

説明

イベントトラッカーの初期化情報を格納する構造体です。要実装関数 IMPL_EVTTRK_Init() の引数として渡されます。

定義

typedef struct _SOLID_EVTTRK_INFO_ {
    void* pBuffer;
    size_t bufSize;
    uint32_t option;
} SOLID_EVTTRK_INFO;

メンバー

void *pBuffer

イベントデータを保存する領域。NULL の場合は SOLID_HEAP 領域から取得します。

size_t bufSize

イベントデータの保存量(byte)

uint32_t option

起動オプション(SOLID_EVTTRK_OPTION_XXX の組み合わせ)

SOLID_EVTTRK_OPTION_NOSTART

起動オプション: 初期化のみ行い、記録を開始しません(値: 0x00000001)。

割り込み記録の指定

SOLID_EVTTRK_RecordInt

int SOLID_EVTTRK_RecordInt(int intno, int bEnable)

指定した割り込みをイベントトラッカーの記録対象とするかどうかを指定します。

パラメータ:
  • intno -- 割り込み番号

  • bEnable -- 記録する場合は1、記録しない場合は0

戻り値:

イベントログの記録

イベントID

SOLID_EVTTRK_EVTID_NONE
SOLID_EVTTRK_EVTID_TASKSWITCH
SOLID_EVTTRK_EVTID_TASKSTATUS
SOLID_EVTTRK_EVTID_IRQ_ENTER
SOLID_EVTTRK_EVTID_IRQ_LEAVE

SOLID_EVTTRK_LogI で指定するイベント種別です。

名前

説明

SOLID_EVTTRK_EVTID_NONE

0

イベントなし

SOLID_EVTTRK_EVTID_TASKSWITCH

1

タスク切り替え

SOLID_EVTTRK_EVTID_TASKSTATUS

2

タスク状態変化

SOLID_EVTTRK_EVTID_IRQ_ENTER

3

割り込みハンドラ開始

SOLID_EVTTRK_EVTID_IRQ_LEAVE

4

割り込みハンドラ終了

SOLID_EVTTRK_LogI

void SOLID_EVTTRK_LogI(int evtid, int tid, int param, int cpu)

イベントログを記録します。

パラメータ:
  • evtid -- イベントID

  • tid -- 対象のタスクID

  • param -- イベントに付随する値

  • cpu -- 対象のCPU番号

SOLID_EVTTRK_Tname

void SOLID_EVTTRK_Tname(int32_t tid, const char *tname)

タスクIDに表示名を登録します。(KMC_EVENTLOG_HAS_TNAME 定義時のみ)

パラメータ:
  • tid -- タスクID

  • tname -- タスク名(文字列, NULL終端)