Skip to content

Latest commit

 

History

History
48 lines (37 loc) · 4.51 KB

File metadata and controls

48 lines (37 loc) · 4.51 KB

FreeRTOS Ver10.0.1 DemoProject for Renesas RX64M (CS+,CC-RX)

LED点滅サンプルVer1.00

 このデモはFreeRTOSv10.0.1をRenesas RX64Mマイコン用に移植したものです。2つのポートに接続されたLEDをそれぞれタスクで動作させる簡単なサンプルです。

 使用しているハードウェアはメカトロ工房様で販売されている「ルネサスRX64M小型マイコンボード」を使用しています。 E1エミュレータを使用したサンプルですが、JTAGインターフェース基板を自作しています。

 なお、ド素人の学生が趣味で作成しています。もしご利用の際はくれぐれも自己責任でお願いします。

参考にさせていただいたもの
 https://blog.goo.ne.jp/lm324/e/99f735aef942ce6b965cd2f985acdf73
 http://be-con.jp/shiryo/renesas-rx62-freertos-csprj.html
 https://www.freertos.org/RX64M_RTOS_Renesas_GCC_e2studio.html
大変参考になりました。ありがとうございました。

文字コードは UTF-8 を使用しています。

動作環境

サンプルコード内容

 PORTDのB6を1Hz、B7を5Hzで点滅させる2つのタスクをそれぞれ動かします。

 クロック発生回路とポート初期化をスマートコンフィグレータで設定しています。 FreeRTOSではカーネルタイマにコンペアマッチタイマ0(CMT0),コンテキストスイッチにソフトウェア割込み(SWINT)を使用しているので、その周辺機能は使用しないでください。カーネルタイマなどはソース改変すればCMT0以外のタイマも使えるはずです。

プロジェクト作成法

 自力でFreeRTOSプロジェクトを作るためのメモになります。サンプルコードのmain.cApplicationHook.cは公式サンプルコードを参考に作成しました。

  1. CS+でプロジェクト新規作成します。ここで自分はビルド設定(CC-RXのプロパティ)で文字コードをUTF-8に変更してしまいますが、SHIFT-JISのままでいけるかどうかは未検証です。ちなみにUTF-8の変更箇所はコンパイル・オプションで2か所、アセンブル・オプションで1か所です。
  2. スマートコンフィグレータで周辺機能の設定を必要があれば設定してください。ただし、コンペアマッチタイマ(CMT0)、ソフトウェア割込み(SWINT)はFreeRTOS側が使うので何もせずほっといてください。
  3. サンプルコードのFreeRTOSフォルダ以下をそのままプロジェクトフォルダにコピーしてプロジェクトに登録してください。
  4. サンプルコードのApplicationHook.cの中身はフック関数類を定義してあります。FreeRTOSConfig.hでフック関数の有無を設定できますが、取りあえず最小限のものだけ定義してあります。取りあえずこれもファイルごとコピーしてプロジェクトに登録してください。また、必要に応じて自力で関数の追加記述をしてください。
  5. サンプルコードのmain.cにあるvApplicationSetupTimerInterrupt()はカーネルタイマの初期設定で必ず必要です。関数を新規のmain.cにコピーするなり新たにソースファイル作るなり自由に定義してください。
  6. /FreeRTOS/FreeRTOSConfig.hを目的に合わせて設定してください。
  7. 各ユーザソースファイルでFreeRTOS.h, task.h, queue.hなど適切なヘッダをインクルードしてください。
  8. ビルドします。おそらく通る(はず?)。
  9. 任意でデバッグなどなど楽しんでください。

注意点

  • ソースコードの文字エンコードに UTF-8 を使用するため、ビルド設定をShift-JISからUTF-8に変更してあります。
  • FreeRTOSのメモリ管理ファイルは「heap_1.c」を使用しています。目的に応じて変更してください。/FreeRTOS/portable/heap_1.cに置いてあります。