Skip to content

Commit e2574eb

Browse files
committed
Merge pull request ARMmbed#213 from dinau/gcc_arm_lpc11u35_stm32f407_mod
[GCC_ARM][LPC11U35][LPC1114][STMF407]: Modified build scripts
2 parents 3e40310 + 64df527 commit e2574eb

File tree

10 files changed

+227
-5
lines changed

10 files changed

+227
-5
lines changed

libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM/TARGET_LPC11U35_401/LPC11U35.ld

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ SECTIONS
4040
{
4141
KEEP(*(.isr_vector))
4242
*(.text.Reset_Handler)
43-
*(.text.SystemInit)
4443

4544
/* Only vectors and code running at reset are safe to be in first 512
4645
bytes since RAM can be mapped into this area for RAM based interrupt

libraries/mbed/targets/cmsis/TARGET_NXP/TARGET_LPC11UXX/TOOLCHAIN_GCC_ARM/TARGET_LPC11U35_501/LPC11U35.ld

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ SECTIONS
4040
{
4141
KEEP(*(.isr_vector))
4242
*(.text.Reset_Handler)
43-
*(.text.SystemInit)
4443

4544
/* Only vectors and code running at reset are safe to be in first 512
4645
bytes since RAM can be mapped into this area for RAM based interrupt

libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32F4XX/PinNames.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ typedef enum {
4343
PF_0, PF_1, PF_2, PF_3, PF_4, PF_5, PF_6, PF_7, PF_8, PF_9, PF_10, PF_11, PF_12, PF_13, PF_14, PF_15,
4444
PH_0, PH_1, PH_2, PH_3, PH_4, PH_5, PH_6, PH_7, PH_8, PH_9, PH_10, PH_11,
4545

46+
LED3 = PD_13,
47+
LED4 = PD_12,
48+
LED5 = PD_14,
49+
LED6 = PD_15,
50+
4651
// Not connected
4752
NC = (int)0xFFFFFFFF
4853
} PinName;

libraries/tests/mbed/ticker/main.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#include "mbed.h"
22

3+
#if defined(TARGET_STM32F407)
4+
#define LED1 LED3
5+
#endif
6+
37
Ticker flipper_1;
48
DigitalOut led1(LED1);
59
int led1_state = 0;
@@ -19,6 +23,8 @@ Ticker flipper_2;
1923
# define LED_NAME LED2
2024
#elif defined(TARGET_KL46Z)
2125
# define LED_NAME LED2
26+
#elif defined(TARGET_STM32F407)
27+
# define LED_NAME LED4
2228
#else
2329
# define LED_NAME PTE31
2430
#endif

workspace_tools/export/gcc_arm_lpc1114.tmpl

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,21 @@ CC = $(GCC_BIN)arm-none-eabi-gcc
1616
CPP = $(GCC_BIN)arm-none-eabi-g++
1717
LD = $(GCC_BIN)arm-none-eabi-gcc
1818
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
19+
OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
20+
SIZE = $(GCC_BIN)arm-none-eabi-size
1921

2022
CPU = -mcpu=cortex-m0 -mthumb
2123
CC_FLAGS = $(CPU) -c -Os -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections
2224
CC_SYMBOLS = {% for s in symbols %}-D{{s}} {% endfor %}
2325

2426
LD_FLAGS = -mcpu=cortex-m0 -mthumb -Wl,--gc-sections --specs=nano.specs
27+
LD_FLAGS += -Wl,-Map=$(PROJECT).map,--cref
2528
LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
2629

27-
all: $(PROJECT).bin
30+
all: $(PROJECT).bin $(PROJECT).hex size
2831

2932
clean:
30-
rm -f $(PROJECT).bin $(PROJECT).elf $(OBJECTS)
33+
rm -f $(PROJECT).bin $(PROJECT).elf $(PROJECT).hex $(PROJECT).map $(PROJECT).lst $(OBJECTS)
3134

3235
.s.o:
3336
$(AS) $(CPU) -o $@ $<
@@ -41,6 +44,22 @@ clean:
4144

4245
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
4346
$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
47+
@echo ""
48+
@echo "*****"
49+
@echo "***** You must modify vector checksum value in *.bin and *.hex files."
50+
@echo "*****"
51+
@echo ""
4452

4553
$(PROJECT).bin: $(PROJECT).elf
46-
$(OBJCOPY) -O binary $< $@
54+
@$(OBJCOPY) -O binary $< $@
55+
56+
$(PROJECT).hex: $(PROJECT).elf
57+
@$(OBJCOPY) -O ihex $< $@
58+
59+
$(PROJECT).lst: $(PROJECT).elf
60+
@$(OBJDUMP) -Sdh $< > $@
61+
62+
lst: $(PROJECT).lst
63+
64+
size:
65+
$(SIZE) $(PROJECT).elf
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# This file was automagically generated by mbed.org. For more information,
2+
# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded
3+
4+
GCC_BIN =
5+
PROJECT = {{name}}
6+
OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %}
7+
SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %}
8+
INCLUDE_PATHS = {% for p in include_paths %}-I{{p}} {% endfor %}
9+
LIBRARY_PATHS = {% for p in library_paths %}-L{{p}} {% endfor %}
10+
LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %}
11+
LINKER_SCRIPT = {{linker_script}}
12+
13+
###############################################################################
14+
AS = $(GCC_BIN)arm-none-eabi-as
15+
CC = $(GCC_BIN)arm-none-eabi-gcc
16+
CPP = $(GCC_BIN)arm-none-eabi-g++
17+
LD = $(GCC_BIN)arm-none-eabi-gcc
18+
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
19+
OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
20+
SIZE = $(GCC_BIN)arm-none-eabi-size
21+
22+
CPU = -mcpu=cortex-m0 -mthumb
23+
CC_FLAGS = $(CPU) -c -Os -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections
24+
CC_SYMBOLS = {% for s in symbols %}-D{{s}} {% endfor %}
25+
26+
LD_FLAGS = -mcpu=cortex-m0 -mthumb -Wl,--gc-sections --specs=nano.specs
27+
LD_FLAGS += -Wl,-Map=$(PROJECT).map,--cref
28+
LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
29+
30+
all: $(PROJECT).bin $(PROJECT).hex size
31+
32+
clean:
33+
rm -f $(PROJECT).bin $(PROJECT).elf $(PROJECT).hex $(PROJECT).map $(PROJECT).lst $(OBJECTS)
34+
35+
.s.o:
36+
$(AS) $(CPU) -o $@ $<
37+
38+
.c.o:
39+
$(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<
40+
41+
.cpp.o:
42+
$(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 $(INCLUDE_PATHS) -o $@ $<
43+
44+
45+
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
46+
$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
47+
@echo ""
48+
@echo "*****"
49+
@echo "***** You must modify vector checksum value in *.bin and *.hex files."
50+
@echo "*****"
51+
@echo ""
52+
53+
$(PROJECT).bin: $(PROJECT).elf
54+
@$(OBJCOPY) -O binary $< $@
55+
56+
$(PROJECT).hex: $(PROJECT).elf
57+
@$(OBJCOPY) -O ihex $< $@
58+
59+
$(PROJECT).lst: $(PROJECT).elf
60+
@$(OBJDUMP) -Sdh $< > $@
61+
62+
lst: $(PROJECT).lst
63+
64+
size:
65+
$(SIZE) $(PROJECT).elf
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
# This file was automagically generated by mbed.org. For more information,
2+
# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded
3+
4+
GCC_BIN =
5+
PROJECT = {{name}}
6+
OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %}
7+
SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %}
8+
INCLUDE_PATHS = {% for p in include_paths %}-I{{p}} {% endfor %}
9+
LIBRARY_PATHS = {% for p in library_paths %}-L{{p}} {% endfor %}
10+
LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %}
11+
LINKER_SCRIPT = {{linker_script}}
12+
13+
###############################################################################
14+
AS = $(GCC_BIN)arm-none-eabi-as
15+
CC = $(GCC_BIN)arm-none-eabi-gcc
16+
CPP = $(GCC_BIN)arm-none-eabi-g++
17+
LD = $(GCC_BIN)arm-none-eabi-gcc
18+
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
19+
OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
20+
SIZE = $(GCC_BIN)arm-none-eabi-size
21+
22+
CPU = -mcpu=cortex-m0 -mthumb
23+
CC_FLAGS = $(CPU) -c -Os -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections
24+
CC_SYMBOLS = {% for s in symbols %}-D{{s}} {% endfor %}
25+
26+
LD_FLAGS = -mcpu=cortex-m0 -mthumb -Wl,--gc-sections --specs=nano.specs
27+
LD_FLAGS += -Wl,-Map=$(PROJECT).map,--cref
28+
LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
29+
30+
all: $(PROJECT).bin $(PROJECT).hex size
31+
32+
clean:
33+
rm -f $(PROJECT).bin $(PROJECT).elf $(PROJECT).hex $(PROJECT).map $(PROJECT).lst $(OBJECTS)
34+
35+
.s.o:
36+
$(AS) $(CPU) -o $@ $<
37+
38+
.c.o:
39+
$(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<
40+
41+
.cpp.o:
42+
$(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 $(INCLUDE_PATHS) -o $@ $<
43+
44+
45+
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
46+
$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
47+
@echo ""
48+
@echo "*****"
49+
@echo "***** You must modify vector checksum value in *.bin and *.hex files."
50+
@echo "*****"
51+
@echo ""
52+
53+
$(PROJECT).bin: $(PROJECT).elf
54+
@$(OBJCOPY) -O binary $< $@
55+
56+
$(PROJECT).hex: $(PROJECT).elf
57+
@$(OBJCOPY) -O ihex $< $@
58+
59+
$(PROJECT).lst: $(PROJECT).elf
60+
@$(OBJDUMP) -Sdh $< > $@
61+
62+
lst: $(PROJECT).lst
63+
64+
size:
65+
$(SIZE) $(PROJECT).elf
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# This file was automagically generated by mbed.org. For more information,
2+
# see http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded
3+
4+
GCC_BIN =
5+
PROJECT = {{name}}
6+
OBJECTS = {% for f in to_be_compiled %}{{f}} {% endfor %}
7+
SYS_OBJECTS = {% for f in object_files %}{{f}} {% endfor %}
8+
INCLUDE_PATHS = {% for p in include_paths %}-I{{p}} {% endfor %}
9+
LIBRARY_PATHS = {% for p in library_paths %}-L{{p}} {% endfor %}
10+
LIBRARIES = {% for lib in libraries %}-l{{lib}} {% endfor %}
11+
LINKER_SCRIPT = {{linker_script}}
12+
13+
###############################################################################
14+
AS = $(GCC_BIN)arm-none-eabi-as
15+
CC = $(GCC_BIN)arm-none-eabi-gcc
16+
CPP = $(GCC_BIN)arm-none-eabi-g++
17+
LD = $(GCC_BIN)arm-none-eabi-gcc
18+
OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy
19+
OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump
20+
SIZE = $(GCC_BIN)arm-none-eabi-size
21+
22+
CPU = -mcpu=cortex-m4 -mthumb
23+
CC_FLAGS = $(CPU) -c -Os -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections
24+
CC_SYMBOLS = {% for s in symbols %}-D{{s}} {% endfor %}
25+
26+
LD_FLAGS = -mcpu=cortex-m3 -mthumb -Wl,--gc-sections --specs=nano.specs -u _printf_float -u _scanf_float
27+
LD_FLAGS += -Wl,-Map=$(PROJECT).map,--cref
28+
LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys
29+
30+
all: $(PROJECT).bin $(PROJECT).hex size
31+
32+
clean:
33+
rm -f $(PROJECT).bin $(PROJECT).elf $(PROJECT).hex $(PROJECT).map $(PROJECT).lst $(OBJECTS)
34+
35+
.s.o:
36+
$(AS) $(CPU) -o $@ $<
37+
38+
.c.o:
39+
$(CC) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu99 $(INCLUDE_PATHS) -o $@ $<
40+
41+
.cpp.o:
42+
$(CPP) $(CC_FLAGS) $(CC_SYMBOLS) -std=gnu++98 $(INCLUDE_PATHS) -o $@ $<
43+
44+
45+
$(PROJECT).elf: $(OBJECTS) $(SYS_OBJECTS)
46+
$(LD) $(LD_FLAGS) -T$(LINKER_SCRIPT) $(LIBRARY_PATHS) -o $@ $^ $(LIBRARIES) $(LD_SYS_LIBS) $(LIBRARIES) $(LD_SYS_LIBS)
47+
48+
$(PROJECT).bin: $(PROJECT).elf
49+
@$(OBJCOPY) -O binary $< $@
50+
51+
$(PROJECT).hex: $(PROJECT).elf
52+
@$(OBJCOPY) -O ihex $< $@
53+
54+
$(PROJECT).lst: $(PROJECT).elf
55+
@$(OBJDUMP) -Sdh $< > $@
56+
57+
lst: $(PROJECT).lst
58+
59+
size:
60+
$(SIZE) $(PROJECT).elf

workspace_tools/export/gccarm.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class GccArm(Exporter):
3333
'LPC1114',
3434
'LPC11U35_401',
3535
'LPC11U35_501',
36+
'STM32F407',
3637
]
3738

3839
DOT_IN_RELATIVE_PATH = True

workspace_tools/export_test.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,13 @@ def test_export(toolchain, target, expected_error=None):
9393
('gcc_arm', 'LPC11U35_401'),
9494
('gcc_arm', 'LPC11U35_501'),
9595

96+
('gcc_arm', 'STM32F407'),
97+
9698

9799
('ds5_5', 'LPC1768'), ('ds5_5', 'LPC11U24'),
98100

99101
('iar', 'LPC1768'),
102+
100103

101104
(None, None)
102105
]:

0 commit comments

Comments
 (0)