We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TDSP_execute_pl_as_task_list の返り値を boolean にして、まだ実行すべきタスクがあるかもしれない(偽陽性があっていい)ときに true、タスクリストを空振りしたときに false を返すようにしたい。 こうすると、false が返った場合は次のサイクル(tick)まで CPU を寝かせることができるようになり、省電力化の道が拓ける。 タスクリストの空振りで 1ms の間 CPU を無駄にぶん回すのは現代のマイコンでは大変もったいない。 厳密には、C2A_core_main の返り値まで伝播させないといけない。
TDSP_execute_pl_as_task_list の返り値を boolean にして、上記のような仕様で返り値を返すようになったら。
次の task までの残り step 数を返り値にするという案もあったが、CPU はどうせ 1ms ごとにタイマ割り込みで起きるし、true/false の方がシンプルだろうということになった。
呼び出し側はこんな感じになるのを想定:
void main_loop(void) { for (;;) { while (C2A_core_main()) { /* noop */ } wfi(); // Arm を寝かすやつ } }
The text was updated successfully, but these errors were encountered:
つまり,時刻が進んだ瞬間に再度 TDSP_execute_pl_as_task_list を呼ぶようにすることができる(それまでは寝る)
TDSP_execute_pl_as_task_list
Sorry, something went wrong.
これ、じわっと優先度上げていきたいです。 今後使う CPU が高性能になればなるほど、CPU を空回りさせたときの電力・熱的な問題が大きいためです。
PLはO(1)でキュー残量がわかるので,キューに残ってるタスク数(コマンド数)を返却するので良さそう
C2A_core_main の返り値も変えないとだめそうね.かえます
C2A_core_main
void C2A_core_main(void) { TDSP_execute_pl_as_task_list(); WDT_clear_wdt(); }
なので, TDSP_execute_pl_as_task_list を呼び出してから C2A_core_main を抜けるまでの間に ti が進んでしまうとだめ(次のタスクが実行される時間が1 ckock 後ろにずれてしまう).
なので,runtime 側で
割り込み停止 if `現在時刻で実行すべき残りタスク数` 割り込み再開 wait for interupt endif
みたな構成にする.
@sksat FYI ですが,現在時刻で実行すべき残りタスク数 を返す関数が,runtime 側に公開される関数として追加されそうです.
現在時刻で実行すべき残りタスク数
No branches or pull requests
詳細
TDSP_execute_pl_as_task_list の返り値を boolean にして、まだ実行すべきタスクがあるかもしれない(偽陽性があっていい)ときに true、タスクリストを空振りしたときに false を返すようにしたい。
こうすると、false が返った場合は次のサイクル(tick)まで CPU を寝かせることができるようになり、省電力化の道が拓ける。
タスクリストの空振りで 1ms の間 CPU を無駄にぶん回すのは現代のマイコンでは大変もったいない。
厳密には、C2A_core_main の返り値まで伝播させないといけない。
close条件
TDSP_execute_pl_as_task_list の返り値を boolean にして、上記のような仕様で返り値を返すようになったら。
備考
次の task までの残り step 数を返り値にするという案もあったが、CPU はどうせ 1ms ごとにタイマ割り込みで起きるし、true/false の方がシンプルだろうということになった。
呼び出し側はこんな感じになるのを想定:
The text was updated successfully, but these errors were encountered: