2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RXマイコンでFreeRTOS入門 ~マルチタスクLチカ編~

Posted at

はじめに

RXマイコンでFreeRTOSの勉強を初めたので、
まずは簡単なLチカをやってみようと思います。

開発環境:e2studio
使用ボード:TARGET BOARD for RX23W module

手順

プロジェクト作成

  1. プロジェクトを新規作成します
    スクリーンショット 2023-05-09 152542.png
  2. プロジェクトを選択します(GCCを使用する人はそっちを選択してください)
    スクリーンショット 2023-05-09 152619.png
  3. プロジェクト名はLchikaとして次へ
    スクリーンショット 2023-05-09 152648.png
  4. RTOSにFreeRTOS(kernel only)を選択、使用ボードなどを設定します
    スクリーンショット 20スクリーンショット 2023-05-09 153027.png 23-05-09 152740.png
  5. プロジェクト設定を終了します
    スクリーンショット 2023-05-09 152801.png

スマートコンフィグレータの設定

  1. 次にスマートコンフィグレータを開き、コンポーネントのタブを開きます。
    スクリーンショット 2023-05-09 152854.png

  2. ポートのコンポーネントを選択します
    スクリーンショット 2023-05-09 152940.png

  3. LEDのポートを設定します(今回のボードはLED0がB0、LED1がC0)
    スクリーンショット 2023-05-09 1530.png

  4. LEDのポートを出力ポートに設定します(B0、C0)
    スクリーンショット 2023-05-09 153116.png

  5. 次にFreeRTOS_Kernelの設定を開き、TOTAL_HEAP_SIZEを20に設定します(20kB)
    スクリーンショット 2023-05-09 153236.png

  6. FreeRTOS_Object設定のTasksタブからtask1, task2を作成します
    スクリーンショット 2023-05-09 153311.png

  7. 以上の設定が終わったら「コードの生成」を押して自動生成します

タスクの中身を作成

  1. frtos_skeletonフォルダの中にtask1.cというファイルが生成されているので、画像のコードを書きます。
    300ms周期で点滅するようにしています
    スクリーンショット 2023-05-09 153457.png

  2. task2.cも同様にします。こっちは500ms周期で点滅させます。
    スクリーンショット58.png

  3. main_task関数にあらかじめ書いてあるwhileループを削除します
    スクリーンショット 2023-05-09 153604.png

ビルド&デバッグ

以上のコードをビルド、デバッグ実行することでLED0が300ms周期、LED1が500ms周期で点滅します
ダウンロード.gif

まとめ

スマートコンフィグレータをポチポチするだけでほとんど設定できて簡単にRTOSでLチカができましたね。
お疲れさまでした。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?