スマート・コンフィグレータ要望 多重割込

主にRXでスマート・コンフィグレータを使っています。

現状では割り込み設定で多重割込の許可が出来ません。

生成された割込ハンドラに割り込み許可を入れれば良いのですが、個別のファイルを変更する必要があります。

優先レベルや高速割り込みの設定と同様に「割り込み設定」タブから一覧で設定できると、全割り込みの設定が俯瞰できて非常に便利です。

ご検討をお願いします。

Top Replies

Parents
  • チョコです。

    本件に賛成です。

  • チョコさん、賛同ありがとうございます。

    追加で、RXでのDTC設定で要望があります。

    「転送モード=リピート転送モード」にすると、割り込み設定で「指定されたデータ転送終了時、CPUの割り込みが発生」が無効化されて指定できなくなります。

    割り込みが使えないと困るのでは?という配慮からだと思いますが、これはハードウェアマニュアルにも記載されている正しい動作なので選択できるようにして欲しいです。

    もう1つ、DTC/DMAのアドレスに即値しか指定できないのは不便です。

    「0x8A026」では何がやりたいのか分かりません。「&SCI1.RDR」のようにシンボルが指定できると便利です。

    当然この場合は、シンボルへの外部参照またはヘッダのインクルードは自分で追加する必要がありますが。

    これらの要望は出来る/出来ないではなく、スマート・コンフィグレータ自身にドキュメントに近い役割を持たせられるというメリットがあります。

    ご検討をお願いします。

  • windyponさん、チョコさん

    シェルティです。こんにちは。ルネサスの中の人です。

    私も本件に賛成です。スマートコンフィグレータチームとデバイスドライバ開発チームと相談してみます。

    特に多重割り込みについては私もユーザとして「割り込み設定タブ」で俯瞰したいと感じておりました。

    DTC/DMAについても要望を出しておきます。

    以上です

  • シェルティさん、ご対応ありがとうございます。

    欲を言えば、RXv3コアのレジスタバンクの指定機能も欲しいですね。

    というか、 #pragma interrupt で設定できる項目には全て対応して欲しいです。せっかくマイコンとコンパイラに便利な機能があるのに、ツールが対応していないのはもったいないです。

    現バージョンのスマート・コンフィグレータでの割り込みハンドラ出力は以下のようになっていて、設定に関わらず同じ出力コードで高速割り込みに対応するようになっています。

    多重割込許可やレジスタバンクに対応するとこの出力コードを設定に合わせて変える必要があり、手間がかかる事が現時点で未対応の理由なのかな?と邪推してます。

    #if FAST_INTERRUPT_VECTOR == VECT_RIIC0_TXI0
    #pragma interrupt r_I2C_transmit_interrupt(vect=VECT(RIIC0,TXI0),fint)
    #else
    #pragma interrupt r_I2C_transmit_interrupt(vect=VECT(RIIC0,TXI0))
    #endif
    static void r_I2C_transmit_interrupt(void)
Reply
  • シェルティさん、ご対応ありがとうございます。

    欲を言えば、RXv3コアのレジスタバンクの指定機能も欲しいですね。

    というか、 #pragma interrupt で設定できる項目には全て対応して欲しいです。せっかくマイコンとコンパイラに便利な機能があるのに、ツールが対応していないのはもったいないです。

    現バージョンのスマート・コンフィグレータでの割り込みハンドラ出力は以下のようになっていて、設定に関わらず同じ出力コードで高速割り込みに対応するようになっています。

    多重割込許可やレジスタバンクに対応するとこの出力コードを設定に合わせて変える必要があり、手間がかかる事が現時点で未対応の理由なのかな?と邪推してます。

    #if FAST_INTERRUPT_VECTOR == VECT_RIIC0_TXI0
    #pragma interrupt r_I2C_transmit_interrupt(vect=VECT(RIIC0,TXI0),fint)
    #else
    #pragma interrupt r_I2C_transmit_interrupt(vect=VECT(RIIC0,TXI0))
    #endif
    static void r_I2C_transmit_interrupt(void)
Children
No Data