mirror of https://github.com/ARMmbed/mbed-os.git
Modify to support GCC. (tools files)
parent
1b2a62100a
commit
901b06f05b
|
|
@ -86,7 +86,7 @@ OFFICIAL_MBED_LIBRARY_BUILD = (
|
|||
('LPC11U68', ('ARM', 'uARM','GCC_ARM','GCC_CR', 'IAR')),
|
||||
('OC_MBUINO', ('ARM', 'uARM', 'GCC_ARM', 'IAR')),
|
||||
|
||||
('RZ_A1H' , ('ARM',)),
|
||||
('RZ_A1H' , ('ARM', 'GCC_ARM')),
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
# This file was automagically generated by mbed.org. For more information,
|
||||
# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded
|
||||
|
||||
GCC_BIN =
|
||||
PROJECT = {{name}}
|
||||
OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %}
|
||||
SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %}
|
||||
INCLUDE_PATHS = {% for p in include_paths %}-I{{p}} {% endfor %}
|
||||
LIBRARY_PATHS = {% for p in library_paths %}-L{{p}} {% endfor %}
|
||||
LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %}
|
||||
LINKER_SCRIPT = {{linker_script}}
|
||||
|
||||
###############################################################################
|
||||
AS = $(GCC_BIN)arm-none-eabi-as
|
||||
CC = $(GCC_BIN)arm-none-eabi-gcc
|
||||
CPP = $(GCC_BIN)arm-none-eabi-g++
|
||||
LD = $(GCC_BIN)arm-none-eabi-gcc
|
||||
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
|
||||
OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
|
||||
SIZE = $(GCC_BIN)arm-none-eabi-size
|
||||
|
||||
CPU = -mcpu=cortex-a9 -mthumb-interwork -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard
|
||||
CC_FLAGS = $(CPU) -c -g -fno-common -fmessage-length=0 -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
|
||||
CC_FLAGS += -fno-exceptions -fno-builtin -ffunction-sections -fdata-sections -fno-delete-null-pointer-checks -fomit-frame-pointer
|
||||
CC_FLAGS += -MMD -MP -mno-unaligned-access
|
||||
CC_SYMBOLS = {% for s in symbols %}-D{{s}} {% endfor %}
|
||||
LD_FLAGS = $(CPU) -Wl,--gc-sections --specs=nano.specs -u _printf_float -u _scanf_float -Wl,--wrap,main
|
||||
LD_FLAGS += -Wl,-Map=$(PROJECT).map,--cref
|
||||
LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
|
||||
|
||||
ifeq ($(DEBUG), 1)
|
||||
CC_FLAGS += -DDEBUG -O0
|
||||
else
|
||||
CC_FLAGS += -DNDEBUG -Os
|
||||
endif
|
||||
|
||||
all: $(PROJECT).bin $(PROJECT).hex
|
||||
|
||||
clean:
|
||||
rm -f $(PROJECT).bin $(PROJECT).elf $(PROJECT).hex $(PROJECT).map $(PROJECT).lst $(OBJECTS) $(DEPS)
|
||||
|
||||
.s.o:
|
||||
$(AS) $(CPU) -o $@ $<
|
||||
|
||||
.c.o:
|
||||
$(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<
|
||||
|
||||
.cpp.o:
|
||||
$(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 -fno-rtti $(INCLUDE_PATHS) -o $@ $<
|
||||
|
||||
|
||||
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
|
||||
$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
|
||||
@echo ""
|
||||
@echo "*****"
|
||||
@echo "***** You must modify vector checksum value in *.bin and *.hex files."
|
||||
@echo "*****"
|
||||
@echo ""
|
||||
$(SIZE) $@
|
||||
|
||||
$(PROJECT).bin: $(PROJECT).elf
|
||||
@$(OBJCOPY) -O binary $< $@
|
||||
|
||||
$(PROJECT).hex: $(PROJECT).elf
|
||||
@$(OBJCOPY) -O ihex $< $@
|
||||
|
||||
$(PROJECT).lst: $(PROJECT).elf
|
||||
@$(OBJDUMP) -Sdh $< > $@
|
||||
|
||||
lst: $(PROJECT).lst
|
||||
|
||||
size:
|
||||
$(SIZE) $(PROJECT).elf
|
||||
|
||||
DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d)
|
||||
-include $(DEPS)
|
||||
|
||||
|
|
@ -76,6 +76,7 @@ class GccArm(Exporter):
|
|||
'SEEED_TINY_BLE',
|
||||
'DISCO_F401VC',
|
||||
'DELTA_DFCM_NNN40',
|
||||
'RZ_A1H',
|
||||
]
|
||||
|
||||
DOT_IN_RELATIVE_PATH = True
|
||||
|
|
|
|||
|
|
@ -169,6 +169,7 @@ if __name__ == '__main__':
|
|||
('gcc_arm', 'NUCLEO_F334R8'),
|
||||
('gcc_arm', 'MTS_MDOT_F405RG'),
|
||||
('gcc_arm', 'MTS_MDOT_F411RE'),
|
||||
('gcc_arm', 'RZ_A1H'),
|
||||
|
||||
('ds5_5', 'LPC1768'), ('ds5_5', 'LPC11U24'),
|
||||
|
||||
|
|
|
|||
|
|
@ -959,7 +959,7 @@ class RZ_A1H(Target):
|
|||
Target.__init__(self)
|
||||
self.core = "Cortex-A9"
|
||||
self.extra_labels = ['RENESAS', 'MBRZA1H']
|
||||
self.supported_toolchains = ["ARM"]
|
||||
self.supported_toolchains = ["ARM", "GCC_ARM"]
|
||||
self.supported_form_factors = ["ARDUINO"]
|
||||
self.default_toolchain = "ARM"
|
||||
|
||||
|
|
|
|||
|
|
@ -48,6 +48,15 @@ class GCC(mbedToolchain):
|
|||
self.cpu.append("-mfpu=fpv4-sp-d16")
|
||||
self.cpu.append("-mfloat-abi=softfp")
|
||||
|
||||
if target.core == "Cortex-A9":
|
||||
self.cpu.append("-mthumb-interwork")
|
||||
self.cpu.append("-marm")
|
||||
self.cpu.append("-march=armv7-a")
|
||||
self.cpu.append("-mfpu=vfpv3-d16")
|
||||
self.cpu.append("-mfloat-abi=hard")
|
||||
self.cpu.append("-mno-unaligned-access")
|
||||
|
||||
|
||||
# Note: We are using "-O2" instead of "-Os" to avoid this known GCC bug:
|
||||
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46762
|
||||
common_flags = ["-c", "-Wall", "-Wextra",
|
||||
|
|
@ -177,6 +186,8 @@ class GCC_ARM(GCC):
|
|||
self.ld.append("--specs=nano.specs")
|
||||
if target.name in ["LPC1768", "LPC4088", "LPC4088_DM", "LPC4330", "UBLOX_C027", "LPC2368"]:
|
||||
self.ld.extend(["-u _printf_float", "-u _scanf_float"])
|
||||
elif target.name in ["RZ_A1H"]:
|
||||
self.ld.extend(["-u_printf_float", "-u_scanf_float"])
|
||||
|
||||
self.sys_libs.append("nosys")
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue