マルチレート グラフでは、すべてのカーネルが同じ反復回数実行される必要はありません。このような場合、タイミング調整された実行モデルの方が検証に適しています。wait
および end
API には、サイクル タイムアウトを指定する正の整数を使用するバリエーションがあります。これは、プロセッサをディスエーブルにして戻すまでに API 呼び出しがブロックする AI エンジンのサイクル数です。ブロッキング条件は、グラフの終了イベントに依存しません。タイムアウト時のグラフのステートは、どのステートでもかまいません。
#include "project.h"
simpleGraph mygraph;
int main(void) {
mygraph.init();
mygraph.run();
mygraph.wait(10000); // wait for 10000 AI Engine cycles
mygraph.resume(); // continue executing
mygraph.end(15000); // wait for another 15000 cycles and terminate
}
注記:
resume()
API は、最初のタイムアウトの後、実行を停止した時点から再開するのに使用します。resume
は、タイマーをリセットし、AI エンジンをイネーブルにするだけです。AI エンジンの実行が終了した後に resume
を呼び出しても、何も起こりません。