なんとかなるさね

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


スポンサーサイト 

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

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

go page top

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

GadgetRenesas基板用IDE4GR 1.6.5/1.6.7(のようなもの)を作ってみることを考え始めたのですが、Arduino
IDE 1.6.5/1.6.7ではplatform.local.txtファイルを作成することで以下のようなことが出来るようになっている
ものの、今まで試してきたIDE4GR 1.6.5/1.6.7(のようなもの)では、この仕組みが機能しませんでした。

ArduinoでC++11 - クローバーフィールド > スタッフブログ > 技術情報
http://www.cloverfield.jp/2015/03/18/786/

そこで、1つ前のエントリのボード情報定義ファイルのplatform.txtを変更した上で、platform.local.txtを作成
して、この機能を試してみました。



ファイル: スケッチブックフォルダ\hardware\GadgetRenesas_core_debug\rl78\platform.txt
変更内容: 赤字の箇所を追加(太字は変更部分)

# 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"

# These can be overridden in platform.local.txt
compiler.c.extra_flags=
compiler.c.elf.extra_flags=
compiler.S.extra_flags=
compiler.cpp.extra_flags=
compiler.ar.extra_flags=
compiler.objcopy.eep.extra_flags=
compiler.elf2hex.extra_flags=


# In case of Arduino IDE 1.6.7, {build.path}/{archive_file} is deprecated.
# Fortunately following archive_file_path is overriden by Arduino IDE 1.6.7.
archive_file_path={build.path}/{archive_file}

# AVR compile patterns
# --------------------

## Compile c files
#recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {includes} {compiler.c.flags} -c -x c -I"{build.path}" "{source_file}" -o "{object_file}"
recipe.c.o.pattern="{compiler.path}{compiler.c.cmd}" {includes} {compiler.c.flags} -c -x c -I"{build.path}" {compiler.c.extra_flags} {build.extra_flags} "{source_file}" -o "{object_file}"

## Compile c++ files
#recipe.cpp.o.pattern="{compiler.path}{compiler.c.cmd}" {includes} {compiler.c.flags} -c -x c++ "{source_file}" -o "{object_file}"
#recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {includes} {compiler.cpp.flags} -c -x c++ "{source_file}" -o "{object_file}"
recipe.cpp.o.pattern="{compiler.path}{compiler.cpp.cmd}" {includes} {compiler.cpp.flags} -c -x c++ {compiler.cpp.extra_flags} {build.extra_flags} "{source_file}" -o "{object_file}"

## Compile S files
#recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {includes} {compiler.S.flags} -c -x assembler-with-cpp "{source_file}" -o "{object_file}"
recipe.S.o.pattern="{compiler.path}{compiler.c.cmd}" {includes} {compiler.S.flags} -c -x assembler-with-cpp {compiler.S.extra_flags} {build.extra_flags} "{source_file}" -o "{object_file}"

## Create archives
#recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{build.path}/{archive_file}" "{object_file}"
#recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} "{archive_file_path}" "{object_file}"
recipe.ar.pattern="{compiler.path}{compiler.ar.cmd}" {compiler.ar.flags} {compiler.ar.extra_flags} "{archive_file_path}" "{object_file}"

## Combine gc-sections, archives, and objects
#recipe.c.combine.pattern="{compiler.path}{compiler.c.elf.cmd}" "-M={build.path}/{build.project_name}.map" {object_files} "{build.path}/exception_handler.cpp.o" "{build.path}/vector_table.c.o" "{build.variant.path}/core_v060.a" "{build.variant.path}/picalicoFree.a" "{build.variant.path}/pfdl.a" "-L{build.path}" "{build.path}/{archive_file}" -e_PowerON_Reset "-T{build.variant.path}/{build.ldscript}" {compiler.c.elf.flags} "{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtbegin.o" "{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtend.o" "{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/rl78-elf/lib/crtn.o" -o "{build.path}/{build.project_name}.elf" "-L{runtime.ide.path}/hardware/tools/gcc-rl78/rl78-elf/rl78-elf/lib" "-L{runtime.ide.path}/hardware/tools/gcc-rl78/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.path}/core_v060.a" "{build.variant.path}/picalicoFree.a" "{build.variant.path}/pfdl.a" -e_PowerON_Reset "-T{build.variant.path}/{build.ldscript}" {compiler.c.elf.flags} "{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtbegin.o" "{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/lib/gcc/rl78-elf/4.8-GNURL78_v14.03/crtend.o" "{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/rl78-elf/lib/crtn.o" -o "{build.path}/{build.project_name}.elf" "-L{runtime.hardware.path}/tools/gcc-rl78/rl78-elf/rl78-elf/lib" "-L{runtime.hardware.path}/tools/gcc-rl78/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.path}/core_v060.a" "{build.variant.path}/picalicoFree.a" "{build.variant.path}/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.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
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" {compiler.c.elf.extra_flags} -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

## Create eeprom
recipe.objcopy.eep.pattern=

## Create hex
#recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.mot"
recipe.objcopy.hex.pattern="{compiler.path}{compiler.elf2hex.cmd}" {compiler.elf2hex.flags} {compiler.elf2hex.extra_flags} "{build.path}/{build.project_name}.elf" "{build.path}/{build.project_name}.mot"

## Compute size
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
recipe.size.regex=^(?:\.text|\.data|\.bootloader)\s+([0-9]+).*
recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).*
recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).*

ファイル: スケッチブックフォルダ\hardware\GadgetRenesas_core_debug\rl78\platform.local.txt
内容:

compiler.cpp.extra_flags=-std=gnu++11

その結果、以下のように機能するようになりました。




追記 : メモ

参考にさせて頂いたブログではplatform.local.txtをスケッチを格納するフォルダに置けば良いと書かれていた
のですが、Arduino IDEのバージョンによるものかOS(Windows/Linux/Mac)によるものか調べてはいませんが、
Arduion IDE 1.6.5/1.6.7 + Windows 7ではスケッチを格納するフォルダに置いても機能しませんでした。

追記 : 雑感

よくよく考えてみると、今回の場合はplatform.txt自体を以下のようにしてしまえば事足りるような気が、、、

# These can be overridden in platform.local.txt
compiler.c.extra_flags=
compiler.c.elf.extra_flags=
compiler.S.extra_flags=
compiler.cpp.extra_flags=-std=gnu++11
compiler.ar.extra_flags=
compiler.objcopy.eep.extra_flags=
compiler.elf2hex.extra_flags=

関連記事

2016/02/26   blog-entry-741   category: Arduino Lib & CrossGCC

go page top

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