RXマイコンでCからC++のコードを実行したい

タイトルの通りです。前提は以下の通り、

  • 開発環境:e2studio 6.3
  • CCRX: v3.0.0
  • マイコン:RX71M

経緯

e2studioでC++プロジェクト生成した際に、intprg.cがintprg.cppになってくれないため、intprg.c上に記述した関数の実行先をC++のメソッドにしたいと思った

解決方法

以下の流れで参照の流れができていればよい。

//intprg.c
void Excep_CMT0_CMI0(void) {
     interrupt_func_cmt0();
}
//InteruptInterface.hpp
#ifdef __cplusplus
extern "C" {
#endif
void interrupt_func_cmt0(void);
#ifdef __cplusplus
}
#endif
//InterupptInterface.cpp

#include "InteruptInterface.hpp"

using namespace hogehoge;  // you can use namespace
void interrupt_func_cmt0(void) {
    // any proccessing below()
     LEDDriver::LED1_TURN_ON(); 
}

問題点

この状態では、publicstaticな関数しか指定できない。

JavaScriptのイベントのように、コールバック関数で、特定のオブジェクトのメソッドを唱えるには、 割り込み関数interrupt_func_cmt0内でうまくやる必要がある。

例えば、リアクティブプログラミングを参考に登録した関数を呼び出せれば、汎用性もあり、効率が良くなるだろう。