#3連投の1つ目です。Simulatorでやってみました。Printf機能を、それぞれ使用しました。GUIにはLEDやButtonなどのGUI部品を並べたパネルを作成する機能がありますので、コード生成機能+FreeRTOSで割り込みを扱う簡単なプログラムを作成して、動作確認してみました。(今回は実機での確認をしてません。)以下、プロジェクトのファイル一式です。プロジェクト構造は極力RX版と同じにしてみました。GUIでLEDとButtonを配置したパネル、の画面コピーです。今回のプロジェクトのベースは、別スレッド『FreeRTOSをFITやCG(や追々PDG2でも?)と一緒に使うサンプルプログラムをCSplusでビルド出来るプロジェクトにしてみた』のCC-RL版とGNURL78版ですが、以下の小細工を追加しています。(なお、長時間運転の件は1年放置してしまっています。コード生成されたr_cg_vector_table.cにFreeRTOSのvPortTickISRとvPortYieldをスクリプトで自動ベクタ登録する(GNURL78)また、作業していて、以下の点には留意しておいた方が良さそうな気がしました。FreeRTOSのGNURL78版では割り込み用スタックが使用されるが多重割り込みに対応していない(他方CC-RL版では使用されない)以下、その詳細です。コード生成されたr_cg_macrodriver.hとFreeRTOSが使用するstdint.hとのint8_t/uint8_t等のtypedefの衝突の回避(CC-RL)幸い、FreeRTOSが使用するint8_t/uint8_t等のtypedefはr_cg_macrodriver.hに記述されているもので足りるようでしたので、以下のように小細工しました。コード生成されたr_cg_vector_table.cにFreeRTOSのvPortTickISRとvPortYieldをスクリプトで自動ベクタ登録する(GNURL78)今回、r_cg_vector_table.jsというスクリプトを作成して、ビルド時に自動的に実行されるようにしました。このスクリプトでr_cg_vector_table.cを以下のように書き換えます。FreeRTOSのvPortTickISRとvPortYieldの他にも利用出来るよう、ちょっと大げさに書き換えることにしました。R_Vector_0x7E,};そして、新規追加したr_cg_vector_table.hで以下のように任意のベクタを登録出来るようにしてみました。FreeRTOSのstream_buffer.cでCC-RLの「偶数アライメントのオブジェクトを指すポインタが奇数番地を保持しています」が出るCC-RLでコンパイルすると以下のワーニングが出ます。(GNURL78では出ませんがチェックしていないからです。stream_buffer.cの機能を使用するのであれば、問題無いかどうか確認してから使用する必要があります。(今回、ちょっと気力不足で、私はFreeRTOSのソースを調べていないです。)src\FreeRTOS\Source\stream_buffer.c(262):W0523082:偶数アライメントのオブジェクトを指すポインタが奇数番地を保持しています。src\FreeRTOS\Source\stream_buffer.c(275):W0523082:偶数アライメントのオブジェクトを指すポインタが奇数番地を保持しています。10.2.1のソースにCC-RL版はありませんので正確にはCC-RL版のベースにしたIAR版では使用されていない、ということなのですが、それに対してGNURL78版では以下のように割り込み用スタックへの切り替えが行われています。APIを多重割り込み内から呼び出すようなことをしたければ改造が必要です。demoのビルド時の画面コピーです。