デフォルトの eCos 精度は1 ticks = 10 msです。
eCos OS が提供するcyg_current_time();
cyg_current_time を tick_per_one_ms で割って SystemTime_MS を取得できます。
(例えば)GetSystemTime = cyg_current_time() / 10;
私たちの精度でシステム時間を取得するにはどうすればよいですか?
私たちの精度のために1つの時間間隔を計算したい.
例 ( A() にかかった時間を知りたい):
startTime = GetSystemTimeUS();
A();
endTime = GetSystemTimeUS();
printf("A() cost %lu us.",endTime - startTime);
多くの方法を試しましたが、うまくいきませんでした。
- gettimeofday: eCos が実装しているように見えますが、それでもミリ秒の精度です。
- get tick: ただし、1 ティックは 10ms です。これは、コンテキストの切り替え時間がミリ秒の精度であることを意味します。
- タイマー、時計など....
私が言いたいのは、正確な精度で現在のシステム時刻を取得する関数を実装したいということです。