マルチコア API

概要

マルチコア API は、セカンダリコア (core1) 上でタスク関数を反復実行するための API を提供します。

core1 で実行する関数は、戻り値で継続可否を制御します。

xmc::Core1TaskFunc

using xmc::Core1TaskFunc = bool (*)();

core1 で実行するタスク関数の型です。

関数が true を返すと次の反復へ進み、false を返すと core1 のタスクループを終了します。

グローバル関数

xmc::startCore1

XmcStatus xmc::startCore1(xmc::Core1TaskFunc task);

指定したタスク関数を core1 で起動します。

task は core1 上で繰り返し呼び出されます。 すでに core1 が起動済みの場合は失敗し、エラーコードが返されます。

戻り値は XmcStatus で、成功時は XMC_OK です。

xmc::stopCore1

XmcStatus xmc::stopCore1(uint32_t timeoutMs = 1000);

動作中の core1 を停止します。

timeoutMs には停止完了を待つ最大時間 [ms] を指定します。 停止要求後、タスクが終了しない場合はプラットフォーム実装に応じて core1 が強制的にリセットされます。

戻り値は XmcStatus です。成功時は XMC_OK、停止失敗時はエラーコードが返されます。

xmc::isCore1Running

bool xmc::isCore1Running();

core1 が現在タスクを実行中かどうかを返します。

core1 が起動中であれば true を、停止中であれば false を返します。