なんとかなるさね

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


スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--   blog-entry-   category: スポンサー広告

go page top

Arduino IDE|GadgetRenesas基板用IDE4GR 1.6.5(のようなもの)を作るには? (3') 

GadgetRenesas基板用IDE4GR 1.6.5/1.6.7(のようなもの)を作ってみることを考え始めたのですが、KURUMI
基板用スケッチをビルドする時のリンク対象に含まれているpfdl.aとpicalicoFree.aのライブラリファイルを前の
エントリ
ではvariants\gr_kurumiフォルダから新しく作ったsystem\proprietary\libsフォルダへ移してみた
のですが、リンク対象に含めるライブラリファイルを指定する自由度がもうちょっとあればと思いつつArduino
Dueのボードパッケージのボード情報定義ファイルを見ていたところ、以下の記述があることに気付きました。

パッケージ: Arduino SAM Boards (32-bits ARM Cortex-M3) by Arduino version 1.6.6

ファイル: packages\arduino\hardware\sam\1.6.6\boards.txt
該当箇所:

arduino_due_x_dbg.name=Arduino Due (Programming Port)
途中省略
arduino_due_x_dbg.build.mcu=cortex-m3
arduino_due_x_dbg.build.f_cpu=84000000L
arduino_due_x_dbg.build.usb_product="Arduino Due"
arduino_due_x_dbg.build.board=SAM_DUE
arduino_due_x_dbg.build.core=arduino
arduino_due_x_dbg.build.extra_flags=-D__SAM3X8E__ -mthumb {build.usb_flags}
arduino_due_x_dbg.build.ldscript=linker_scripts/gcc/flash.ld
arduino_due_x_dbg.build.variant=arduino_due_x
arduino_due_x_dbg.build.variant_system_lib=libsam_sam3x8e_gcc_rel.a
arduino_due_x_dbg.build.vid=0x2341
arduino_due_x_dbg.build.pid=0x003e

arduino_due_x.name=Arduino Due (Native USB Port)
途中省略
arduino_due_x.build.mcu=cortex-m3
arduino_due_x.build.f_cpu=84000000L
arduino_due_x.build.usb_product="Arduino Due"
arduino_due_x.build.board=SAM_DUE
arduino_due_x.build.core=arduino
arduino_due_x.build.extra_flags=-D__SAM3X8E__ -mthumb {build.usb_flags}
arduino_due_x.build.ldscript=linker_scripts/gcc/flash.ld
arduino_due_x.build.variant=arduino_due_x
arduino_due_x.build.variant_system_lib=libsam_sam3x8e_gcc_rel.a
arduino_due_x.build.vid=0x2341
arduino_due_x.build.pid=0x003e

ファイル: packages\arduino\hardware\sam\1.6.6\platform.txt
該当箇所:

recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" -mcpu={build.mcu} -mthumb {compiler.c.elf.flags} "-T{build.variant.path}/{build.ldscript}" "-Wl,-Map,{build.path}/{build.project_name}.map" {compiler.c.elf.extra_flags} -o "{build.path}/{build.project_name}.elf" "-L{build.path}" -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--start-group "{build.path}/core/syscalls_sam3.c.o" {object_files} "{build.variant.path}/{build.variant_system_lib}" "{build.path}/{archive_file}" -Wl,--end-group -lm -gcc

そこで、ものは試しということで、KURUMI基板用ボード情報定義ファイルを以下のように変更してみました。

ファイル: arduino-1.6.5-r5\hardware\GadgetRenesas\rl78\platform.txt
変更内容: 赤字の箇所を追加

# AVR compile variables
# ---------------------
途中省略
# this can be overriden in boards.txt
build.extra_flags=
build.variant_core_lib="{build.variant.path}/core_v060.a"
build.variant_system_libs="{build.system.path}/proprietary/libs/picalicoFree.a" "{build.system.path}/proprietary/libs/pfdl.a"
途中省略

# AVR compile patterns
# --------------------
途中省略
#recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-M={build.path}/{build.project_name}.map" {object_files} --whole-archive "{archive_file_path}" --no-whole-archive "{build.variant.path}/core_v060.a" "{build.system.path}/proprietary/libs/picalicoFree.a" "{build.system.path}/proprietary/libs/pfdl.a" -e_PowerON_Reset "-T{build.variant.path}/{build.ldscript}" {compiler.c.elf.flags} "{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtbegin.o" "{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtend.o" "{runtime.tools.gcc-rl78.path}/rl78-elf/rl78-elf/lib/crtn.o" -o "{build.path}/{build.project_name}.elf" "-L{runtime.tools.gcc-rl78.path}/rl78-elf/rl78-elf/lib" "-L{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03" --start-group --gc-sections -lstdc++ -lnosys -lm -lc -lgcc --end-group
recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-M={build.path}/{build.project_name}.map" {object_files} --whole-archive "{archive_file_path}" --no-whole-archive {build.variant_core_lib} {build.variant_system_libs} -e_PowerON_Reset "-T{build.variant.path}/{build.ldscript}" {compiler.c.elf.flags} "{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtbegin.o" "{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtend.o" "{runtime.tools.gcc-rl78.path}/rl78-elf/rl78-elf/lib/crtn.o" -o "{build.path}/{build.project_name}.elf" "-L{runtime.tools.gcc-rl78.path}/rl78-elf/rl78-elf/lib" "-L{runtime.tools.gcc-rl78.path}/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03" --start-group --gc-sections -lstdc++ -lnosys -lm -lc -lgcc --end-group
以下省略

このようにしておくと、以下のような派生スケッチ環境のボード情報定義ファイルを作ることも出来そうです。

ファイル: sketchbook2\hardware\hitotsu_ueno_ane\rl78\boards.txt
変更内容: 赤字の箇所を追加

bb-rl78.name=BlueBoard-RL78
途中省略
bb-rl78.build.mcu=rl78
bb-rl78.build.f_cpu=32000000L
bb-rl78.build.board=BlueBoard-RL78
bb-rl78.build.core=GadgetRenesas:arduino
bb-rl78.build.ldscript=linker_scripts/rl78_R5F100LEAFA.ld
bb-rl78.build.variant=blueboard-rl78
bb-rl78.build.variant_core_lib="{build.variant.path}/core_v040.a"
bb-rl78.build.variant_system_libs="{build.system.path}/proprietary/libs/pfdl.a"

追記 : メモ

試していて気付いたのですが、派生スケッチ環境のボード情報定義ファイルを以下のようにすれば、KURUMI
基板用スケッチ環境側でライブラリファイルを移しておかなくても、かつ、派生スケッチ環境側に懸案の2つの
ライブラリファイルを含めておかなくても、ビルドすることが出来そうです。

ファイル: arduino-1.6.5-r5\hardware\GadgetRenesas\rl78\platform.txt
変更内容: 赤字の箇所を追加

# AVR compile variables
# ---------------------
途中省略
# this can be overriden in boards.txt
build.extra_flags=
build.variant_core_lib="{build.variant.path}/core_v060.a"
#build.variant_system_libs="{build.system.path}/proprietary/libs/picalicoFree.a" "{build.system.path}/proprietary/libs/pfdl.a"
build.variant_system_libs="{build.variant.path}/picalicoFree.a" "{build.variant.path}/pfdl.a"
以下省略

ファイル: sketchbook2\hardware\hitotsu_ueno_ane\rl78\boards.txt
変更内容: 赤字の箇所を追加

bb-rl78.name=BlueBoard-RL78
途中省略
bb-rl78.build.mcu=rl78
bb-rl78.build.f_cpu=32000000L
bb-rl78.build.board=BlueBoard-RL78
bb-rl78.build.core=GadgetRenesas:arduino
bb-rl78.build.ldscript=linker_scripts/rl78_R5F100LEAFA.ld
bb-rl78.build.variant=blueboard-rl78
bb-rl78.build.variant_system_libs="{build.core.path}/../../variants/gr_kurumi/picalicoFree.a" "{build.core.path}/../../variants/gr_kurumi/pfdl.a"

追記 : メモ

あと、もし派生スケッチ環境側にsystemフォルダを作ったとして、そのパスを利用したい場合には、以下の
表記を使用すれば良さそうな気がします。

ファイル: sketchbook2\hardware\hitotsu_ueno_ane\rl78\boards.txt
例: 赤字の箇所

bb-rl78.name=BlueBoard-RL78
途中省略
bb-rl78.build.mcu=rl78
bb-rl78.build.f_cpu=32000000L
bb-rl78.build.board=BlueBoard-RL78
bb-rl78.build.core=GadgetRenesas:arduino
bb-rl78.build.ldscript=linker_scripts/rl78_R5F100LEAFA.ld
bb-rl78.build.variant=blueboard-rl78
bb-rl78.build.variant_system_libs="{build.system.path}/proprietary/libs/picalicoFree.a" "{build.system.path}/proprietary/libs/pfdl.a" "{build.variant.path}/../../system/proprietary/libs/something.a"

例えば、FFTとかDSPとか音声録音・再生とか暗号とか、、、

関連記事

2016/02/11   blog-entry-736   category: Arduino Lib & CrossGCC

go page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。