マルチコア 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 を返します。