こんにちは。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です。GitHubのFreeRTOS-KernelのmasterにmergeされたDinh Van NamさんのGNURX向けポートレイヤなのですが、他の方の支援があってmergeされたものの、その方の修正に間違いがあって、RX100ポートレイヤが動作しなくなってしまっていることに気付きました。以下のように、上側コードの赤文字部分が下側コードに無く、当然ながら割り込み関数も割り込みベクタも意図通りに扱われません。portable/GCC/RX100/port.cDinh Van Namさんのプルリクエスト:
#if defined(configTICK_VECTOR)void vPortSoftwareInterruptISR( void ) __attribute__((naked, vector( R_BSP_SECNAME_INTVECTTBL, VECT_ICU_SWINT )));#elsevoid vPortSoftwareInterruptISR( void ) __attribute__((naked));#endif
#if defined(configTICK_VECTOR)void vPortTickISR( void ) __attribute__((interrupt( R_BSP_SECNAME_INTVECTTBL, _VECT( configTICK_VECTOR ) )));#elsevoid vPortTickISR( void ) __attribute__((interrupt));#endif
支援して下さった方の修正:
#if ( configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H == 1 ) R_BSP_PRAGMA_INTERRUPT( vSoftwareInterruptISR, VECT( ICU, SWINT ) ) R_BSP_ATTRIB_INTERRUPT void vSoftwareInterruptISR( void ) __attribute__( ( naked ) );#else /* configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H */ void vSoftwareInterruptISR( void ) __attribute__( ( naked ) );#endif /* configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H */
#if ( configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H == 1 ) R_BSP_PRAGMA_INTERRUPT( vTickISR, _VECT( configTICK_VECTOR ) ) R_BSP_ATTRIB_INTERRUPT void vTickISR( void ); /* Do not add __attribute__( ( interrupt ) ). */#else /* configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H */ void vTickISR( void ) __attribute__( ( interrupt ) );#endif /* configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H */
シェルティさん、こんにちは。NoMaYです。ビルド関係のプルリクエストですが、1つ足りていなかったです。以下がリストから漏れています。Upgrade GCC project files for e2 studio v7.8.0 in Demo/RX100-RSK_GCC_e2studio foldergithub.com/FreeRTOS/FreeRTOS/pull/264それで、私のプルリクエストなのですが、これで終わりではなくて、もうちょっと続くと思います。(既に出してある分のみならず、この後も新規のプルリクエストを出すつもりです。)最近GitHubに慣れてきて思ったのですが、かふぇルネのスレッドにそのリストを返信しても埋もれてしまって探し難いと思いますので、GitHubのルネサスさんのリポジトリにissueのページを追加して頂いて、そちらに投稿するようにしたいのですが、どうでしょうか?また、今現在、GitHubのルネサスさんのリポジトリには、FreeRTOS-KernelのForkはあるのですが、FreeRTOSのForkがありません。新規に出したいプルリクエストにFreeRTOSのリポジトリのものもあるのですが、FreeRTOSの方もForkして頂ければ、その分はそのFreeRTOSのForkの方のissueに投稿するようにしたいと思います。どうでしょうか?それでも、プルリクエストのような今あるソースコードに密着した細かい話では無いもの(あるいは細かい話になる前の段階のもの)に関しては、このまま、かふぇルネに投稿しようかと思うのです。
シェルティさん、こんにちは。NoMaYです。TB-RX65N, TB-RX231, TB-RX130のFreeRTOSデモプログラムですが、ちなみに、かふぇルネへの以下の投稿の続きの投稿として、以前から自分のリポジトリでは、やるつもりでいたものです。(それから、RL78/G14 Fast Prototyping Boardでやっていたような別のタイプのFreeRTOSサンプルプログラムも、これらのボードでもやるつもりでいます。static allocation, UART送受信, DMA/DTC, 等あるもの。)FreeRTOSをFITやCG(や追々PDG2でも?)と一緒に使うサンプルプログラムをCSplusでビルド出来るプロジェクトにしてみたjapan.renesasrulz.com/cafe_rene/f/forum21/4826/freertos-fit-cg-pdg2-csplus/32094#32094「作業結果的に、st1011さんが移植されたRX65N_TB_FreeRTOS_Full_Demo版を、FreeRTOS 10.2.1のソースとe2 studio v7.4.0で生成したFreeRTOSプロジェクトのソースを使って、CS+プロジェクトへ焼き直した形になりました。以下、プロジェクトのファイル一式です。(CS+ V8.01+CC-RX V2.03でビルド)(e2 studio用.project/.cproject等を同梱(zipファイルをe2 studioに直接インポート可能)) なお、長時間運転は検証中です。」japan.renesasrulz.com/cafe_rene/f/forum21/4826/freertos-fit-cg-pdg2-csplus/32081#32081「昨日の比較を踏まえて、まずは、e2 studioのFreeRTOSプロジェクトのフォルダ構成とグルー部分のソースを尊重しつつ、st1011さんがされたようなFull Demoの移植を、kern-gtさんがされたようにCS+で行う、ということをやってみようかなと思います。その時、スタンドアロン版のスマートコンフィグレータがRXファミリ Renesas FreeRTOSモジュールに現状は未対応のようですので、その代わりと言っては何ですが、出来るだけFreeRTOS 10.2.1のソースを使用するようにしようかと思います。それがうまく出来たら、RX231版/RX130版、GNURX版、C++プロジェクト版を作成する、というようにやってみようかなと思います。」RL78 FreeRTOS APIを特別なおまじない記述無しで割り込みルーチンから呼び出せるようにしてみた(CC-RL/GNURL78)japan.renesasrulz.com/cafe_rene/f/forum21/5845/rl78-freertos-api-cc-rl-gnurl78/34947#34947「ここまでのCall Walker (CC-RL+CS+)対応作業(+α)を纏めてzipファイルに固めました。なお、スタックサイズ設定は以下のようにfreertos_start.hに記述することにしました。(他方、今回のGNURL78での値はざっくり決め打ちの値です。GNURL78でのスタック使用量の妥当な見積もり方法に関しては後日考えます。)」「rl78g14fpb_freertos_sampleprog1_ccrl_c_csplus_20200503.zip (*1,*2,*3) 476KBrl78g14fpb_freertos_sampleprog2_ccrl_c_csplus_20200503.zip (*1,*2,*3) 465KBrl78g14fpb_freertos_sampleprog3_ccrl_c_csplus_20200503.zip (*1,*2,*3) 527KBrl78g14fpb_freertos_sampleprog1_gnurl78_c_e2v780_20200503.zip (*1,*2,*4) 418KBrl78g14fpb_freertos_sampleprog2_gnurl78_c_e2v780_20200503.zip (*1,*2,*4) 408KBrl78g14fpb_freertos_sampleprog3_gnurl78_c_e2v780_20200503.zip (*1,*2,*4) 469KBsampleprog1: UART送受信をDTCで行う版sampleprog2: UART送受信を割り込みのみで行う版sampleprog3: UART受信をリングバッファで行いUART送信を割り込みのみで行う版」