組み込み用タスクシステム

  • タスクを生成するコスト
    • メモリ配置
      • タスクを生成するとどのようなメモリの変化があるのか
    • ステップ数は?
    • 目安
      • 1s中、何個までなら速度に影響がないか
  • 多人数開発コントロール
    • タスクの管理
      • タスク生成関数の引数にIDを必須にする。登録が必要にしておく。
      • ダミーID対策。直値を入れても引数の型にtypedef enumを使用すればコンパイルエラーとなる。
      • HP上にタスクIDを生成するアプリ配置
      • makeかけるときにこのタスクIDDBからヘッダファイル生成。コンパイル時に矛盾チェックする。(登録してないタスクは定義エラーを起こすようにする)
    • ヒープの管理
      • ヒープ確保APIにもID登録。開放にもID必須にする。
      • 単純な開放忘れは grepでも排除できるようになる
  • メモリ管理
    • MITRONはヒープのメモリ空間が共通なので、管理は必要
    • ブロックサイズを固定にする(4の倍数がよいとされる)
    • なんとなくヒープ使用禁止。なるべくスタック化。ヒープはコスト高い。