-
Notifications
You must be signed in to change notification settings - Fork 271
/
Copy pathsam.cmake
176 lines (154 loc) · 5.51 KB
/
sam.cmake
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
###| CMAKE Kiibohd Controller |###
#
# Jacob Alexander 2011-2020
# Due to this file's usefulness:
#
# Released into the Public Domain
#
# SAM ARM CMake Build Configuration
#
###
#| Chip Name (Linker)
#|
#| "sam4s2a" # 48-pin Kiibohd-dfu
#| "sam4s2b" # 64-pin Kiibohd-dfu
#| "sam4s2c" # 100-pin Kiibohd-dfu
#| "sam4s4a" # 48-pin Kiibohd-dfu
#| "sam4s4b" # 64-pin Kiibohd-dfu
#| "sam4s4c" # 100-pin Kiibohd-dfu
#| "sam4s8b" # 64-pin Kiibohd-dfu
#| "sam4s8c" # 100-pin Kiibohd-dfu
#| "sam4s16b" # 64-pin Kiibohd-dfu
#| "sam4s16c" # 100-pin Kiibohd-dfu
#| "sam4sa16b" # 64-pin Kiibohd-dfu
#| "sam4sa16c" # 100-pin Kiibohd-dfu
#| "sam4sd16b" # 64-pin Kiibohd-dfu
#| "sam4sd16c" # 100-pin Kiibohd-dfu
#| "sam4sd32b" # 64-pin Kiibohd-dfu
#| "sam4sd32c" # 100-pin Kiibohd-dfu
#| Chip Size and CPU Frequency Database
#| Processor frequency.
#| Normally the first thing your program should do is set the clock prescaler,
#| so your program will run at the correct speed. You should also set this
#| variable to same clock speed. The _delay_ms() macro uses this, and many
#| examples use this variable to calculate timings. Do not add a "UL" here.
#| Kiibohd-dfu
# http://www.microchip.com/wwwproducts/en/ATSAM4S2A
# http://www.microchip.com/wwwproducts/en/ATSAM4S2B
# http://www.microchip.com/wwwproducts/en/ATSAM4S2C
if ( "${CHIP}" MATCHES "sam4s2a" OR "${CHIP}" MATCHES "sam4s2b" OR "${CHIP}" MATCHES "sam4s2c" )
set( SIZE_RAM 65536 )
set( SIZE_FLASH 106496 ) # 16kB bootloader + 8kB nvstorage (131072 bytes)
set( F_CPU 120000000 )
set( CHIP_SHORT "sam4s2" )
set( CHIP_FAMILY "sam4s" )
set( CHIP_SUPPORT "sam" )
set( DFU 1 )
# Bootloader has a lower flash restriction to fit inside protected area
if ( BOOTLOADER )
set( SIZE_FLASH 16384 )
endif ()
#| Kiibohd-dfu
# http://www.microchip.com/wwwproducts/en/ATSAM4S4A
# http://www.microchip.com/wwwproducts/en/ATSAM4S4B
# http://www.microchip.com/wwwproducts/en/ATSAM4S4C
elseif ( "${CHIP}" MATCHES "sam4s4a" OR "${CHIP}" MATCHES "sam4s4b" OR "${CHIP}" MATCHES "sam4s4c" )
set( SIZE_RAM 65536 )
# Extended bootloader size
set( SIZE_FLASH 229376 ) # 24kB bootloader + 8kB nvstorage (262144 bytes)
#set( SIZE_FLASH 237568 ) # 16kB bootloader + 8kB nvstorage (262144 bytes)
set( F_CPU 120000000 )
set( CHIP_SHORT "sam4s4" )
set( CHIP_FAMILY "sam4s" )
set( CHIP_SUPPORT "sam" )
set( DFU 1 )
# Bootloader has a lower flash restriction to fit inside protected area
if ( BOOTLOADER )
# Extended bootloader size
set( SIZE_FLASH 24576 )
#set( SIZE_FLASH 16384 )
endif ()
#| Kiibohd-dfu
# http://www.microchip.com/wwwproducts/en/ATSAM4S8B
# http://www.microchip.com/wwwproducts/en/ATSAM4S8C
elseif ( "${CHIP}" MATCHES "sam4s8b" OR "${CHIP}" MATCHES "sam4s8c" )
set( SIZE_RAM 131072 )
set( SIZE_FLASH 499712 ) # 16kB bootloader + 8kB nvstorage (524288 bytes)
set( F_CPU 120000000 )
set( CHIP_SHORT "sam4s8" )
set( CHIP_FAMILY "sam4s" )
set( CHIP_SUPPORT "sam" )
set( DFU 1 )
# Bootloader has a lower flash restriction to fit inside protected area
if ( BOOTLOADER )
set( SIZE_FLASH 16384 )
endif ()
#| Kiibohd-dfu
# http://www.microchip.com/wwwproducts/en/ATSAM4S16B
# http://www.microchip.com/wwwproducts/en/ATSAM4S16C
elseif ( "${CHIP}" MATCHES "sam4s16b" OR "${CHIP}" MATCHES "sam4s16c" )
set( SIZE_RAM 131072 )
set( SIZE_FLASH 1024000 ) # 16kB bootloader + 8kB nvstorage (1048576 bytes)
set( F_CPU 120000000 )
set( CHIP_SHORT "sam4s16" )
set( CHIP_FAMILY "sam4s" )
set( CHIP_SUPPORT "sam" )
set( DFU 1 )
# Bootloader has a lower flash restriction to fit inside protected area
if ( BOOTLOADER )
set( SIZE_FLASH 16384 )
endif ()
#| Kiibohd-dfu
# http://www.microchip.com/wwwproducts/en/ATSAM4SA16B
# http://www.microchip.com/wwwproducts/en/ATSAM4SA16C
elseif ( "${CHIP}" MATCHES "sam4sa16b" OR "${CHIP}" MATCHES "sam4sa16c" )
set( SIZE_RAM 163840 )
set( SIZE_FLASH 1024000 ) # 16kB bootloader + 8kB nvstorage (1048576 bytes)
set( F_CPU 120000000 )
set( CHIP_SHORT "sam4sa16" )
set( CHIP_FAMILY "sam4s" )
set( CHIP_SUPPORT "sam" )
set( DFU 1 )
# Bootloader has a lower flash restriction to fit inside protected area
if ( BOOTLOADER )
set( SIZE_FLASH 16384 )
endif ()
#| Kiibohd-dfu
# http://www.microchip.com/wwwproducts/en/ATSAM4SD16B
# http://www.microchip.com/wwwproducts/en/ATSAM4SD16C
elseif ( "${CHIP}" MATCHES "sam4sd16b" OR "${CHIP}" MATCHES "sam4sd16c" )
set( SIZE_RAM 163840 )
set( SIZE_FLASH 1024000 ) # 16kB bootloader + 8kB nvstorage (1048576 bytes)
set( F_CPU 120000000 )
set( CHIP_SHORT "sam4sd16" )
set( CHIP_FAMILY "sam4s" )
set( CHIP_SUPPORT "sam" )
set( DFU 1 )
# Bootloader has a lower flash restriction to fit inside protected area
if ( BOOTLOADER )
set( SIZE_FLASH 16384 )
endif ()
#| Kiibohd-dfu
# http://www.microchip.com/wwwproducts/en/ATSAM4SD32B
# http://www.microchip.com/wwwproducts/en/ATSAM4SD32C
elseif ( "${CHIP}" MATCHES "sam4sd32b" OR "${CHIP}" MATCHES "sam4sd32c" )
set( SIZE_RAM 163840 )
set( SIZE_FLASH 2072576 ) # 16kB bootloader + 8kB nvstorage (2097152 bytes)
set( F_CPU 120000000 )
set( CHIP_SHORT "sam4sd32" )
set( CHIP_FAMILY "sam4s" )
set( CHIP_SUPPORT "sam" )
set( DFU 1 )
# Bootloader has a lower flash restriction to fit inside protected area
if ( BOOTLOADER )
set( SIZE_FLASH 16384 )
endif ()
#| Unknown ARM
else ()
message( AUTHOR_WARNING "CHIP: ${CHIP} - Unknown SAM ARM microcontroller" )
endif ()
#| CPU Type
#| You _MUST_ set this to match the board you are using
#| type "make clean" after changing this, so all files will be rebuilt
#|
set( CPU "cortex-m4" )