|
|
|
@ -1,12 +1,14 @@
|
|
|
|
|
|
|
|
|
|
# SAM3 compile variables
|
|
|
|
|
# ---------------------
|
|
|
|
|
|
|
|
|
|
name=Atmel SAM
|
|
|
|
|
name=Atmel SAM3
|
|
|
|
|
#compiler.path Official default is correct, only need to change this if you want to overide the initial default
|
|
|
|
|
compiler.path={0}/hardware/tools/CodeSourcery_arm/bin/
|
|
|
|
|
compiler.path={0}/hardware/tools/g++_arm_none_eabi/bin/
|
|
|
|
|
compiler.c.cmd=arm-none-eabi-gcc
|
|
|
|
|
compiler.c.flags=-c -g -Os -w -mthumb -mlong-calls -ffunction-sections -nostdlib --param max-inline-insns-single=500 -Dprintf=iprintf
|
|
|
|
|
compiler.c.elf.flags=-Os -Wl,--gc-sections
|
|
|
|
|
compiler.c.elf.cmd=arm-none-eabi-gcc
|
|
|
|
|
compiler.c.elf.flags=-Os -Wl,--gc-sections
|
|
|
|
|
compiler.S.flags=-c -g -assembler-with-cpp
|
|
|
|
|
compiler.cpp.cmd=arm-none-eabi-g++
|
|
|
|
|
compiler.cpp.flags=-c -g -Os -w -mthumb -mlong-calls -ffunction-sections -nostdlib --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -Dprintf=iprintf
|
|
|
|
@ -17,56 +19,37 @@ compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,
|
|
|
|
|
compiler.elf2hex.flags=-O binary
|
|
|
|
|
compiler.elf2hex.cmd=arm-none-eabi-objcopy
|
|
|
|
|
compiler.ldflags=
|
|
|
|
|
compiler.cpudef=-mcpu=
|
|
|
|
|
compiler.size.cmd=arm-none-eabi-size
|
|
|
|
|
compiler.upload.cmd=
|
|
|
|
|
compiler.upload.flags=
|
|
|
|
|
compiler.define=-DARDUINO=
|
|
|
|
|
library.path=./hardware/sam/cores/sam
|
|
|
|
|
library.core.path=./libraries;./hardware/sam/libraries
|
|
|
|
|
|
|
|
|
|
compiler.libsam.c.flags=-I{core_path}/../../system/libsam -I{core_path}/../../system/CMSIS/Include/
|
|
|
|
|
#library.path=hardware/sam/cores/sam
|
|
|
|
|
#library.core.path=libraries;hardware/sam/libraries
|
|
|
|
|
|
|
|
|
|
#########Compiler Recipe#################################
|
|
|
|
|
# SAM3 compile patterns
|
|
|
|
|
# ---------------------
|
|
|
|
|
|
|
|
|
|
##compile c object files
|
|
|
|
|
##Default.recipe, overide if overide exists, these defauls should remain the same, if you need to change them do it as an overide.
|
|
|
|
|
## Compile c files
|
|
|
|
|
recipe.c.o.pattern={toolchain_path}{compiler.c.cmd} {compiler.c.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={ide_version} {build.extra_flags} {compiler.libsam.c.flags} {includes} {source_file} -o {object_file}
|
|
|
|
|
|
|
|
|
|
#default.recipe.c.o.pattern={0}{1} {2} {3}{4} -DF_CPU={5} -D{6}={7} {8} {9} -o {10}
|
|
|
|
|
#default.recipe.cpp.o.pattern={0}{1} {2} {3}{4} -DF_CPU={5} -D{6}={7} {8} {9} -o {10}
|
|
|
|
|
#default.recipe.ar.pattern={0}{1} {2} {3}{4} {5}
|
|
|
|
|
#default.recipe.c.combine.pattern={0}{1} {2} {3}{4} -o {5}{6}.elf {7} {8} -L{9} -lm
|
|
|
|
|
#default.recipe.objcopy.eep.pattern={0}{1} {2} {3}.elf {4}.eep
|
|
|
|
|
#default.recipe.objcopy.hex.pattern={0}{1} {2} {3}.elf {4}.hex
|
|
|
|
|
## Compile c++ files
|
|
|
|
|
recipe.cpp.o.pattern={toolchain_path}{compiler.cpp.cmd} {compiler.cpp.flags} -mcpu={build.mcu} -DF_CPU={build.f_cpu} -D{software}={ide_version} {build.extra_flags} {compiler.libsam.c.flags} {includes} {source_file} -o {object_file}
|
|
|
|
|
|
|
|
|
|
########sam compile pattern ##########
|
|
|
|
|
#recipe.c.o.pattern={0=compiler.path}{1=compiler.c.cmd}{2=compiler.c.flags}{3=compiler.cpudef}{4=build.mcu}-DF_CPU={5=build.f_cpu}-D{7=ARDUINO}={6=Base.REVISION}{7=-I/INCLUDE_PATHS} {8=SOURCE_NAME} -o{9=OBJECT_NAME}
|
|
|
|
|
#object name seems to have build path in it.
|
|
|
|
|
recipe.c.o.pattern={0}{1} {2} {3}{4} -DF_CPU={5} -D{6}={7} {11} {8} {9} -o {10}
|
|
|
|
|
## Create archives
|
|
|
|
|
recipe.ar.pattern={toolchain_path}{compiler.ar.cmd} {compiler.ar.flags} {build_path}{archive_file} {object_file}
|
|
|
|
|
|
|
|
|
|
## Combine gc-sections, archives, and objects
|
|
|
|
|
recipe.c.combine.pattern={toolchain_path}{compiler.c.elf.cmd} {compiler.c.elf.flags} -mcpu={build.mcu} -T{variant_path}{build.ldscript} -Wl,-Map,{build_path}{project_name}.map -o {build_path}{project_name}.elf -L{build_path} -lm -lgcc -mthumb -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,--warn-unresolved-symbols -Wl,--start-group {object_files} {variant_path}libsam_sam3u4e_gcc_rel.a {build_path}{archive_file} -Wl,--end-group
|
|
|
|
|
|
|
|
|
|
##compile cc object files
|
|
|
|
|
#recipe.cc.o.pattern={0=compiler.path}{1=compiler.cc.cmd}{2=compiler.c.flags}{3=compiler.cpudef}{4=build.mcu}-DF_CPU={5=build.f_cpu}-DARDUINO={6=Base.REVISION}{-7=I/INCLUDE_PATHS} {8=SOURCE_NAME} -o{9=BUILD_PATH}{10=OBJECT_NAME}
|
|
|
|
|
recipe.cpp.o.pattern={0}{1} {2} {3}{4} -DF_CPU={5} -D{6}={7} {11} {8} {9} -o {10}
|
|
|
|
|
##create archives
|
|
|
|
|
#recipe.ar.pattern={0=compiler.path}{1=compiler.ar.cmd}{2=compiler.ar.flags}{3=BUILD_PATH}{4=CORE_NAME=core.a}{5=BUILD_PATH}{6=OBJECT_NAME}
|
|
|
|
|
recipe.ar.pattern={0}{1} {2} {3}{4} {5}
|
|
|
|
|
|
|
|
|
|
##combine gc-sections archives, and objects
|
|
|
|
|
#recipe.c.combine.pattern={0=compiler.path}{1=compiler.c.cmd}{2=compiler.combine.flags}{3=compiler.cpudef}{4=build.mcu} -o {5=BUILD_PATH}{6=SOURCE_NAME}.elf {7=BUILD_PATH}{8=SOURCE_NAME}.o {9=BUILD_PATH}{10=CORE_NAME=core.a} -L{11=BUILD_PATH} -lm
|
|
|
|
|
#recipe.c.combine.pattern={0}{1} {2} {3}{4} -o {5}{6}.elf {7}{8} {9} -L{10} -lm
|
|
|
|
|
recipe.c.combine.pattern={0}{1} {2} {3}{4} -T{11} -Wl,-Map,{5}{6}.map -o {5}{6}.elf -L{9} -lm -lgcc -mthumb -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,--warn-unresolved-symbols -Wl,--start-group {7} {8} -Wl,--end-group
|
|
|
|
|
|
|
|
|
|
##create eeprom
|
|
|
|
|
#recipe.objcopy.eep.pattern={0=compiler.path}{1=compiler.objcopy.cmd}{2=compiler.objcopy.eep.flags} {3=BUILD_PATH}{4=SOURCE_NAME}.elf {5=BUILD_PATH}{6=SOURCE_NAME}.eep
|
|
|
|
|
#recipe.objcopy.eep.pattern={0}{1} {2} {3}.elf {4}.eep
|
|
|
|
|
## Create eeprom
|
|
|
|
|
recipe.objcopy.eep.pattern=
|
|
|
|
|
|
|
|
|
|
##create hex
|
|
|
|
|
#recipe.objcopy.hex.pattern={0=compiler.path}{1=compiler.objcopy.cmd}{2=compiler.objcopy.elf.flags} {3=BUILD_PATH}{4=SOURCE_NAME}.elf {5=BUILD_PATH}{6=SOURCE_NAME}.hex
|
|
|
|
|
recipe.objcopy.hex.pattern={0}{1} {2} {3}.elf {4}.bin
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##compute size
|
|
|
|
|
recipe.size.pattern={0}{1} {2}.elf
|
|
|
|
|
## Create hex
|
|
|
|
|
recipe.objcopy.hex.pattern={toolchain_path}{compiler.elf2hex.cmd} {compiler.elf2hex.flags} {build_path}{project_name}.elf {build_path}{project_name}.bin
|
|
|
|
|
|
|
|
|
|
## Compute Size
|
|
|
|
|
#recipe.size.pattern={toolchain_path}{1} {2}.elf
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|