Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

NiosII と RTOS について

2 184 vues

Publié le

NiosII と RTOS についてまとめてみました。

Publié dans : Logiciels
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

NiosII と RTOS について

  1. 1. NiosII と RTOS について (有)シンビー
  2. 2. OS 比較 RTOS API ライセンス 提供元 Linux × pthread GPL N/A ucLinux × pthread GPL N/A RT‐Linux ○ pthread GPL N/A TOPPERS ○ 独自 TOPPERS N/A μC3 ○ iTRON 商用 イーフォース NORTi ○ iTRON 商用 ミスポ T‐Kernel ○ T‐Engine 商用 eSOL eCos PRO ○ pthread LGPL eCos FreeRTOS ○ 独自 例外条項付きGPL FreeRTOS MicroC/OS‐II ○ 独自 商用 Micrium QNX ○ 独自 商用 QNX NiosII の標準。すぐに使えるようにテンプレートが用意されている
  3. 3. RTOS の理解 • RTOS ではタスクを有効に使う – RTOS のタスクはプライオリティを持っている • タスクはコンテキストを保持することが可能 – CPU を仮想化する技術 – CPU の使用率を上げることができる – 割り込みはコンテキストを保持できない • 割り込み処理では wait することができない • タスクの優先順位と割り込みを理解 → RTOS の理解
  4. 4. RTOSのタスクの役割 高 IDLE 低 優先順位を 管理 休眠中 タスク プライオリティをもって優先順位の管理を行う
  5. 5. ハードリアルタイム • システムに課せられたある処理がデッドライ ン内に終了しなかった時(デッドラインミス)、 システム全体にとって致命的ダメージが生じ る • デッドライン内での終了が保証されなければ ならないシステム。 Wikipedia より抜粋
  6. 6. ハードリアルタイム • ロケットの制御 • レポート提出期限 12/26 17:00  – 提出しなかったものは落第 デッドラインを過 ぎると価値が0
  7. 7. ソフトリアルタイム • デッドラインミスが起こっても、システム全体 に致命的なダメージを与えることはなく、その 処理自体の価値も、終了時間などにより徐々 に落ちていく Wikipedia より抜粋
  8. 8. ソフトリアルタイム • 動画の再生 • レポート提出期限 12/26 17:00  – 1分遅れるごとに1点減点 デッドラインを過 ぎると徐々に 価値が下がる
  9. 9. ポーリング処理 while(true){ wait(100); polling(); 処理() } MEMS Data 処理 Polling 処理 Polling
  10. 10. ポーリング処理(N G例) while(true){ wait(100); polling(); 処理() } MEMS Data 処理 Polling 処理 Polling コンフリクト 取りこぼし
  11. 11. while (true) { } 割り込みを使えばいいか? 処理() MEMS Data 処理 処理 割り込み発生後に 即座に他の処理をす ることは難しい 別の処理 別の処理 割り込み 高 低 割り込み
  12. 12. 割り込みの延長は? MEMS Data 他の割り込みの管理 が難しくなる 別の処理 別の処理 割り込み + 処理 割り込み + 処理
  13. 13. タスクでコンテキストを保持/切り替え 高 IDLE 低 優先順位を 管理 作業中 タスク(1つだけ) 作業を中断している 作業を中断している
  14. 14. 割り込みとRTOSで制御 MEMS Data タスク1 タスクスイッチ タスク2 割り込み OS TCP/IP タスク1 タスク2 割り込み OS 割り込み TCP/IP ACK等
  15. 15. 多くのRTOSの設計 TCP/IP 高 APP IDLE 低 ネットワークのタスク 高い優先度 ユーザアプリケーションの 優先度
  16. 16. RTOS アプリケーション設計上の注意 • プライオリティの設定 – RTOS の中には TCP/IP より高いプライオリティは 設定できないものもある • タスク設計 – タスク切り替えを考えると複数タスクに分割しな いほうがよいケースもある • 割り込みの管理 • 処理時間の見積もり
  17. 17. RTOS でも解決しない事 処理1 処理2 規定時間
  18. 18. 各方式比較 アプリ実装 事象への反応 必要RAM TCP/IP との相 性 ポーリング 易しい △ BRAM/外部RAM ○ 作り方によっては有力 な候補になる 割り込み 難しい ◎ BRAM/外部RAM ○ 簡単なシステムでは 採用 割り込み+優先順位 易しい △ BRAM/外部RAM ○ ポーリングと同じ 多重割り込み すごく難しい ◎ BRAM/外部RAM ○ 難しすぎるので通常 は採用しない RTOS 難しい ○ 外部RAM △ リアルタイムの性能を 考慮しやすい。
  19. 19. NiosIIのメモリ構成例(1) 0x0000 0000 8KBRAM 0x2000 0000 各種レジスタ 簡単なプログラムを置け る。FPGA の資源を使うた め通常は 8K や 16K 程 度。 RTOS やTCP/IP のスタック を置くことは難しいことが 多い。
  20. 20. NiosIIのメモリ構成例(2) 0x0000 0000 8KBRAM 0x2000 0000 各種レジスタ SOFの後にプログラムを 置くことができる。BRAM  等に展開する(Qsys が自 動的に作る) EPCS
  21. 21. NiosIIのメモリ構成例(3) 0x0000 0000 512KFlash ROM 0x2000 0000 各種レジスタ プログラムを置くことがで きる。不揮発性。アクセ スは高速ではない 1M SRAM/SDRAM 0x1000 0000 プログラムやデータを置 くことができる。揮発性の ため電源を切ったら情報 はなくなる。
  22. 22. NiosII で uC/OS II を使う方法 • Qsys によるシステムの構築 • Eclipse のテンプレート
  23. 23. Qsys によるシステムの構築(例) RTOS の為に Timer を追加。 RTOS の為にSDRAMを追加。
  24. 24. Eclipse のテンプレート RTOS の雛形が標準でついている

×