1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
import os
env = Environment(
ENV = os.environ,
CC = 'arm-none-eabi-gcc',
CXX = 'arm-none-eabi-g++',
AS = 'arm-none-eabi-gcc',
CCFLAGS = '-O2 -Wall -ggdb -mcpu=cortex-m3 -mthumb -ffunction-sections',
CXXFLAGS = '-fno-exceptions -fno-rtti',
ASFLAGS = '-c -x assembler-with-cpp -mcpu=cortex-m3 -mthumb',
#CPPDEFINES = [],
LINK = 'arm-none-eabi-gcc',
LINKFLAGS = '-Wall -mcpu=cortex-m3 -mthumb -nostartfiles -Wl,-Tsuzumebachi.ld', # -Wl,--gc-sections
AR = 'arm-none-eabi-ar',
RANLIB = 'arm-none-eabi-ranlib',
CPPPATH = ['.',
'chibios/os/kernel/include', 'chibios/os/ports/GCC/ARMCMx', 'chibios/os/ports/GCC/ARMCMx/STM32',
'chibios/os/hal/include', 'chibios/os/hal/platforms/STM32',
],
#LIBPATH = [],
LIBS = ['m'],
)
sources = \
Glob('chibios/os/kernel/src/*.c') + \
['chibios/os/ports/GCC/ARMCMx/' + i for i in ('STM32/vectors.c', 'chcore.c', 'chcore_v7m.c', 'nvic.c', 'crt0_v7m.s')] + \
Glob('chibios/os/hal/src/*.c') + \
Glob('chibios/os/hal/platforms/STM32/*.c')
#firmware = env.Program('suzumebachi.elf', Glob('*.cpp') + Glob('*.c') + sources)
firmware = env.Program('suzumebachi.elf', ['main.cpp', 'entry.cpp', 'interrupt.cpp', 'rcc.cpp'])
env.Depends(firmware, 'suzumebachi.ld')
env.Command('prog', ['suzumebachi.elf'], 'openocd -f openocd.cfg -c flash_chip')
Default('suzumebachi.elf')
|