diff options
Diffstat (limited to 'quantum/mcu_selection.mk')
-rw-r--r-- | quantum/mcu_selection.mk | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk new file mode 100644 index 000000000..209b578ea --- /dev/null +++ b/quantum/mcu_selection.mk | |||
@@ -0,0 +1,70 @@ | |||
1 | |||
2 | ifneq ($(findstring STM32F303, $(MCU)),) | ||
3 | ## chip/board settings | ||
4 | # - the next two should match the directories in | ||
5 | # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) | ||
6 | MCU_FAMILY ?= STM32 | ||
7 | MCU_SERIES ?= STM32F3xx | ||
8 | |||
9 | # Linker script to use | ||
10 | # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/ | ||
11 | # or <this_dir>/ld/ | ||
12 | MCU_LDSCRIPT ?= STM32F303xC | ||
13 | |||
14 | # Startup code to use | ||
15 | # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/ | ||
16 | MCU_STARTUP ?= stm32f3xx | ||
17 | |||
18 | # Board: it should exist either in <chibios>/os/hal/boards/ | ||
19 | # or <this_dir>/boards | ||
20 | BOARD ?= GENERIC_STM32_F303XC | ||
21 | |||
22 | # Cortex version | ||
23 | MCU = cortex-m4 | ||
24 | |||
25 | # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 | ||
26 | ARMV ?= 7 | ||
27 | |||
28 | USE_FPU = yes | ||
29 | |||
30 | # Vector table for application | ||
31 | # 0x00000000-0x00001000 area is occupied by bootlaoder.*/ | ||
32 | # The CORTEX_VTOR... is needed only for MCHCK/Infinity KB | ||
33 | # OPT_DEFS = -DCORTEX_VTOR_INIT=0x08005000 | ||
34 | |||
35 | # Options to pass to dfu-util when flashing | ||
36 | DFU_ARGS ?= -d 0483:df11 -a 0 -s 0x08000000:leave | ||
37 | endif | ||
38 | |||
39 | ifneq (,$(filter $(MCU),atmega32u4 at90usb1286)) | ||
40 | # Processor frequency. | ||
41 | # This will define a symbol, F_CPU, in all source code files equal to the | ||
42 | # processor frequency in Hz. You can then use this symbol in your source code to | ||
43 | # calculate timings. Do NOT tack on a 'UL' at the end, this will be done | ||
44 | # automatically to create a 32-bit value in your source code. | ||
45 | # | ||
46 | # This will be an integer division of F_USB below, as it is sourced by | ||
47 | # F_USB after it has run through any CPU prescalers. Note that this value | ||
48 | # does not *change* the processor frequency - it should merely be updated to | ||
49 | # reflect the processor speed set externally so that the code can use accurate | ||
50 | # software delays. | ||
51 | F_CPU ?= 16000000 | ||
52 | |||
53 | # LUFA specific | ||
54 | # | ||
55 | # Target architecture (see library "Board Types" documentation). | ||
56 | ARCH ?= AVR8 | ||
57 | |||
58 | # Input clock frequency. | ||
59 | # This will define a symbol, F_USB, in all source code files equal to the | ||
60 | # input clock frequency (before any prescaling is performed) in Hz. This value may | ||
61 | # differ from F_CPU if prescaling is used on the latter, and is required as the | ||
62 | # raw input clock is fed directly to the PLL sections of the AVR for high speed | ||
63 | # clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' | ||
64 | # at the end, this will be done automatically to create a 32-bit value in your | ||
65 | # source code. | ||
66 | # | ||
67 | # If no clock division is performed on the input clock inside the AVR (via the | ||
68 | # CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. | ||
69 | F_USB ?= $(F_CPU) | ||
70 | endif | ||