こんにちは。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に投稿するようにしたいと思います。どうでしょうか?それでも、プルリクエストのような今あるソースコードに密着した細かい話では無いもの(あるいは細かい話になる前の段階のもの)に関しては、このまま、かふぇルネに投稿しようかと思うのです。