こんにちは。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のIAR向けポートレイヤで特定の品種のIOR定義ファイルがインクルードされてる、、、ここも直さなくちゃ、、、きっと、RTOSデモプログラム側を同時に直さないといけないかと思うので、Amazonさんに説明するのがちょっとややこしくなりそうですね、、、github.com/FreeRTOS/FreeRTOS-Kernel/blob/V10.4.0-kernel-only/portable/IAR/RX600/port.c#L40
/* Scheduler includes. */#include "FreeRTOS.h"#include "task.h"/* Library includes. */#include "string.h"/* Hardware specifics. */#include <iorx62n.h>
シェルティさん、こんにちは。NoMaYです。情報ありがとうございます。今朝、RXv3ポートレイヤを使うRTOSDemoプログラムがFreeRTOSのmasterにmergeされた(RXv3ポートレイヤ自体は先月のうちにFreeRTOS-Kernelのmasterにmergeされた)のですが、基本的なところでは変わり無い(というか私が参考にしたRX71Mより更に以前のものから基本的なところでは変わっていない)ような感じですね。それでも、細かいところに関しては、これから比べてみようと思います。TB-RX65N, TB-RX231, TB-RX130のFreeRTOSデモプログラムは、先日のリプライのように、以前のかふぇルネへの投稿の続きの投稿としてやるつもりでいたのですが、ひとまず形が出来たところで、ルネサスさんのFreeRTOSのForkにプルリクエストの形式で投稿してみましょうか?(GitHubではプルリクエストにDraftというマークを付けられるようなので、そのマークを付けておこうかと思います。)また、ポートレイヤ(とIAR向けRX600ポートレイヤに関するRTOSDemoプログラム側の修正とか)も区切り(というか纏まりというか)の良さそうなところで適宜プルリクエストの形式で投稿してみましょうか?どちらも、日本語で、のつもりですけれども。
シェルティさん、こんにちは。NoMaYです。では、FreeRTOSもFreeRTOS-KernelもルネサスさんのForkに適宜プルリクエストの形式で投稿していこうと思います。また、以前にもリプライしたような気がしますが、同じ内容でも私から投稿するよりルネサスさんから投稿した方がプルリクエストが早くマージされる可能性が高そうな気もしますので(これからは特に)、そのようにルネサスさんの方でお願いします。(あまり変わらなさそうであれば、遠回り感もありますので、また考えましょう。) それに、私の手元には実機が足りていませんので、RTOSDemoプログラムの対象の実機があれば、実機で動かしてすぐに確認が終わるようなことも、他の実機で確認出来るようにする為のプログラムの改造を考えて修正して確認しないといけませんので、その分の時間も必要だからです。(もっとも、他の実機というのは、より安価な実機ということに私の場合なりますので、そういう実機でも確認出来るようになることにも意義はあると思いますので、後追いという形になってしまうかとは思いますが、試行錯誤してみるかも知れないかな、とも思います。)なお、RL78はルネサスさんの方で受ける人が今のところ居なさそうなので、私からするようにします。(たぶん、居ないかな、と、、、)
シェルティさん、こんにちは。NoMaYです。別のブランチの中にあったのですね。では、RL78もそのようにしようと思います。(RL78/G14マイコンを使ったAmazon FreeRTOSもとうとう出来るようになったんですね。RL78/G14ですと、FreeRTOSは使われていませんが(いないと思いますが)、ルネサスさんでLoRaWAN対応もされていますね。)それで、週末か来週頭には、以下のTB-RX65N, TB-RX231, TB-RX130のFreeRTOSデモプログラムとRX72N Envision KitのFreeRTOSデモプログラムのRSK対応追加版、及びこれらのビルドに必要(+α)のカーネル修正、といったあたりをルネサスさんのForkに投稿しようか、と思います。FreeRTOSデモプログラムはコピペ(+力技)でどんどん作れるので、以下のようにちょっと数が多いです。ただ、RSKでの動作確認は私の方では出来ていないものですけれども。
Envision Kit TB RSK CC-RX GNURX ICCRXDemo/RX100_RX130_TB_GCC_e2studio ― レ △ ― レ ―Demo/RX100_RX130_TB_IAR_e2studio_EWRX ― レ △ ― ― レDemo/RX100_RX130_TB_Renesas_e2studio_CS+ ― レ △ レ ― ―Demo/RX200_RX231_TB_GCC_e2studio ― レ △ ― レ ―Demo/RX200_RX231_TB_IAR_e2studio_EWRX ― レ △ ― ― レDemo/RX200_RX231_TB_Renesas_e2studio_CS+ ― レ △ レ ― ―Demo/RX600_RX65N_TB_GCC_e2studio レ レ △ ― レ ―Demo/RX600_RX65N_TB_IAR_e2studio_EWRX レ レ △ ― ― レDemo/RX600_RX65N_TB_Renesas_e2studio_CS+ レ レ △ レ ― ―Demo/RX700_RX72N_EnvisionKit_GCC_e2studio レ ― △ ― レ ―Demo/RX700_RX72N_EnvisionKit_IAR_e2studio_EWRX レ ― △ ― ― レDemo/RX700_RX72N_EnvisionKit_Renesas_e2studio_CS+ レ ― △ レ ― ―
複数ボード対応は、以下のようにしてみました。src/FreeRTOS_Demo/demo_specific_io.hgithub.com/NoMaY-jp/FreeRTOS/blob/5bbe279/FreeRTOS/Demo/RX700_RX72N_EnvisionKit_GCC_e2studio/src/FreeRTOS_Demo/demo_specific_io.h#L31
/* Select one of the following defines. Note that you don't have tochange the target device. */ #if !defined(RSK_RX72N) && !defined(RPB_RX72N) //#define RSK_RX72N /* Renesas Starter Kit+ for RX72N */ #define RPB_RX72N /* Renesas Envision Kit RPBRX72N */ #endif略/* Board support settings. */ #ifdef RSK_RX72N略 /* Switches */ #define SW1 (PORT4.PIDR.BIT.B5) #define SW2 (PORT4.PIDR.BIT.B4) #define SW3 (PORT0.PIDR.BIT.B7) #define U_GPIO_PIN_SW1 (GPIO_PORT_4_PIN_5) #define U_GPIO_PIN_SW2 (GPIO_PORT_4_PIN_4) #define U_GPIO_PIN_SW3 (GPIO_PORT_0_PIN_7) /* LED port settings */ #define LED0 (PORT7.PODR.BIT.B1) #define LED1 (PORTH.PODR.BIT.B6) #define LED2 (PORTL.PODR.BIT.B7) #define LED3 (PORTL.PODR.BIT.B6) #define U_GPIO_PIN_LED0 (GPIO_PORT_7_PIN_1) #define U_GPIO_PIN_LED1 (GPIO_PORT_H_PIN_6) #define U_GPIO_PIN_LED2 (GPIO_PORT_L_PIN_7) #define U_GPIO_PIN_LED3 (GPIO_PORT_L_PIN_6) /* FreeRTOS CLI Command Console */ extern void R_SCI_PinSet_SCI9_RSK_RX72N(void); #define U_SCI_UART_CLI_PINSET() R_SCI_PinSet_SCI9_RSK_RX72N() #define U_SCI_UART_CLI_SCI_CH (SCI_CH9) #define U_DTC_UART_CLI_TX_ACT ((dtc_activation_source_t)VECT(SCI9,TXI9)) #define U_DTC_UART_CLI_TX_DR (SCI9.TDR) #endif /* RSK_RX72N */ #ifdef RPB_RX72N略 /* Switches (and its notation in the User's Manual) */ #define SW1/*(SW2)*/ (PORT0.PIDR.BIT.B7) #define U_GPIO_PIN_SW1/*(SW2)*/ (GPIO_PORT_0_PIN_7) /* LED port settings (and its notation in the User's Manual) */ #define LED0/*(LED2)*/ (PORT4.PODR.BIT.B0) #define U_GPIO_PIN_LED0/*(LED2)*/ (GPIO_PORT_4_PIN_0) /* FreeRTOS CLI Command Console */ #define U_SCI_UART_CLI_PINSET() R_SCI_PinSet_SCI2() #define U_SCI_UART_CLI_SCI_CH (SCI_CH2) #define U_DTC_UART_CLI_TX_ACT ((dtc_activation_source_t)VECT(SCI2,TXI2)) #define U_DTC_UART_CLI_TX_DR (SCI2.TDR) #endif /* RPB_RX72N */略
/* Select one of the following defines. Note that you don't have to
change the target device. */
#if !defined(RSK_RX72N) && !defined(RPB_RX72N) //#define RSK_RX72N /* Renesas Starter Kit+ for RX72N */ #define RPB_RX72N /* Renesas Envision Kit RPBRX72N */ #endif略/* Board support settings. */ #ifdef RSK_RX72N略 /* Switches */ #define SW1 (PORT4.PIDR.BIT.B5) #define SW2 (PORT4.PIDR.BIT.B4) #define SW3 (PORT0.PIDR.BIT.B7) #define U_GPIO_PIN_SW1 (GPIO_PORT_4_PIN_5) #define U_GPIO_PIN_SW2 (GPIO_PORT_4_PIN_4) #define U_GPIO_PIN_SW3 (GPIO_PORT_0_PIN_7) /* LED port settings */ #define LED0 (PORT7.PODR.BIT.B1) #define LED1 (PORTH.PODR.BIT.B6) #define LED2 (PORTL.PODR.BIT.B7) #define LED3 (PORTL.PODR.BIT.B6) #define U_GPIO_PIN_LED0 (GPIO_PORT_7_PIN_1) #define U_GPIO_PIN_LED1 (GPIO_PORT_H_PIN_6) #define U_GPIO_PIN_LED2 (GPIO_PORT_L_PIN_7) #define U_GPIO_PIN_LED3 (GPIO_PORT_L_PIN_6) /* FreeRTOS CLI Command Console */ extern void R_SCI_PinSet_SCI9_RSK_RX72N(void); #define U_SCI_UART_CLI_PINSET() R_SCI_PinSet_SCI9_RSK_RX72N() #define U_SCI_UART_CLI_SCI_CH (SCI_CH9) #define U_DTC_UART_CLI_TX_ACT ((dtc_activation_source_t)VECT(SCI9,TXI9)) #define U_DTC_UART_CLI_TX_DR (SCI9.TDR) #endif /* RSK_RX72N */ #ifdef RPB_RX72N略 /* Switches (and its notation in the User's Manual) */ #define SW1/*(SW2)*/ (PORT0.PIDR.BIT.B7) #define U_GPIO_PIN_SW1/*(SW2)*/ (GPIO_PORT_0_PIN_7) /* LED port settings (and its notation in the User's Manual) */ #define LED0/*(LED2)*/ (PORT4.PODR.BIT.B0) #define U_GPIO_PIN_LED0/*(LED2)*/ (GPIO_PORT_4_PIN_0) /* FreeRTOS CLI Command Console */ #define U_SCI_UART_CLI_PINSET() R_SCI_PinSet_SCI2() #define U_SCI_UART_CLI_SCI_CH (SCI_CH2) #define U_DTC_UART_CLI_TX_ACT ((dtc_activation_source_t)VECT(SCI2,TXI2)) #define U_DTC_UART_CLI_TX_DR (SCI2.TDR) #endif /* RPB_RX72N */略