こんにちは。NoMaYです。今首を傾げているのですが、以下のドキュメントによると、e2 studio v7.5.0ではAmazon FreeRTOSプロジェクトに於いてスマートコンフィグレータでRTOS Objectコンポーネントというものが使用出来る/存在するらしいのですが、これは単なるFreeRTOSプロジェクトでは使用出来ない/存在しないものなのでしょうか?(スマートコンフィグレータウィンドウの、コンポーネントタブ上に表示されない&コンポーネント追加ダイアロにも表示されない、ので、そうなのかな、とは思っているのですが、Amazon FreeRTOSプロジェクトとFreeRTOSプロジェクトで、このような部分で違っているのが意外でしたので、、、)e2 studio 7.5.0 Release Notewww.renesas.com/jp/ja/doc/products/tool/doc/016/r20ut4556ee0101-e2studio.pdfPage 17 of 72「New Amazon FreeRTOS Configuration user interface provide within e2 studio 7.5 featuring:● Imported FreeRTOS project with pre-loaded FreeRTOS Components (Object, Kernel and Amazon Libraries).略o FreeRTOS Object configuration: allow user to be able to create, configure multiple FreeRTOS objects using GUI (Tasks, Semaphores, Queues, Software Timers, Event Groups, Message Buffers, Stream Buffers)o Create/Remove FreeRTOS Objects with user friendly UI.略」ちなみに、プロジェクトの生成では、コンパイラはCC-RX V3.01、デバイスはR5F565NEDxFP、に設定して試しました。
こんにちは。NoMaYです。実は、FreeRTOS v10.3.1のRXマイコンのRTOSDemoプロジェクトがどれだけビルド可能な状態なのか調べている最中から思っていたことですが、e2 studio v7.8.0でビルド出来るものが殆ど無い、という状況はFreeRTOS.orgの人やAWSの人に起因する訳では無く、e2 studioに起因するものですね。それとは対照的に、EWRXのRTOSDemoプロジェクトは(プロジェクトファイルフォーマットのアップデートを要求されこそすれ)殆ど今でもビルドすることが出来ました。また、ビルド出来ない理由のもうひとつの理由はHEWプロジェクトであることなのですが、最近のe2 studio v2020-xxではHEWプロジェクトのコンバータが既に削除されていて、これもe2 studioのスタンスを表しているのかな、という気がします。ただ、実は、現実として、e2 studio v7.8.0のHEWコンバータでは所詮正しくコンバート出来ずにビルドに失敗してしまいますので、そういった現実も関係しているのかな、という気もします。他方、CS+はV8.04.00でもHEWプロジェクトをコンバートすることが出来ますし、e2 studioと違いビルドも成功してくれます。なので、RTOSDemoプロジェクトがビルド出来ない件を修正する時はCS+プロジェクトを同梱する方向にするのが今後の為に良いかも知れない、と思い始めています。(ただ、HEWのGNURXプロジェクトは扱えませんけれども。あと、動くかどうかはボードが無く不明ですけれども。)ちなみに、上記のCS+での事で思ったのですが、e2 studio v2020-xxでHEWプロジェクトをビルド出来るようにコンバートしたい場合、CS+をインストールして、CS+でHEWプロジェクトを読み込み、CS+でrcpeファイルを出力させ、rcpeファイルをe2 studioで読み込み、e2 studioのネイティブなプロジェクトに変換する手が確実なのでは無いかと思います。とりあえず、ビルドは出来るようになりました。(繰り返しになりますが、HEWのGNURXプロジェクトは扱えませんし、動くかどうかはボードが無く不明です。)以下、ビルドチェック結果の一覧です。(なお、マルチコンフィギュレーション型のプロジェクトファイルになっていて、かつ、HEWプロジェクトでたまに遭遇するそもそもビルドエラーになってしまうコンフィグレーションが含まれている、というもののようですので、ちゃんとビルド出来るコンフィグレーションを選択しておかないとビルド出来ませんのでちょっと注意が必要です。)
e2 studio v2020-07 CS+ V8.04 e2 studio v2020-07(CS+経由) CC-RX CC-RX CC-RXRX200_RX210-RSK_Renesas N/A(HEW) Pass PassRX600_RX62N-RDK_Renesas N/A(HEW) Pass PassRX600_RX62N-RSK_Renesas N/A(HEW) Pass PassRX600_RX63N-RDK_Renesas N/A(HEW) Pass PassRX600_RX630-RSK_Renesas N/A(HEW) Pass Pass
こんにちは。NoMaYです。あと、FreeRTOS v10.3.1のRXマイコンのRTOSDemoプロジェクトがどれだけビルド可能な状態なのか調べている最中から思っていたことですが、ビルド出来るようにすることはそんなに難しくないと思っていて、とはいえ動作確認をどうしようか?というところで思い悩んでしまうのです。ただ、ビルド出来ない状態でそれを思い悩むのも何だかなぁという気がしてきたので、来週からぽつぽつビルド出来るようにしてみようかと思い始めました。HEW時代のもの(と同時代のEWRXのもの)を外すと以下になり、どれもRXスマートコンフィグレータでサポートされているデバイスなので、やっておくのも悪くないかもなぁ、と思い始めましたので。
e2 studio e2 studio EWRX CC-RX GNURX ICCRX RX100_RX113-RSK_GCC_e2studio_IAR - Fail Pass RX100_RX113-RSK_Renesas_e2studio Fail - - RX100-RSK_GCC_e2studio ← RX111です - Fail - RX100-RSK_IAR ← 同上 - - Pass RX100-RSK_Renesas_e2studio ← 同上 Fail(*) - - RX200_RX231-RSK_GCC_e2studio_IAR - Fail Fail RX200_RX231-RSK_Renesas_e2studio Pass - - RX600_RX64M_RSK_GCC_e2studio - Fail - RX600_RX64M_RSK_Renesas_e2studio Fail - - RX700_RX71M_RSK_GCC_e2studio_IAR - Fail Pass RX700_RX71M_RSK_Renesas_e2studio Pass - -
シェルティさん、こんにちは。NoMaYです。夏季休業中のところ申し訳ないのですけど、Dinh Van Namさんのプルリクエストで問題が発生してしまいました。Dinh Van Namさん(ルネサス社のベトナム法人?)も日本に合わせて夏季休業中かも知れませんが、ひとまず問題が発生していることをお伝えしておきます。(私の方から夏季休業中だけどもルネサスさんに連絡したことを、私がアマゾンさん([追記]←違うのかも)に伝えられれば、ひとまず良いのかな、という気がしますので、あとは休業明けのアクションで良いかな、という気がします。)Update Renesas GCC compiler #89github.com/FreeRTOS/FreeRTOS-Kernel/pull/89#issuecomment-673001361
シェルティさん、こんにちは。NoMaYです。Dinh Van NamさんのGNURX向けポートレイヤのFreeRTOS kernelのプルリクエストが他の方の支援もあってマージされましたが、良く見てみたら、以前に私が指摘した以下の間違いに起因するものと思われるGCC/RX200ポートレイヤの間違いが含まれていました。以前からあるRenesas/RX200ポートレイヤがRXv1コア搭載RX200マイコン向けポートレイヤでしたので、プルリクエストで追加されたGCC/RX200ポートレイヤがRXv2コア搭載RX200マイコン向けなのはさすがにチグハグかと思います。Dinh Van Namさんには申し訳ないですが、いったん追加されたGCC/RX200ポートレイヤを削除するプルリクエストを出そうかと思います。なお、FreeRTOS kernelにも投稿していますが、どのポートレイヤを使うかは以下のようになると思います。> あと、調査を始めたところですが、RXv2コアのRX231でRXv1コア用のRX200ポートレイヤを使うのは間違いな気がします。また、RXv3コアの品種でRXv2コア用のRX600v2ポートレイヤを使うのも間違いな気がします。タスク切り替え時にFPSWや倍精度浮動小数点レジスタが退避/復帰されないような気がします、、、[BUG] The newly added GCC/RX200 port is wrong. #139github.com/FreeRTOS/FreeRTOS-Kernel/issues/139#issuecomment-680796172
RX MCU Group Port Layer CC-RX GNURX ICCRXRX111 Renesas/RX100 GCC/RX100 IAR/RX100RX113 Renesas/RX100 GCC/RX100 IAR/RX100RX210 Renesas/RX200 N/A N/ARX62N,RX621 Renesas/RX600 GCC/RX600 IAR/RX600RX630 Renesas/RX600 GCC/RX600 IAR/RX600RX63N,RX631 Renesas/RX600 GCC/RX600 IAR/RX600RX64M Renesas/RX600v2 GCC/RX600v2 IAR/RXv2RX71M Renesas/RX600v2 GCC/RX600v2 IAR/RXv2...RX13T Renesas/RX600 GCC/RX600 IAR/RX600RX230,RX231 Renesas/RX600v2 GCC/RX600v2 IAR/RXv2RX23W Renesas/RX600v2 GCC/RX600v2 IAR/RXv2RX65N Renesas/RX600v2 GCC/RX600v2 IAR/RXv2...
[関連リンク]Update Renesas GCC compiler ports #135github.com/FreeRTOS/FreeRTOS-Kernel/pull/135#issuecomment-680609307
シェルティさん、こんにちは。NoMaYです。もうひとつFreeRTOS RXパッケージ v10.0.03の問題点に気付きました。RX100ポートレイヤですが、このポートレイヤでは消費電力削減用のTICKLESS IDLEという機能が追加されていて、その差分の影響で、freertos_start.c内のTICK割り込み生成のCMT設定のvApplicationSetupTimerInterrupt()がポートレイヤから呼び出されなくなってしまっています。結果、[訂正]下記参照 このポートレイヤではCMTはCMT0固定になります。対処案ですが、近々では、CMT0以外は使えないという制限にするのが良いかと思います。その次は、プルリクエストには使えないことを承知の上でRX100ポートレイヤからTICKLESS IDLEという機能を削除して、他のポートレイヤと同じにするのが良いかと思います。(そして、そのポートレイヤはRXv1コア搭載RX200マイコン向けポートレイヤと等価になります。) その後、TICKLESS IDLEという機能をRX100ポートレイヤで復活させるのが良いかな、と私は思います。[訂正]下記参照 ただ、RX100ポートレイヤ内のvPortSuppressTicksAndSleep()という関数内でもCMTを触っていますので、その箇所をポートレイヤ内に残すのか、その部分を関数として切り出してfreertos_start.c内へ移すのか、そういうことを検討した方が良いのかな、とも思います。ちなみに、消費電力削減といってもwait()を使うケースだけなので、より多くのスタンバイモード(他品種対応とかディープソフトウェアスタンバイモード対応とか含む)に対応させるにはどうするのが良いか、とか考えるのも面白そうです。[訂正]先ほどコードを見ていた時には見落としたのですが、以下の記述がRX100ポートレイヤのport.cにありましたので、FreeRTOSConfig.cに以下の記述を追加すればポートレイヤがfreertos_start.c内のvApplicationSetupTimerInterrupt()を呼び出すようになります。ですので、TICKLESS IDLEという機能を使わない場合はそのように記述する、ということにすれば良いのかな、と思います。{Renesas/RX100, GCC/RX100, IAR/RX100}/port.c
* Sets up the periodic ISR used for the RTOS tick using the CMT. * The application writer can define configSETUP_TICK_INTERRUPT() (in * FreeRTOSConfig.h) such that their own tick interrupt configuration is used * in place of prvSetupTimerInterrupt(). */static void prvSetupTimerInterrupt( void );#ifndef configSETUP_TICK_INTERRUPT /* The user has not provided their own tick interrupt configuration so use the definition in this file (which uses the interval timer). */ #define configSETUP_TICK_INTERRUPT() prvSetupTimerInterrupt()#endif /* configSETUP_TICK_INTERRUPT */
frtos_config/FreeRTOSConfig.c
void vApplicationSetupTimerInterrupt(void);#define configSETUP_TICK_INTERRUPT() vApplicationSetupTimerInterrupt()
NoMaYさん こんにちは、シェルティです。 本件、AWSチームと会話し、現在進めているOTA込みのAWS認証には 以下プルリクエストは適用しない(FPU×RX130×GCCの組み合わせなど、影響範囲が小さいのでNGのまま)方向で進めてます。(AWS認証が一旦落ち着いたあとにマージ検討進める方向) github.com/.../146 github.com/.../152 > 消費電力削減といってもwait()を使うケースだけなので、 > より多くのスタンバイモード(他品種対応とかディープソフトウェアスタンバイモード対応とか含む)に > 対応させるにはどうするのが良いか、とか考えるのも面白そうです。 こちら、私も非常に興味がありますね。 Microchipは以下のようなアプリケーションノートを出しております。 ww1.microchip.com/.../Atmel-42204-SAM4L-Low-Power-Design-with-FreeRTOS_AP-Note_AT03289.pdf ルネサスもこういったOSの実装についてももっと追及していくべきですね。 特に低消費電力がアピールポイントのマイコンでは上記のような実装を徹底的に極めておくのは重要です。 昨今この機運が高まってはきているので、実現はしやすそうです。(技術ではなく政治に課題有) とはいえMicrochipはこのアプリケーションノートを7年前に発行していることから考えると まだまだルネサスはOS実装におけるアプローチについて精進しなければならないと感じます。 以上です
シェルティさん、こんにちは。NoMaYです。そもそも、プルリクエストをいつマージするか(或いはマージしないか)はアマゾンさん次第のことと思ってますので、まだまだあるビルド出来ない件など、こちらはやれることをやれるときにやるという感じで楽しんでいけば良いかなぁ、と思ってます。(こういった作業は結構好きなのです。) FreeRTOS-kernelリポジトリ案件の今後RX・Uncrustifyというソース整形ツールと整合性が取れるように全てのRXポートレイヤのソースを整形(RX700v3_DPFPU済)・IARポートレイヤがアセンブラソースでPriorityDefinitions.hというファイルを必要とする点の改善(RX700v3_DPFPU済)・MPU対応(気長に)・消費電力削減機能対応(気長に)RL78・IARポートレイヤの最新コンパイラ対応(作業済)(最低限のこと)のプルリクエスト・IARポートレイヤの改善(Applilet3,Applilet4との親和性の改善)・CC-RLポートレイヤの投稿(かふぇルネに今まで投稿したものを見直してから)・GNURL78ポートレイヤの投稿(かふぇルネに今まで投稿したものを見直してから)・割り込み専用スタックを持たせてRAM使用量を削減したい・消費電力削減機能対応(気長に)FreeRTOSリポジトリ案件の今後RX・最近のツールで容易にビルド出来るようにする(ようやく始めたところ)・動作確認をどうやるか考える(評価ボードを揃えるお金に困るほど貧乏では無いけれど)・e2 studioでFreeRTOSプロジェクトを生成出来る今にFreeRTOSデモプログラムの意義は何かを考える・FreeRTOSデモプログラムにもう少し多くのデモ項目(テスト項目)を追加したいなぁRL78・FreeRTOSデモプログラムの最新IARコンパイラ対応(作業済)(最低限のこと)のプルリクエスト・FreeRTOSデモプログラムのCC-RL版の投稿(かふぇルネに今まで投稿したものを見直してから)・FreeRTOSデモプログラムのGNURL78版の投稿(かふぇルネに今まで投稿したものを見直してから)楽しみながら気長にぼちぼちと、、、