HirokiNakaharaOboe-Tips

RTOS入門

はじめに

NiosIIやMicroBlaze?で使用可能なリアル(Real)タイム(Time)OS,
略してRTOS(アールトスと呼ぶ)の入門です。

AlteraのNiosIIDevelopmentKit?を購入すると uC/OS-IIのマニュアルが付属してくるのですが…。

microC_OSII.jpg

分厚い…(-_-;)
しかも、英語なのでなかなかとっつきにくいです。
この入門では一部を学習するだけですが、
少しでも知識があったほうがマニュアルを読みやすいでしょう。

XilixのMicroBlaze?については後日対応する予定です。
(この原稿執筆時点でISEがDesignSuite?に変更したため、
筆者が環境を準備できません。環境が整い、時間ができれば加筆します)

準備するもの・必要なスキル

準備するもの

  • de2_board.jpg FPGA。ここではTerasic社のDE2DevelopmentBoard?を使用します。 (後日他のボードも対応させる予定です)
  • PC(筆者はWindowsXP SP2を使用しています)
  • QuartusII (筆者のバージョンは8.0,32bit版)
  • NiosII Embedded Design Suite (筆者のバージョンは8.0)
    (筆者注:Xilinxのツールや昔のバージョンをインストールしたままですと
    バッティングすることがあります。特にcygwin系でよく起こりがちです。
    できればcygwin,xilinxのツール,昔のバージョンがインストールされてない
    環境を用意すべきだと思います。)

必要スキル

  • QuartusIIの使用法
  • C言語の知識
  • Verilogの知識(実践編で少々)
  • 折れない心(特にXilinxの開発者はA^^;)

目次

  1. そもそもRTOSとは
    1. RTOSについて
    2. 組込みシステムとRTOS
  2. 実行環境の構築
    1. 【演習】NiosII開発環境の構築
    2. 【演習】NiosIIデザインファイルのダウンロード
    3. 【演習】DE2Webプロジェクトの設置
    4. 【演習】さっそく動作を確認してみる
    5. 【演習】せっかくなのでシングルタスクで頑張ってみる
  3. 実際に動かしてみよう
    1. 【演習】2個のタスクを動作
    2. 【演習】タスクの起動順を変更
    3. 【演習】タスクの追加
    4. 【演習】7SEGを使った16進カウンタの設計
    5. 【演習】LEDを動かしてみる
    6. 演習問題
  4. RTOSの機能について
    1. 【演習】RTOSの時間機能を使ってみる(タスクの遅延実行)
    2. 【演習】マルチタスクプログラミングの練習
    3. タスクの状態
    4. プリエンプティブ方式コンテキストスイッチについて
    5. 【演習】ポーリングの実装(タスクの優先度の決定)
    6. タスクの優先度割り当て(RMSスケジューリング)
    7. 【演習】RTOSを使った電子サイコロの設計(タスクの停止・再起動)
    8. リソースの排他制御(セマフォ)
    9. 【演習】タスク間の同期(1)(リソースの競合の例)
    10. 【演習】タスク間の同期(2)(セマフォの使い方)
    11. 【演習】セマフォを使ったタスク間同期の練習
    12. 5人の哲学者(デッドロック)
    13. 【演習】デッドロックとは(セマフォのタイムアウト)
    14. 【演習】カウンタセマフォを使ったメモリ共有
    15. イベントフラグとは
    16. 【演習】イベントフラグを使ってみる
    17. タスク間のデータ通信
    18. 【演習】メッセージメールボックスを使ったタスク間通信
    19. 【演習】メッセージキューを使ったタスク間通信
    20. 割込みとは(MPUの例外処理)
    21. 【演習】NiosIIで割込みを使うには
    22. 演習問題
  5. RTOSの応用
    1. 【演習】PWMを使ってLEDをなめらかに点滅させる
    2. 【演習】携帯電話方式キー入力の実装
    3. 演習問題

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-18 (木) 15:53:31 (2897d)