CC-RXのE0562142:Interrupt number XX of "vector" has multiple definitionリンクエラーはワーニング化すると原因を調べ易そうです

こんにちは。NoMaYです。

例えば以下のようなシンボル重複リンクエラーに関しては、以下のスレッドに投稿されていたように、L2300エラーメッセージをワーニングレベルに変更することで当該シンボルを定義した全てのファイルに対してメッセージを表示するようになりますので修正対象のファイルを確認し易くなります。最近、ベクタ重複リンクエラーも、同様に、E0562142エラーメッセージをワーニングレベルに変更することで幾らか原因を調べ易くなりそうなことに気付きましたので、参考までに投稿します。

シンボル重複リンクエラーの調査方法

例)

L2300 Duplicate symbol "_Excep_CMTU0_CMT0"

初めてのビルド
japan.renesasrulz.com/cafe_rene/f/002-2095199602/5401/thread/30511#30511

ベクタ重複リンクエラーの調査方法

例)

E0562142:Interrupt number "27" of "vector" has multiple definition

以下の画面コピーのようにE0562142エラーメッセージをワーニングレベルに変更する
→そうすると詳細MAPファイルが最後まで出力されるようになるので該当するベクタの割り込み関数を調べる
→→調べて見付けた割り込み関数が所望の割り込み関数で無ければその関数が原因である
→→調べて見付けた割り込み関数が所望の割り込み関数で有ればその関数のベクタ設定の#pragma interruptをコメント化する
→→→ビルドし直すと詳細MAPファイルの該当するベクタに別の割り込み関数が表示される筈なのでその関数が原因である

CS+のリンカ設定


e2 studioのリンカ設定


エラー時の詳細MAPファイル例(エラーなので初めの方しかない)

*** Options ***

-subcommand=DefaultBuild\sim_rx65n_freertos_full_demo.clnk
...略...
-show=all
...略...
-change_message=warning=2300
-total_size
-nologo
-end

*** Error information ***

E0562142:Interrupt number "27" of "vector" has multiple definition

ワーニング化時の詳細MAPファイル例(一応リンク完了するので最後まで出力される)

*** Options ***

-subcommand=DefaultBuild\sim_rx65n_freertos_full_demo.clnk
...略...
-show=all
...略...
-change_message=warning=2300,2142
-total_size
-nologo
-end

*** Error information ***

W0562142:Interrupt number "27" of "vector" has multiple definition

*** Mapping List ***
...略...

...略...

*** Variable Vector Table List ***

NO.    SYMBOL/ADDRESS
  0    _undefined_interrupt_source_isr
...略...
 27    _r_Config_ICU_software_interrupt ← これが所望の割り込み関数ではなかった
...略...

*** Cross Reference List ***
...略...

...略...