ログ出力

API

ログ出力関連のAPIを使用するには、solid_log.h をインクルードしてください。

#include "solid_log.h"

ログ出力APIは単純な出力のみを行い、排他処理は行っていません。SMP時に複数のCPUから ログ出力を行う際は、OSのログ出力機能(syslog等)をご利用ください。

ログ出力でVLINK使用時の注意 VLINKはCPU0でのみ有効です。SMP時にCPU0以外でログ出力をVLINK経由で 出力しようとした場合、その呼び出しは無視されます。

ログの出力先

SOLID_LOG_MODE_NONE
SOLID_LOG_MODE_BOTH
SOLID_LOG_MODE_IMPL

定数

名前

説明

SOLID_LOG_MODE_NONE

-1

ログ出力をしない

SOLID_LOG_MODE_BOTH

0

VLINK,IMPL両方に出す(VLINK使用不可時はIMPLのみ) (デフォルト)

SOLID_LOG_MODE_VLINK

1

VLINKのみ(VLINK使用不可時はなし)

SOLID_LOG_MODE_IMPL

2

IMPLのみ

SOLID_LOG_SetMode

void SOLID_LOG_SetMode(int mode)

ログ出力の設定を行います

パラメータ:

SOLID_LOG_PutChar

void SOLID_LOG_PutChar(char c)

1文字分ログ出力を行います

パラメータ:
  • c -- 出力を行う文字

SOLID_LOG_puts

int SOLID_LOG_puts(const char *s)

1文字列分ログ出力を行います

パラメータ:
  • s -- ログ出力を行う文字列へのポインタ

戻り値:

出力した文字数(byte)

SOLID_LOG_write

int SOLID_LOG_write(const char *s, size_t l)

指定された長さ分ログ出力を行います。

パラメータ:
  • s -- ログ出力を行うデータのポインタ

  • l -- ログ出力を行う長さ

戻り値:

出力したデータ数(byte)

SOLID_LOG_printf

int SOLID_LOG_printf(const char *fmt, ...)

指定された書式でログ出力を行います

パラメータ:
  • fmt -- 書式(printfと同等)

戻り値:

出力した文字数(byte)

SOLID_LOG_vprintf

int SOLID_LOG_vprintf(const char *fmt, va_list arg)

指定された書式でログ出力を行います

パラメータ:
  • fmt -- 書式(printfと同等)

  • arg -- 引数のリスト

戻り値:

出力した文字数(byte)

要実装関数

ログ出力関連の要実装関数の定義は、impl_log.h にあります。

#include "impl_log.h"

IMPL_LOG_Init

void IMPL_LOG_Init(void)

ログ出力を初期化します

ログ出力を行うデバイスの初期化を行ってください

IMPL_LOG_Putc

void IMPL_LOG_Putc(unsigned char c)

ログ出力を1文字分行います

パラメータ:
  • c -- 出力するキャラクタ

IMPL_LOG_Getc

char IMPL_LOG_Getc(void)

1文字受信します

この関数は入力(受信)機能を使用する場合(シェル等)にのみ必要です。ログ出力のみを 行う構成では実装する必要はありません。

戻り値:

受信したキャラクタ

IMPL_LOG_DataAvailable

int IMPL_LOG_DataAvailable(void)

受信データが存在するかをチェックします

IMPL_LOG_Getc と同様に、入力(受信)機能を使用する場合にのみ必要です。

戻り値:

  • 0: 受信データなし

  • 0以外: 受信データあり