FreeRTOS を更新

FreeRTOS カーネルを最新版に更新

ようやく、FreeRTOS で TCP、WiFi などを扱うので、この機会にカーネルを最新版にアップデートした。

以前は、バージョン番号で管理されていたが、最近は、更新日がバージョンとなっているようだ。

今回は「FreeRTOS V202011.00」となっている。

RX700v3 コア用のポートが追加された

RX72N などで、DFPU がサポートされた為、「RX700v3_DPFPU」のポートが追加された。

ただ、ソースコードを見ると・・・

#warning Testing for DFPU support in this port is not yet complete

とあるので、まだ、テストが完了していないようだ・・・
※現状のコードでは、コンパイルが通らない・・・

これは、つまり、「-dfpu」を有効にして、double の演算を行った場合は問題が起こると言う事なのか・・・
多分、double の演算を、一つのタスクで行い、他のタスクで利用しなければ問題無いと思うが・・・

FreeRTOSConfig.h の設定に関するメモ

  • このヘッダーは、基本、自分がサポートする RXマイコンで共有出来るようにしている。
  • メモリーモデルで「FreeRTOS/Source/portable/MemMang/heap_1.c」を利用する場合。(RX24T)
  • Makefile で「RTOS_HEAP_SIZE=10」などのようにサイズ(KB)を設定する。(RX24T)
  • メモリーモデルで「FreeRTOS/Source/portable/MemMang/heap_3.c」を使う場合は、内部で「malloc, free」を呼ぶ為、必要無い。
  • Plus TCP を使う場合、heap_4.c、heap_5.c を使う必要があるようなので、RTOS_HEAP_SIZE は設定する必要がある。
  • 独自のメモリアロケータを使うのには抵抗があるが、仕方無い・・・(以前に、微妙なバグで酷い目にあった事がある・・)

RX72N 用を追加

既に、オーディオプレイヤーなどで、FreeRTOS を利用していたが、サンプルのプロジェクトが無かったので追加した。

ソースコードなどを整理

合わせて、コードの整理、README.md、READMEja.md などを追加修正した。


次は、イーサーネットドライバーなどを整理して、ネットワーク関係に本格着手したい・・
※今まで、ルネサス社のネットスタックを使っていたが、FreeRTOS を使うようになると、より汎用的なネットスタックに移行する方が全ての面で恩恵が大きいものと思う。
シングルタスクで、ネット関係を運用するのは、かなり面倒で難しい問題が発生し、パフォーマンスを最適化するのも困難になる。