Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Renesas TB-RX130/RX231/RX65N RTOS Demo and update Renesas RX72N Envision Kit RTOS Demo #3

Merged
merged 20 commits into from
Nov 2, 2020

Conversation

NoMaY-jp
Copy link

@NoMaY-jp NoMaY-jp commented Oct 2, 2020

TB-RX65N、TB-RX231、TB-RX130のFreeRTOSデモプログラムです。(かふぇルネの件です。) Renesas RX72N Envision KitのFreeRTOSデモプログラムも同じ動作/構成になるように修正しました。カーネル側の修正が必要ですので後でそちらもプルリクエストを出します。

AWSさんからのアドバイスのあったDemo/RISC-V_RV32_SiFive_HiFive1-RevB_IARに順ずるようにしたこと以外にも、以下のことを追加しました。

(1) The simple blinky demo's 'Blink' messages are sent to not only the UART but also the Debug Console.
(2) The full demo sends '.' pass messages and/or various fail status messages to the Debug Console.
(3) The following error messages can be displayed in the Debug Console if it is detected.
Assertion failed!
Insufficient heap memory!
Stack Overflow!
(4) Optimize stack size setting a little.
(5) Add dual(or triple) eval board support.
(6) Add task notification array demo/tests.

(*) Note that EWRX doesn't have the Debug Console.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@NoMaY-jp
Copy link
Author

NoMaY-jp commented Oct 7, 2020

すみませんが .gitignore を追加しようと思います。(今日明日ぐらいを考えています。)

@NoMaY-jp
Copy link
Author

NoMaY-jp commented Oct 7, 2020

すみませんが TB-RX231/RX65N RTOS Demo の .cproject を更新します。(RX72Nのプロジェクトをe2 studio上でRX231/RX65Nのプロジェクトへ変換したのですが、変更されるエントリの1つに他よりも遅れて .cproject 側へ反映されるものがあって、今までは気にしていなかったのですが、 .gitignore を追加したことで .cproject がいつのまにか書き換わることが目立つようになって気になるようになった為です。SRECファイルは変化しませんので、e2 studio内部では .cproject の読み込み時点で変更されてから読み込まれるようになっていたと思われます。)

@NoMaY-jp
Copy link
Author

NoMaY-jp commented Oct 8, 2020

すみませんが src/smc_workaround/IDE_patch.hを更新しようと思います。(明日中ぐらいを考えています。) e2 studioのCDTのINDEXER/CODANのワーニング対策だったのですが、RX72N限定にする条件コンパイル文が漏れていました。

#if defined(__CDT_PARSER__)

#if defined(__CCRX__)

/* Workaround for missing pre-defined macro in the Renesas Toolchain Builtin
 * Language Settings.
 */
#ifndef __TFU
#define __TFU 1
#endif

/* Workaround for wrong pre-defined macro in the Renesas Toolchain Builtin
 * Language Settings.
 */
#ifdef __DBL4
#undef __DBL4
#endif
#ifndef __DBL8
#define __DBL8 1
#endif

略

#endif /* defined(__CDT_PARSER__) */

@NoMaY-jp
Copy link
Author

NoMaY-jp commented Oct 15, 2020

新設"RX"ポートレイヤ対応にしました。なお、その他に以下の改造を加えています。

(1) コンテキスト切り替え時にレジスタが正しく退避/復帰されるかどうかのテストにアキュムレータを追加
(2) FreeRTOS kernel側でのINCLUDE_vTaskDelayUntil→INCLUDE_xTaskDelayUntilの変更にFreeRTOSConfig.hを追従

@NoMaY-jp
Copy link
Author

すみません、ICCRX版でbackward compatibilityを向上させるようにした件で、コメントのみですがFreeRTOSConfig.hを更新しました。そして、もういちどすみません、RX Smart Configuratorがアップデートされていることに気付きましたので、コードを再生成して木曜/金曜あたりに更新しようと思います。

@NoMaY-jp
Copy link
Author

すみません、RX Smart Configurator V2.7.0(e2 studio 2020-10)でコードを再生成しました。r_bspがv5.52→v5.61と更新されています。RX72N Envision Kit RTOS DemoではMOT/SRECが変化します(TB-RX130/RX231/RX65Nは同じままです)。

@NoMaY-jp
Copy link
Author

すみません、別のプロジェクトを作っていて、以下の2点の問題に気付きましたので、月曜ぐらいに更新します。

(1) EWRXでデバッグコンソール出力してしまうとデバッグ時に暫く実行した後にコンソール出力可能フラグをポーリングする箇所で無限ループする
(2) GNURXプロジェクトでnewlibを使うように設定しているにも関わらずインクルードパスにoptlibのヘッダのフォルダを含めてしまっていた

… from Renesas TB-RX130/RX231/RX65N and RX72N Envision Kit RTOS Demo projects
@NoMaY-jp
Copy link
Author

すみません、気付いた問題を修正していて、更に以下の点に気付きましたので、対策を検討中です。

(1) FullデモもSimpleBlinkyデモもUARTを接続する想定で作っていたが、RX-TBではボード単体ではUART入力のRxD1はプルアップされていないので、UART未接続時に(ボード単体時に)意図しないデータ受信でSimpleBlinkyデモが止まる場合がある。(Fullデモは止まることは無いが、ゴミデータが頻繁に受信されてしまうことも起こり得るので、あまり好ましい状況では無いと思われる。) UART未接続でも安定して動作する方が利便性が良いと思われるので、マイコン内蔵プルアップを有効にする等の対策をしたい。

(2) RX Smart Configurator V2.7.0/e2 studio 2020-10でコードを再生成したが、.scfgファイルの互換性が失われてしまっており、RX Smart Configurator V2.6.0/e2 studio 2020-07/e2 studio v7.8.0以前のバージョンでこの.scfgファイルを開いてコードを再生成すると、クロック系がメインクロック選択になってしまい、RX-TBで動作しないコードが生成されてしまう。(RSKやEnvision Kitでは動いてしまう可能性はある。) r_bsp_config.hのクロック系の#define値を幾つかチェックして、#errorを発生させることが出来ないか考えたい。

@NoMaY-jp
Copy link
Author

直近では、(2)はr_bspモジュールをv5.52→v5.61に更新しておけば(既に更新済み)、v5.61が単体で提供されていませんので、RX Smart ConfiguratorのプラグインまたはEXEで.scfgファイルを開いた時にコンポーネントが見付からないというエラー状態になって、その状態でコードを再生成する人は居なさそうなので、何もしないという選択肢もありそうですね。でも、念の為に、以下のコードをどこかに埋め込もうかと思います。そして、(1)と合わせて、明日/明後日あたりかな、と思います。

/* Check whether this code is generated correctly or not. */
#if (BSP_CFG_CLOCK_SOURCE != 1)
#error Invalid clock setting. The e2 studio 2020-10 / RX SmartConfigurator V2.7.0, or later, must be used \
to generate code correctly. (This code seems to be generated by older version of these tools.)
#endif

@HirokiIshiguro
Copy link
Collaborator

@NoMaY-jp さん、ありがとうございます。
本件マージに向けたレビュー開始しました。課題など出ましたらまた書き込みます。

…cally in TB-RX130/RX231/RX65N and RX72N Envision Kit RTOS Demo folders
@VanNamDinh VanNamDinh self-requested a review November 2, 2020 05:22
@VanNamDinh VanNamDinh merged commit 36358d8 into renesas:master Nov 2, 2020
@NoMaY-jp NoMaY-jp deleted the RXTB-RTOSDemo branch February 23, 2021 05:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants