annotate Lib/CMake/arm.cmake @ 303:f9c406854bc2

Set DFU bootloader name Fixes #22 Each (dfu) interface may have more than one a ltsetting each with their own index and name. According to the DFU_1.1 pdf section 4.2.3, "* Alternate settings can be used by an application to access additional memory segments. In this case, it is suggested that each alternate setting employ a string descriptor to indicate the target memory segment; e.g., 'EEPROM'." Whether or not we end up using multiple memory segments it is still good to have a descriptive name incase there are other dfu devices connected. Edit: Fixed previous indentation
author Rowan Decker <Smasher816@gmail.com>
date Sun, 08 Mar 2015 16:59:34 -0700
parents 945ce4472602
children 772f9bea482b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
1 ###| CMAKE Kiibohd Controller |###
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
2 #
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
3 # Jacob Alexander 2011-2014
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
4 # Due to this file's usefulness:
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
5 #
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
6 # Released into the Public Domain
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
7 #
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
8 # Freescale ARM CMake Build Configuration
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
9 #
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
10 ###
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
11
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
12
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
13
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
14 #| Set the Compilers (must be set first)
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
15 include( CMakeForceCompiler )
264
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
16 message( STATUS "Compiler Selected:" )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
17 if ( "${COMPILER}" MATCHES "gcc" )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
18 cmake_force_c_compiler ( arm-none-eabi-gcc ARMCCompiler )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
19 cmake_force_cxx_compiler( arm-none-eabi-g++ ARMCxxCompiler )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
20 set( _CMAKE_TOOLCHAIN_PREFIX arm-none-eabi- )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
21 message( "gcc" )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
22 elseif ( "${COMPILER}" MATCHES "clang" )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
23 cmake_force_c_compiler ( clang ARMCCompiler )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
24 cmake_force_cxx_compiler( clang++ ARMCxxCompiler )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
25 set( _CMAKE_TOOLCHAIN_PREFIX llvm- )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
26 message( "clang" )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
27 else ()
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
28 message( AUTHOR_WARNING "COMPILER: ${COMPILER} - Unknown compiler selection" )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
29 endif ()
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
30
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
31
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
32
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
33 ###
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
34 # ARM Defines and Linker Options
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
35 #
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
36
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
37 #| Chip Name (Linker)
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
38 #|
263
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
39 #| "mk20dx128vlf5" # McHCK / Kiibohd-dfu
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
40 #| "mk20dx256vlh7" # Kiibohd-dfu
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
41 #| "mk20dx128" # Teensy 3.0
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
42 #| "mk20dx256" # Teensy 3.1
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
43
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
44 message( STATUS "Chip Selected:" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
45 message( "${CHIP}" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
46 set( MCU "${CHIP}" ) # For loading script compatibility
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
47
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
48
148
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
49 #| Chip Size Database
263
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
50 #| MCHCK Based / Kiibohd-dfu
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
51 if ( "${CHIP}" MATCHES "mk20dx128vlf5" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
52 set( SIZE_RAM 16384 )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
53 set( SIZE_FLASH 126976 )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
54
263
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
55 #| Kiibohd-dfu
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
56 elseif ( "${CHIP}" MATCHES "mk20dx256vlh7" )
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
57 set( SIZE_RAM 65536 )
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
58 set( SIZE_FLASH 253952 )
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
59
148
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
60 #| Teensy 3.0
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
61 elseif ( "${CHIP}" MATCHES "mk20dx128" )
148
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
62 set( SIZE_RAM 16384 )
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
63 set( SIZE_FLASH 131072 )
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
64
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
65 #| Teensy 3.1
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
66 elseif ( "${CHIP}" MATCHES "mk20dx256" )
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
67 set( SIZE_RAM 65536 )
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
68 set( SIZE_FLASH 262144 )
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
69
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
70 #| Unknown ARM
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
71 else ()
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
72 message( AUTHOR_WARNING "CHIP: ${CHIP} - Unknown ARM microcontroller" )
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
73 endif ()
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
74
15814bf7b0cc Adding chip usage display after build completion.
Jacob Alexander <haata@kiibohd.com>
parents: 147
diff changeset
75
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
76 #| Chip Base Type
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
77 #| Automatically chosed based on the chip name.
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
78 if ( "${CHIP}" MATCHES "^mk20dx.*$" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
79 set( CHIP_FAMILY "mk20dx" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
80 message( STATUS "Chip Family:" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
81 message( "${CHIP_FAMILY}" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
82 else ()
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
83 message( FATAL_ERROR "Unknown chip family: ${CHIP}" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
84 endif ()
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
85
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
86
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
87 #| CPU Type
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
88 #| You _MUST_ set this to match the board you are using
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
89 #| type "make clean" after changing this, so all files will be rebuilt
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
90 #|
169
7962a42dbda0 Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents: 148
diff changeset
91 #| "cortex-m4" # Teensy 3.0, 3.1, McHCK
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
92 set( CPU "cortex-m4" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
93
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
94 message( STATUS "CPU Selected:" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
95 message( "${CPU}" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
96
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
97
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
98 #| Extra Compiler Sources
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
99 #| Mostly for convenience functions like interrupt handlers
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
100 set( COMPILER_SRCS
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
101 Lib/${CHIP_FAMILY}.c
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
102 Lib/delay.c
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
103 )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
104
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
105 message( STATUS "Compiler Source Files:" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
106 message( "${COMPILER_SRCS}" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
107
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
108
169
7962a42dbda0 Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents: 148
diff changeset
109 #| USB Defines, this is how the loader programs detect which type of chip base is used
260
5dbe3bf2dc42 Adding more CMake log information.
Jacob Alexander <haata@kiibohd.com>
parents: 209
diff changeset
110 message( STATUS "Bootloader Type:" )
263
9afed592bcb5 Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 260
diff changeset
111 if ( "${CHIP}" MATCHES "mk20dx128vlf5" OR "${CHIP}" MATCHES "mk20dx256vlh7" )
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
112 set( VENDOR_ID "0x1C11" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
113 set( PRODUCT_ID "0xB04D" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
114 set( BOOT_VENDOR_ID "0x1C11" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
115 set( BOOT_PRODUCT_ID "0xB007" )
303
f9c406854bc2 Set DFU bootloader name
Rowan Decker <Smasher816@gmail.com>
parents: 264
diff changeset
116 set( BOOT_DFU_ALTNAME "Kiibohd DFU" )
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
117 set( DFU 1 )
260
5dbe3bf2dc42 Adding more CMake log information.
Jacob Alexander <haata@kiibohd.com>
parents: 209
diff changeset
118 message( "dfu" )
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
119 elseif ( "${CHIP}" MATCHES "mk20dx128" OR "${CHIP}" MATCHES "mk20dx256" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
120 set( VENDOR_ID "0x1C11" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
121 set( PRODUCT_ID "0xB04D" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
122 set( BOOT_VENDOR_ID "0x16c0" ) # TODO Double check, this is likely incorrect
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
123 set( BOOT_PRODUCT_ID "0x0487" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
124 set( TEENSY 1 )
260
5dbe3bf2dc42 Adding more CMake log information.
Jacob Alexander <haata@kiibohd.com>
parents: 209
diff changeset
125 message( "Teensy" )
169
7962a42dbda0 Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents: 148
diff changeset
126 endif ()
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
127
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
128
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
129 #| Compiler flag to set the C Standard level.
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
130 #| c89 = "ANSI" C
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
131 #| gnu89 = c89 plus GCC extensions
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
132 #| c99 = ISO C99 standard (not yet fully implemented)
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
133 #| gnu99 = c99 plus GCC extensions
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
134 #| gnu11 = c11 plus GCC extensions
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
135 set( CSTANDARD "-std=gnu11" )
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
136
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
137
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
138 #| Warning Options
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
139 #| -Wall...: warning level
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
140 set( WARN "-Wall -ggdb3" )
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
141
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
142
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
143 #| Tuning Options
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
144 #| -f...: tuning, see GCC manual
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
145 #| NOTE: -fshort-wchar is specified to allow USB strings be passed conveniently
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
146 if( BOOTLOADER )
209
e9fdef19a059 Fixing Mac OSX arm build options.
Jacob Alexander <haata@kiibohd.com>
parents: 192
diff changeset
147 set( TUNING "-D_bootloader_ -Wno-main -msoft-float -mthumb -fplan9-extensions -ffunction-sections -fdata-sections -fno-builtin -fstrict-volatile-bitfields -flto -fno-use-linker-plugin -nostdlib" )
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
148 #set( TUNING "-mthumb -fdata-sections -ffunction-sections -fno-builtin -msoft-float -fstrict-volatile-bitfields -flto -fno-use-linker-plugin -fwhole-program -Wno-main -nostartfiles -fplan9-extensions -D_bootloader_" )
264
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
149 elseif ( "${COMPILER}" MATCHES "clang" )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
150 set( TUNING "-target arm-none-eabi -mthumb -nostdlib -fdata-sections -ffunction-sections -fshort-wchar -fno-builtin" )
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
151 else()
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
152 set( TUNING "-mthumb -nostdlib -fdata-sections -ffunction-sections -fshort-wchar -fno-builtin -nostartfiles" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
153 endif()
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
154
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
155
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
156 #| Optimization level, can be [0, 1, 2, 3, s].
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
157 #| 0 = turn off optimization. s = optimize for size.
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
158 #| (Note: 3 is not always the best optimization level.)
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
159 set( OPT "s" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
160
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
161
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
162 #| Processor frequency.
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
163 #| Normally the first thing your program should do is set the clock prescaler,
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
164 #| so your program will run at the correct speed. You should also set this
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
165 #| variable to same clock speed. The _delay_ms() macro uses this, and many
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
166 #| examples use this variable to calculate timings. Do not add a "UL" here.
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
167 set( F_CPU "48000000" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
168
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
169
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
170 #| Dependency Files
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
171 #| Compiler flags to generate dependency files.
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
172 set( GENDEPFLAGS "-MMD" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
173
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
174
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
175 #| Compiler Flags
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
176 add_definitions( "-mcpu=${CPU} -DF_CPU=${F_CPU} -D_${CHIP}_=1 -O${OPT} ${TUNING} ${WARN} ${CSTANDARD} ${GENDEPFLAGS}" )
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
177
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
178
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
179 #| Linker Flags
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
180 if( BOOTLOADER )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
181 # Bootloader linker flags
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
182 set( LINKER_FLAGS "${TUNING} -Wl,--gc-sections -fwhole-program -T${CMAKE_CURRENT_SOURCE_DIR}/../Lib/${CHIP}.bootloader.ld -nostartfiles -Wl,-Map=link.map" )
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
183 else()
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
184 # Normal linker flags
209
e9fdef19a059 Fixing Mac OSX arm build options.
Jacob Alexander <haata@kiibohd.com>
parents: 192
diff changeset
185 set( LINKER_FLAGS "${TUNING} -Wl,-Map=link.map,--cref -Wl,--gc-sections -Wl,--no-wchar-size-warning -T${CMAKE_CURRENT_SOURCE_DIR}/Lib/${CHIP}.ld" )
192
6ac92b8614c0 Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents: 175
diff changeset
186 endif()
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
187
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
188
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
189 #| Hex Flags (XXX, CMake seems to have issues if you quote the arguments for the custom commands...)
169
7962a42dbda0 Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents: 148
diff changeset
190 set( HEX_FLAGS -O ihex -R .eeprom )
7962a42dbda0 Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents: 148
diff changeset
191
7962a42dbda0 Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents: 148
diff changeset
192
7962a42dbda0 Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents: 148
diff changeset
193 #| Binary Flags
7962a42dbda0 Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents: 148
diff changeset
194 set( BIN_FLAGS -O binary )
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
195
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
196
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
197 #| Lss Flags
264
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
198 if ( "${COMPILER}" MATCHES "clang" )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
199 set( LSS_FLAGS -section-headers -triple=arm-none-eabi )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
200 else ()
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
201 set( LSS_FLAGS -h -S -z )
945ce4472602 Adding experimental clang compiler support for arm-none-eabi
Jacob Alexander <haata@kiibohd.com>
parents: 263
diff changeset
202 endif ()
147
95da03b43860 Reorganizing CMake build system.
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
203