This service is available only in Japanese-language.
現在nanosleep()関数を使用して1ms待つ処理を入れて、
その前後にclock_gettime()で時刻を取得して本当に1ms待っているのか?
というPGを作成してリアルタイム性の調査をしています。
カーネルバージョンが異なるLinux(CPUも違いますが)での検証結果が以下の通りになりました。
CPU |カーネルVer |結果
Intel Atom E3940, 1.6 GHz, 4 cores |5.2.20-rt9-yocto-preempt-rt|1.016ms(1000回計測の平均値)
Intel® ATOMTM N455 1.66GHz 2 cores|3.8.13-rt2-yocto-preempt-rt|1.922ms(1000回計測の平均値)
CPUの処理速度の違いもあるかと思うのですが、Linuxのカーネルバージョンによっても違いがあるのかと考えており、
カーネルのタイマー割り込み周期の確認を行いたいのですが、
Yoctoのビルド環境のどこにその設定があるか分かりません。
Linuxに対してもまだまだ勉強不足なので、そもそもカーネルのタイマー割り込み周期は確認できるのか、
確認できれば周期を変更することは可能なのか、ご教授いただければ幸いです。
yakuhito
2021/8/3 (火) 17:58
カーネルのコンフィグレーション及びソースコードを参照ください
カーネルのコンフィグレーションは、bitbake linux-xxx(使用しているカーネルレシピ名) -c menuconfig で確認可能です。
変数HZにどの値が設定されているか(intel アーキテクチャの場合は1000)になっているかと。
カーネルのソースは、$TMP_DIR/$MACHINE/kernel-source/ 以下に展開されています。
A.H
2021/8/26 (木) 11:39
ご回答ありがとうございます。
返信が遅くなり申し訳ありません。
ご提示していただいた箇所を確認してみます。