なんとかなるさね

マイコンをネタにブログを始めてみました


HEW | Renesas C/C++ Compiler + sh_converter/rx_converter + GDBでデバッグ 

e2studio V1.1とPleiadesの相性問題によりe2studioでRenesas C/C++ Compiler用のプロジェクトを正しく
生成出来なくなってしまったことで、ちょっと好奇心が浮かんで来ました。以前のエントリで以下の通り書き
ましたが、KPIT EclipseやRenesas Eclipseでは、sh_converter.exeやrx_converter.exeというプログラムで
Renesas C/C++ Compilerのリンカの出力ファイルを変換して、GDBでデバッグ出来るようにしています。

> KPIT Eclipseで、Renesas SHCやRenesas RXCのプロジェクト作成時にデフォルトのデバッグモードとして
> Debug using GDB simulatorやHardware Debugを選択すると、ビルド時に以下の処理が実行されました。
> (Renesas Eclipseも同様。) sh_converter.exeやrx_converter.exeというプログラムでDWARF情報を変換
> することで、Renesas SHCやRenesas RXCでコンパイル/リンクしたものがGDBでデバッグ出来るようです。
>
> Renesas SHCの場合
>
> 'Invoking: Debug Convertor'
> E:/tools/micom/KPIT/KPIT-Eclipse/DebugComp/SH/sh_converter.exe TestRenesasSHC.abs TestRenesasSHC.x
> Loading input file TestRenesasSHC.abs
> Parsing the ELF input file.....
> Converting the DWARF information....
> Constructing the output ELF image....
> Saving the ELF output file TestRenesasSHC.x
>
> Renesas RXCの場合
>
> 'Invoking: Debug Convertor'
> E:/tools/micom/KPIT/KPIT-Eclipse/DebugComp/RX/rx_converter.exe TestRenesasRXC.abs TestRenesasRXC.x
> Loading input file TestRenesasRXC.abs
> Parsing the ELF input file.....
> 25 segments required LMA fixes
> Converting the DWARF information....
> Constructing the output ELF image....
> Saving the ELF output file TestRenesasRXC.x
> No section requires swapping

よくよく考えてみると、sh_converter.exeやrx_converter.exeは、KPIT Eclipse上やRenesas Eclipse上で
KPITのプロジェクトジェネレータが生成したコードにしか使えないという可能性は低く、たぶん、HEW上で
HEWのプロジェクトジェネレータが生成したコードにも使える可能性が高いような気がします。

試してみたところ、HEW上でHEWのプロジェクトジェネレータが生成したコードにも使うことが出来ました。
(GDBを単体で使っても分かり難いので、いつものようにe2studioの中でGDBを起動しています。)

SHCの場合




RXCの場合




HEW上でsh_converter.exeやrx_converter.exeを起動させる為に、以下のようにHEWを設定しました。
 
SHCの場合





 Linker output converter for GDB
 sh_converter.exe
 $(PROJECTNAME).abs $(PROJECTNAME).x
 $(CONFIGDIR)


 PATH        E:\tools\micom\Renesas\e2-P-Helios\DebugComp\SH


 $(CONFIGDIR)\$(PROJECTNAME).x

 $(CONFIGDIR)\$(PROJECTNAME).abs


RXCの場合





 Linker output converter for GDB
 rx_converter.exe
 $(PROJECTNAME).abs $(PROJECTNAME).x
 $(CONFIGDIR)


 PATH        E:\tools\micom\Renesas\e2-P-Helios\DebugComp\RX


 $(CONFIGDIR)\$(PROJECTNAME).x

 $(CONFIGDIR)\$(PROJECTNAME).abs


追記 : メモ

HEWでMakefileを生成させてみると、sh_converter.exeやrx_converter.exeを起動する記述がありました。

SHCの場合

################################################
# Make file generated by HEW

途中省略

# Linker output converter for GDB05 phase

APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_EXE=sh_converter.exe
APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_OUTFILESC0="AppMain.x"
APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_DEPFILESC0="AppMain.abs"

途中省略

!MESSAGE
!MESSAGE Executing Linker output converter for GDB05 phase
!MESSAGE

APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_ENVC0 :
    set PATH=E:\tools\micom\Renesas\e2-P-Helios\DebugComp\SH

AppMain_Debug_Linker_output_converter_for_GDB05_INITDIRC0 :
    cd ..\AppMain\Debug

$(APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_OUTFILESC0) : $(APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_DEPFILESC0)
    "$(APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_EXE)" AppMain.abs AppMain.x

RXCの場合

################################################
# Make file generated by HEW

途中省略

# Linker output converter for GDB05 phase

APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_EXE=rx_converter.exe
APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_OUTFILESC0="AppMain.x"
APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_DEPFILESC0="AppMain.abs"

途中省略

!MESSAGE
!MESSAGE Executing Linker output converter for GDB05 phase
!MESSAGE

APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_ENVC0 :
    set PATH=E:\tools\micom\Renesas\e2-P-Helios\DebugComp\RX

AppMain_Debug_Linker_output_converter_for_GDB05_INITDIRC0 :
    cd ..\AppMain\Debug

$(APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_OUTFILESC0) : $(APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_DEPFILESC0)
    "$(APPMAIN_DEBUG_LINKER_OUTPUT_CONVERTER_FOR_GDB05_EXE)" AppMain.abs AppMain.x

関連記事

2012/10/05   blog-entry-197   category: HEW

go page top