MATXのメモリ管理機構は,この問題を解決するのに適している。その方法は, リアルタイム処理を始める前に一度だけ,リアルタイム処理関数を呼び出すこと によって,リアルタイム処理中に必要なメモリをメモリ管理リストに登録するの である。
具体的には,関数rtStart()が実行されると,サンプリング時間毎の割り込み 処理が始まる前に1回だけon_task()が実行される。この1回目の実行中 かどうかは関数rtIsTesting()によって調べることができる。 このテスト中はアクチュエータから出力を出さないようにしなければならない。
関数on_task()に条件分岐あると,1回のテスト実行だけでは
on_task()の実行に必要なメモリを正確に調べることができない。
このような場合,全ての条件に関するテスト実行を
rtStartRehearsal() 条件1; on_task(); 条件2; on_task(); 条件3; on_task(); rtStopRehearsal()