Mercurial > louis > kiibohd-controller
annotate Lib/mk20dx.c @ 345:2bcf6800b851
Fixing order of layer debug stack display
- Adding NL's for fault messages
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Tue, 23 Jun 2015 07:58:31 -0700 |
parents | e8841d3c6db5 |
children | 06a54d582bf8 |
rev | line source |
---|---|
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
1 /* Teensyduino Core Library |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
2 * http://www.pjrc.com/teensy/ |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
3 * Copyright (c) 2013 PJRC.COM, LLC. |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
4 * Modifications by Jacob Alexander 2014-2015 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
5 * |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
6 * Permission is hereby granted, free of charge, to any person obtaining |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
7 * a copy of this software and associated documentation files (the |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
8 * "Software"), to deal in the Software without restriction, including |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
9 * without limitation the rights to use, copy, modify, merge, publish, |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
10 * distribute, sublicense, and/or sell copies of the Software, and to |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
11 * permit persons to whom the Software is furnished to do so, subject to |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
12 * the following conditions: |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
13 * |
169
7962a42dbda0
Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
118
diff
changeset
|
14 * 1. The above copyright notice and this permission notice shall be |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
15 * included in all copies or substantial portions of the Software. |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
16 * |
169
7962a42dbda0
Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
118
diff
changeset
|
17 * 2. If the Software is incorporated into a build system that allows |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
18 * selection among a list of target devices, then similar target |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
19 * devices manufactured by PJRC.COM must be included in the list of |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
20 * target devices and selectable in the same manner. |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
21 * |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
23 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
24 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
25 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
26 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
27 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
28 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
29 * SOFTWARE. |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
30 */ |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
31 |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
32 // ----- Includes ----- |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
33 |
340 | 34 // Debug Includes |
35 #if defined(_bootloader_) | |
36 #include <inttypes.h> | |
37 #include <debug.h> | |
38 #else | |
39 #include <print.h> | |
40 #endif | |
41 | |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
42 // Local Includes |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
43 #include "mk20dx.h" |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
44 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
45 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
46 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
47 // ----- Variables ----- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
48 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
49 extern unsigned long _stext; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
50 extern unsigned long _etext; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
51 extern unsigned long _sdata; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
52 extern unsigned long _edata; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
53 extern unsigned long _sbss; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
54 extern unsigned long _ebss; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
55 extern unsigned long _estack; |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
56 |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
57 const uint8_t sys_reset_to_loader_magic[22] = "\xff\x00\x7fRESET TO LOADER\x7f\x00\xff"; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
58 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
59 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
60 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
61 // ----- Function Declarations ----- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
62 |
177
3420e018ffbc
Adding McHCK flash reload function and some cleanup.
Jacob Alexander <haata@kiibohd.com>
parents:
175
diff
changeset
|
63 extern int main(); |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
64 void ResetHandler(); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
65 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
66 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
67 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
68 // ----- Interrupts ----- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
69 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
70 // NVIC - Default ISR |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
71 void fault_isr() |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
72 { |
345
2bcf6800b851
Fixing order of layer debug stack display
Jacob Alexander <haata@kiibohd.com>
parents:
340
diff
changeset
|
73 print("Fault!" NL ); |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
74 while ( 1 ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
75 { |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
76 // keep polling some communication while in fault |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
77 // mode, so we don't completely die. |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
78 if ( SIM_SCGC4 & SIM_SCGC4_USBOTG ) usb_isr(); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
79 if ( SIM_SCGC4 & SIM_SCGC4_UART0 ) uart0_status_isr(); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
80 if ( SIM_SCGC4 & SIM_SCGC4_UART1 ) uart1_status_isr(); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
81 if ( SIM_SCGC4 & SIM_SCGC4_UART2 ) uart2_status_isr(); |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
82 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
83 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
84 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
85 void unused_isr() |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
86 { |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
87 fault_isr(); |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
88 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
89 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
90 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
91 // NVIC - SysTick ISR |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
92 extern volatile uint32_t systick_millis_count; |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
93 void systick_default_isr() |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
94 { |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
95 systick_millis_count++; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
96 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
97 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
98 |
340 | 99 // NVIC - Non-Maskable Interrupt ISR |
100 void nmi_default_isr() | |
101 { | |
345
2bcf6800b851
Fixing order of layer debug stack display
Jacob Alexander <haata@kiibohd.com>
parents:
340
diff
changeset
|
102 print("NMI!" NL ); |
340 | 103 } |
104 | |
105 | |
106 // NVIC - Hard Fault ISR | |
107 void hard_fault_default_isr() | |
108 { | |
345
2bcf6800b851
Fixing order of layer debug stack display
Jacob Alexander <haata@kiibohd.com>
parents:
340
diff
changeset
|
109 print("Hard Fault!" NL ); |
340 | 110 } |
111 | |
112 | |
113 // NVIC - Memory Manager Fault ISR | |
114 void memmanage_fault_default_isr() | |
115 { | |
345
2bcf6800b851
Fixing order of layer debug stack display
Jacob Alexander <haata@kiibohd.com>
parents:
340
diff
changeset
|
116 print("Memory Manager Fault!" NL ); |
340 | 117 } |
118 | |
119 | |
120 // NVIC - Bus Fault ISR | |
121 void bus_fault_default_isr() | |
122 { | |
345
2bcf6800b851
Fixing order of layer debug stack display
Jacob Alexander <haata@kiibohd.com>
parents:
340
diff
changeset
|
123 print("Bus Fault!" NL ); |
340 | 124 } |
125 | |
126 | |
127 // NVIC - Usage Fault ISR | |
128 void usage_fault_default_isr() | |
129 { | |
345
2bcf6800b851
Fixing order of layer debug stack display
Jacob Alexander <haata@kiibohd.com>
parents:
340
diff
changeset
|
130 print("Usage Fault!" NL ); |
340 | 131 } |
132 | |
133 | |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
134 // NVIC - Default ISR/Vector Linking |
340 | 135 void nmi_isr() __attribute__ ((weak, alias("nmi_default_isr"))); |
136 void hard_fault_isr() __attribute__ ((weak, alias("hard_fault_default_isr"))); | |
137 void memmanage_fault_isr() __attribute__ ((weak, alias("memmanage_fault_default_isr"))); | |
138 void bus_fault_isr() __attribute__ ((weak, alias("bus_fault_default_isr"))); | |
139 void usage_fault_isr() __attribute__ ((weak, alias("usage_fault_default_isr"))); | |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
140 void svcall_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
141 void debugmonitor_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
142 void pendablesrvreq_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
143 void systick_isr() __attribute__ ((weak, alias("systick_default_isr"))); |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
144 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
145 void dma_ch0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
146 void dma_ch1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
147 void dma_ch2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
148 void dma_ch3_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
149 void dma_ch4_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
150 void dma_ch5_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
151 void dma_ch6_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
152 void dma_ch7_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
153 void dma_ch8_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
154 void dma_ch9_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
155 void dma_ch10_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
156 void dma_ch11_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
157 void dma_ch12_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
158 void dma_ch13_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
159 void dma_ch14_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
160 void dma_ch15_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
161 void dma_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
162 void mcm_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
163 void flash_cmd_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
164 void flash_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
165 void low_voltage_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
166 void wakeup_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
167 void watchdog_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
168 void i2c0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
169 void i2c1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
170 void i2c2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
171 void spi0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
172 void spi1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
173 void spi2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
174 void sdhc_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
175 void can0_message_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
176 void can0_bus_off_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
177 void can0_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
178 void can0_tx_warn_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
179 void can0_rx_warn_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
180 void can0_wakeup_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
181 void i2s0_tx_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
182 void i2s0_rx_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
183 void uart0_lon_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
184 void uart0_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
185 void uart0_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
186 void uart1_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
187 void uart1_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
188 void uart2_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
189 void uart2_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
190 void uart3_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
191 void uart3_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
192 void uart4_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
193 void uart4_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
194 void uart5_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
195 void uart5_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
196 void adc0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
197 void adc1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
198 void cmp0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
199 void cmp1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
200 void cmp2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
201 void ftm0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
202 void ftm1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
203 void ftm2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
204 void ftm3_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
205 void cmt_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
206 void rtc_alarm_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
207 void rtc_seconds_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
208 void pit0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
209 void pit1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
210 void pit2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
211 void pit3_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
212 void pdb_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
213 void usb_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
214 void usb_charge_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
215 void dac0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
216 void dac1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
217 void tsi0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
218 void mcg_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
219 void lptmr_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
220 void porta_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
221 void portb_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
222 void portc_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
223 void portd_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
224 void porte_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
225 void software_isr() __attribute__ ((weak, alias("unused_isr"))); |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
226 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
227 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
228 // NVIC - Interrupt Vector Table |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
229 __attribute__ ((section(".vectors"), used)) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
230 void (* const gVectors[])() = |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
231 { |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
232 (void (*)(void))((unsigned long)&_estack), // 0 ARM: Initial Stack Pointer |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
233 ResetHandler, // 1 ARM: Initial Program Counter |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
234 nmi_isr, // 2 ARM: Non-maskable Interrupt (NMI) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
235 hard_fault_isr, // 3 ARM: Hard Fault |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
236 memmanage_fault_isr, // 4 ARM: MemManage Fault |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
237 bus_fault_isr, // 5 ARM: Bus Fault |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
238 usage_fault_isr, // 6 ARM: Usage Fault |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
239 fault_isr, // 7 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
240 fault_isr, // 8 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
241 fault_isr, // 9 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
242 fault_isr, // 10 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
243 svcall_isr, // 11 ARM: Supervisor call (SVCall) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
244 debugmonitor_isr, // 12 ARM: Debug Monitor |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
245 fault_isr, // 13 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
246 pendablesrvreq_isr, // 14 ARM: Pendable req serv(PendableSrvReq) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
247 systick_isr, // 15 ARM: System tick timer (SysTick) |
169
7962a42dbda0
Initial work for McHCK mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
118
diff
changeset
|
248 #if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
249 dma_ch0_isr, // 16 DMA channel 0 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
250 dma_ch1_isr, // 17 DMA channel 1 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
251 dma_ch2_isr, // 18 DMA channel 2 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
252 dma_ch3_isr, // 19 DMA channel 3 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
253 dma_error_isr, // 20 DMA error interrupt channel |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
254 unused_isr, // 21 DMA -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
255 flash_cmd_isr, // 22 Flash Memory Command complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
256 flash_error_isr, // 23 Flash Read collision |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
257 low_voltage_isr, // 24 Low-voltage detect/warning |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
258 wakeup_isr, // 25 Low Leakage Wakeup |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
259 watchdog_isr, // 26 Both EWM and WDOG interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
260 i2c0_isr, // 27 I2C0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
261 spi0_isr, // 28 SPI0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
262 i2s0_tx_isr, // 29 I2S0 Transmit |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
263 i2s0_rx_isr, // 30 I2S0 Receive |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
264 uart0_lon_isr, // 31 UART0 CEA709.1-B (LON) status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
265 uart0_status_isr, // 32 UART0 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
266 uart0_error_isr, // 33 UART0 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
267 uart1_status_isr, // 34 UART1 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
268 uart1_error_isr, // 35 UART1 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
269 uart2_status_isr, // 36 UART2 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
270 uart2_error_isr, // 37 UART2 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
271 adc0_isr, // 38 ADC0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
272 cmp0_isr, // 39 CMP0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
273 cmp1_isr, // 40 CMP1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
274 ftm0_isr, // 41 FTM0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
275 ftm1_isr, // 42 FTM1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
276 cmt_isr, // 43 CMT |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
277 rtc_alarm_isr, // 44 RTC Alarm interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
278 rtc_seconds_isr, // 45 RTC Seconds interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
279 pit0_isr, // 46 PIT Channel 0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
280 pit1_isr, // 47 PIT Channel 1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
281 pit2_isr, // 48 PIT Channel 2 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
282 pit3_isr, // 49 PIT Channel 3 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
283 pdb_isr, // 50 PDB Programmable Delay Block |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
284 usb_isr, // 51 USB OTG |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
285 usb_charge_isr, // 52 USB Charger Detect |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
286 tsi0_isr, // 53 TSI0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
287 mcg_isr, // 54 MCG |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
288 lptmr_isr, // 55 Low Power Timer |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
289 porta_isr, // 56 Pin detect (Port A) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
290 portb_isr, // 57 Pin detect (Port B) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
291 portc_isr, // 58 Pin detect (Port C) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
292 portd_isr, // 59 Pin detect (Port D) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
293 porte_isr, // 60 Pin detect (Port E) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
294 software_isr, // 61 Software interrupt |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
295 #elif defined(_mk20dx256_) || defined(_mk20dx256vlh7_) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
296 dma_ch0_isr, // 16 DMA channel 0 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
297 dma_ch1_isr, // 17 DMA channel 1 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
298 dma_ch2_isr, // 18 DMA channel 2 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
299 dma_ch3_isr, // 19 DMA channel 3 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
300 dma_ch4_isr, // 20 DMA channel 4 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
301 dma_ch5_isr, // 21 DMA channel 5 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
302 dma_ch6_isr, // 22 DMA channel 6 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
303 dma_ch7_isr, // 23 DMA channel 7 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
304 dma_ch8_isr, // 24 DMA channel 8 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
305 dma_ch9_isr, // 25 DMA channel 9 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
306 dma_ch10_isr, // 26 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
307 dma_ch11_isr, // 27 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
308 dma_ch12_isr, // 28 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
309 dma_ch13_isr, // 29 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
310 dma_ch14_isr, // 30 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
311 dma_ch15_isr, // 31 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
312 dma_error_isr, // 32 DMA error interrupt channel |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
313 unused_isr, // 33 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
314 flash_cmd_isr, // 34 Flash Memory Command complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
315 flash_error_isr, // 35 Flash Read collision |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
316 low_voltage_isr, // 36 Low-voltage detect/warning |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
317 wakeup_isr, // 37 Low Leakage Wakeup |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
318 watchdog_isr, // 38 Both EWM and WDOG interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
319 unused_isr, // 39 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
320 i2c0_isr, // 40 I2C0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
321 i2c1_isr, // 41 I2C1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
322 spi0_isr, // 42 SPI0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
323 spi1_isr, // 43 SPI1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
324 unused_isr, // 44 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
325 can0_message_isr, // 45 CAN OR'ed Message buffer (0-15) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
326 can0_bus_off_isr, // 46 CAN Bus Off |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
327 can0_error_isr, // 47 CAN Error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
328 can0_tx_warn_isr, // 48 CAN Transmit Warning |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
329 can0_rx_warn_isr, // 49 CAN Receive Warning |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
330 can0_wakeup_isr, // 50 CAN Wake Up |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
331 i2s0_tx_isr, // 51 I2S0 Transmit |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
332 i2s0_rx_isr, // 52 I2S0 Receive |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
333 unused_isr, // 53 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
334 unused_isr, // 54 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
335 unused_isr, // 55 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
336 unused_isr, // 56 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
337 unused_isr, // 57 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
338 unused_isr, // 58 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
339 unused_isr, // 59 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
340 uart0_lon_isr, // 60 UART0 CEA709.1-B (LON) status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
341 uart0_status_isr, // 61 UART0 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
342 uart0_error_isr, // 62 UART0 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
343 uart1_status_isr, // 63 UART1 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
344 uart1_error_isr, // 64 UART1 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
345 uart2_status_isr, // 65 UART2 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
346 uart2_error_isr, // 66 UART2 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
347 unused_isr, // 67 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
348 unused_isr, // 68 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
349 unused_isr, // 69 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
350 unused_isr, // 70 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
351 unused_isr, // 71 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
352 unused_isr, // 72 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
353 adc0_isr, // 73 ADC0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
354 adc1_isr, // 74 ADC1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
355 cmp0_isr, // 75 CMP0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
356 cmp1_isr, // 76 CMP1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
357 cmp2_isr, // 77 CMP2 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
358 ftm0_isr, // 78 FTM0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
359 ftm1_isr, // 79 FTM1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
360 ftm2_isr, // 80 FTM2 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
361 cmt_isr, // 81 CMT |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
362 rtc_alarm_isr, // 82 RTC Alarm interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
363 rtc_seconds_isr, // 83 RTC Seconds interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
364 pit0_isr, // 84 PIT Channel 0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
365 pit1_isr, // 85 PIT Channel 1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
366 pit2_isr, // 86 PIT Channel 2 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
367 pit3_isr, // 87 PIT Channel 3 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
368 pdb_isr, // 88 PDB Programmable Delay Block |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
369 usb_isr, // 89 USB OTG |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
370 usb_charge_isr, // 90 USB Charger Detect |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
371 unused_isr, // 91 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
372 unused_isr, // 92 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
373 unused_isr, // 93 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
374 unused_isr, // 94 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
375 unused_isr, // 95 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
376 unused_isr, // 96 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
377 dac0_isr, // 97 DAC0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
378 unused_isr, // 98 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
379 tsi0_isr, // 99 TSI0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
380 mcg_isr, // 100 MCG |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
381 lptmr_isr, // 101 Low Power Timer |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
382 unused_isr, // 102 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
383 porta_isr, // 103 Pin detect (Port A) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
384 portb_isr, // 104 Pin detect (Port B) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
385 portc_isr, // 105 Pin detect (Port C) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
386 portd_isr, // 106 Pin detect (Port D) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
387 porte_isr, // 107 Pin detect (Port E) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
388 unused_isr, // 108 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
389 unused_isr, // 109 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
390 software_isr, // 110 Software interrupt |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
391 #endif |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
392 }; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
393 |
170
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
394 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
395 // ----- Flash Configuration ----- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
396 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
397 // Only necessary for Teensy 3s, MCHCK uses the Bootloader to handle this |
170
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
398 #if defined(_mk20dx128_) || defined(_mk20dx256_) |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
399 __attribute__ ((section(".flashconfig"), used)) |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
400 const uint8_t flashconfigbytes[16] = { |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
401 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
402 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
403 }; |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
404 #elif defined(_mk20dx128vlf5_) && defined(_bootloader_) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
405 // XXX Byte labels may be in incorrect positions, double check before modifying |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
406 // FSEC is in correct location -Jacob |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
407 __attribute__ ((section(".flashconfig"), used)) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
408 const uint8_t flashconfigbytes[16] = { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
409 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Backdoor Verif Key 28.3.1 |
247
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
410 |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
411 // |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
412 // Protecting the first 4k of Flash memory from being over-written while running (bootloader protection) |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
413 // Still possible to overwrite the bootloader using an external flashing device |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
414 // For more details see: |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
415 // http://cache.freescale.com/files/training/doc/dwf/AMF_ENT_T1031_Boston.pdf (page 8) |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
416 // http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4507.pdf |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
417 // http://cache.freescale.com/files/32bit/doc/ref_manual/K20P48M50SF0RM.pdf (28.34.6) |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
418 // |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
419 0xFF, 0xFF, 0xFF, 0xFE, // Program Flash Protection Bytes FPROT0-3 |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
420 |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
421 0xBE, // Flash security byte FSEC |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
422 0x03, // Flash nonvolatile option byte FOPT |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
423 0xFF, // EEPROM Protection Byte FEPROT |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
424 0xFF, // Data Flash Protection Byte FDPROT |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
425 }; |
263
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
426 #elif defined(_mk20dx256vlh7_) && defined(_bootloader_) |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
427 // XXX Byte labels may be in incorrect positions, double check before modifying |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
428 // FSEC is in correct location -Jacob |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
429 __attribute__ ((section(".flashconfig"), used)) |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
430 const uint8_t flashconfigbytes[16] = { |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
431 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // Backdoor Verif Key 28.3.1 |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
432 |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
433 // |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
434 // Protecting the first 8k of Flash memory from being over-written while running (bootloader protection) |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
435 // Still possible to overwrite the bootloader using an external flashing device |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
436 // For more details see: |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
437 // http://cache.freescale.com/files/training/doc/dwf/AMF_ENT_T1031_Boston.pdf (page 8) |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
438 // http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4507.pdf |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
439 // http://cache.freescale.com/files/32bit/doc/ref_manual/K20P64M72SF1RM.pdf (28.34.6) |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
440 // |
340 | 441 0xFF, 0xFF, 0xFF, 0xFE, // Program Flash Protection Bytes FPROT0-3 |
263
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
442 |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
443 0xBE, // Flash security byte FSEC |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
444 0x03, // Flash nonvolatile option byte FOPT |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
445 0xFF, // EEPROM Protection Byte FEPROT |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
446 0xFF, // Data Flash Protection Byte FDPROT |
314
8325f8c91663
Fixing bugs in mk20dx256vlh7 Bootloader support.
Jacob Alexander <haata@kiibohd.com>
parents:
308
diff
changeset
|
447 }; |
170
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
448 #endif |
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
449 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
450 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
451 |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
452 // ----- Functions ----- |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
453 |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
454 #if ( defined(_mk20dx128vlf5_) || defined(_mk20dx256vlh7_) ) && defined(_bootloader_) // Bootloader Section |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
455 __attribute__((noreturn)) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
456 static inline void jump_to_app( uintptr_t addr ) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
457 { |
308 | 458 // addr is in r0 |
459 __asm__("ldr sp, [%[addr], #0]\n" | |
460 "ldr pc, [%[addr], #4]" | |
461 :: [addr] "r" (addr)); | |
462 // NOTREACHED | |
463 __builtin_unreachable(); | |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
464 } |
265
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
465 #endif |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
466 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
467 void *memset( void *addr, int val, unsigned int len ) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
468 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
469 char *buf = addr; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
470 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
471 for (; len > 0; --len, ++buf) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
472 *buf = val; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
473 return (addr); |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
474 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
475 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
476 int memcmp( const void *a, const void *b, unsigned int len ) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
477 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
478 const uint8_t *ap = a, *bp = b; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
479 int val = 0; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
480 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
481 for (; len > 0 && (val = *ap - *bp) == 0; --len, ++ap, ++bp) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
482 /* NOTHING */; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
483 return (val); |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
484 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
485 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
486 void *memcpy( void *dst, const void *src, unsigned int len ) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
487 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
488 char *dstbuf = dst; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
489 const char *srcbuf = src; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
490 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
491 for (; len > 0; --len, ++dstbuf, ++srcbuf) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
492 *dstbuf = *srcbuf; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
493 return (dst); |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
494 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
495 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
496 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
497 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
498 // ----- Chip Entry Point ----- |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
499 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
500 __attribute__ ((section(".startup"))) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
501 void ResetHandler() |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
502 { |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
503 #if ( defined(_mk20dx128vlf5_) || defined(_mk20dx256vlh7_) ) && defined(_bootloader_) // Bootloader Section |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
504 extern uint32_t _app_rom; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
505 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
506 // We treat _app_rom as pointer to directly read the stack |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
507 // pointer and check for valid app code. This is no fool |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
508 // proof method, but it should help for the first flash. |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
509 // |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
510 // Purposefully disabling the watchdog *after* the reset check this way |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
511 // if the chip goes into an odd state we'll reset to the bootloader (invalid firmware image) |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
512 // RCM_SRS0 & 0x20 |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
513 // |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
514 // Also checking for ARM lock-up signal (invalid firmware image) |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
515 // RCM_SRS1 & 0x02 |
330
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
516 if ( // PIN (External Reset Pin/Switch) |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
517 RCM_SRS0 & 0x40 |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
518 // WDOG (Watchdog timeout) |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
519 || RCM_SRS0 & 0x20 |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
520 // LOCKUP (ARM Core LOCKUP event) |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
521 || RCM_SRS1 & 0x02 |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
522 // Blank flash check |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
523 || _app_rom == 0xffffffff |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
524 // Software reset |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
525 || memcmp( (uint8_t*)&VBAT, sys_reset_to_loader_magic, sizeof(sys_reset_to_loader_magic) ) == 0 |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
526 ) |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
527 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
528 memset( (uint8_t*)&VBAT, 0, sizeof(VBAT) ); |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
529 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
530 else |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
531 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
532 uint32_t addr = (uintptr_t)&_app_rom; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
533 SCB_VTOR = addr; // relocate vector table |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
534 jump_to_app( addr ); |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
535 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
536 #endif |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
537 // Disable Watchdog |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
538 WDOG_UNLOCK = WDOG_UNLOCK_SEQ1; |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
539 WDOG_UNLOCK = WDOG_UNLOCK_SEQ2; |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
540 WDOG_STCTRLH = WDOG_STCTRLH_ALLOWUPDATE; |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
541 |
265
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
542 uint32_t *src = (uint32_t*)&_etext; |
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
543 uint32_t *dest = (uint32_t*)&_sdata; |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
544 |
175 | 545 // Enable clocks to always-used peripherals |
546 SIM_SCGC5 = 0x00043F82; // Clocks active to all GPIO | |
547 SIM_SCGC6 = SIM_SCGC6_FTM0 | SIM_SCGC6_FTM1 | SIM_SCGC6_ADC0 | SIM_SCGC6_FTFL; | |
548 #if defined(_mk20dx128_) | |
549 SIM_SCGC6 |= SIM_SCGC6_RTC; | |
340 | 550 #elif defined(_mk20dx256_) || defined(_mk20dx256vlh7_) |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
551 SIM_SCGC3 = SIM_SCGC3_ADC1 | SIM_SCGC3_FTM2; |
175 | 552 SIM_SCGC6 |= SIM_SCGC6_RTC; |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
553 #endif |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
554 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
555 #if defined(_mk20dx128_) || defined(_mk20dx256_) // Teensy 3s |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
556 // if the RTC oscillator isn't enabled, get it started early |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
557 if ( !(RTC_CR & RTC_CR_OSCE) ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
558 { |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
559 RTC_SR = 0; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
560 RTC_CR = RTC_CR_SC16P | RTC_CR_SC4P | RTC_CR_OSCE; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
561 } |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
562 #endif |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
563 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
564 // release I/O pins hold, if we woke up from VLLS mode |
175 | 565 if ( PMC_REGSC & PMC_REGSC_ACKISO ) |
566 { | |
567 PMC_REGSC |= PMC_REGSC_ACKISO; | |
568 } | |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
569 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
570 // Prepare RAM |
265
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
571 while ( dest < (uint32_t*)&_edata ) *dest++ = *src++; |
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
572 dest = (uint32_t*)&_sbss; |
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
573 while ( dest < (uint32_t*)&_ebss ) *dest++ = 0; |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
574 |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
575 // MCHCK / Kiibohd-dfu |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
576 #if defined(_mk20dx128vlf5_) |
175 | 577 // Default all interrupts to medium priority level |
578 for ( unsigned int i = 0; i < NVIC_NUM_INTERRUPTS; i++ ) | |
579 { | |
580 NVIC_SET_PRIORITY( i, 128 ); | |
581 } | |
582 | |
308 | 583 // FLL at 48MHz |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
584 MCG_C4 = MCG_C4_DMX32 | MCG_C4_DRST_DRS( 1 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
585 |
175 | 586 // USB Clock and FLL select |
587 SIM_SOPT2 = SIM_SOPT2_USBSRC | SIM_SOPT2_TRACECLKSEL; | |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
588 |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
589 // Teensy 3.0 and 3.1 and Kiibohd-dfu (mk20dx256vlh7) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
590 #else |
340 | 591 #if defined(_mk20dx128_) || defined(_mk20dx256_) |
592 // use vector table in flash | |
593 SCB_VTOR = 0; | |
594 #endif | |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
595 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
596 // default all interrupts to medium priority level |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
597 for ( unsigned int i = 0; i < NVIC_NUM_INTERRUPTS; i++ ) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
598 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
599 NVIC_SET_PRIORITY( i, 128 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
600 } |
170
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
601 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
602 // start in FEI mode |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
603 // enable capacitors for crystal |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
604 OSC0_CR = OSC_SC8P | OSC_SC2P; |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
605 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
606 // enable osc, 8-32 MHz range, low power mode |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
607 MCG_C2 = MCG_C2_RANGE0( 2 ) | MCG_C2_EREFS; |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
608 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
609 // switch to crystal as clock source, FLL input = 16 MHz / 512 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
610 MCG_C1 = MCG_C1_CLKS( 2 ) | MCG_C1_FRDIV( 4 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
611 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
612 // wait for crystal oscillator to begin |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
613 while ( (MCG_S & MCG_S_OSCINIT0) == 0 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
614 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
615 // wait for FLL to use oscillator |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
616 while ( (MCG_S & MCG_S_IREFST) != 0 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
617 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
618 // wait for MCGOUT to use oscillator |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
619 while ( (MCG_S & MCG_S_CLKST_MASK) != MCG_S_CLKST( 2 ) ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
620 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
621 // now we're in FBE mode |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
622 #if F_CPU == 72000000 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
623 // config PLL input for 16 MHz Crystal / 8 = 2 MHz |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
624 MCG_C5 = MCG_C5_PRDIV0( 7 ); |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
625 #else |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
626 // config PLL input for 16 MHz Crystal / 4 = 4 MHz |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
627 MCG_C5 = MCG_C5_PRDIV0( 3 ); |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
628 #endif |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
629 |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
630 #if F_CPU == 72000000 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
631 // config PLL for 72 MHz output (36 * 2 MHz Ext PLL) |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
632 MCG_C6 = MCG_C6_PLLS | MCG_C6_VDIV0( 12 ); |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
633 #else |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
634 // config PLL for 96 MHz output |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
635 MCG_C6 = MCG_C6_PLLS | MCG_C6_VDIV0( 0 ); |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
636 #endif |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
637 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
638 // wait for PLL to start using xtal as its input |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
639 while ( !(MCG_S & MCG_S_PLLST) ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
640 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
641 // wait for PLL to lock |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
642 while ( !(MCG_S & MCG_S_LOCK0) ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
643 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
644 // now we're in PBE mode |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
645 #if F_CPU == 96000000 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
646 // config divisors: 96 MHz core, 48 MHz bus, 24 MHz flash |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
647 SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1( 0 ) | SIM_CLKDIV1_OUTDIV2( 1 ) | SIM_CLKDIV1_OUTDIV4( 3 ); |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
648 #elif F_CPU == 72000000 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
649 // config divisors: 72 MHz core, 36 MHz bus, 24 MHz flash |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
650 SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1( 0 ) | SIM_CLKDIV1_OUTDIV2( 1 ) | SIM_CLKDIV1_OUTDIV4( 2 ); |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
651 #elif F_CPU == 48000000 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
652 // config divisors: 48 MHz core, 48 MHz bus, 24 MHz flash |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
653 SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1( 1 ) | SIM_CLKDIV1_OUTDIV2( 1 ) | SIM_CLKDIV1_OUTDIV4( 3 ); |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
654 #elif F_CPU == 24000000 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
655 // config divisors: 24 MHz core, 24 MHz bus, 24 MHz flash |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
656 SIM_CLKDIV1 = SIM_CLKDIV1_OUTDIV1( 3 ) | SIM_CLKDIV1_OUTDIV2( 3 ) | SIM_CLKDIV1_OUTDIV4( 3 ); |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
657 #else |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
658 #error "Error, F_CPU must be 96000000, 72000000, 48000000, or 24000000" |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
659 #endif |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
660 // switch to PLL as clock source, FLL input = 16 MHz / 512 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
661 MCG_C1 = MCG_C1_CLKS( 0 ) | MCG_C1_FRDIV( 4 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
662 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
663 // wait for PLL clock to be used |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
664 while ( (MCG_S & MCG_S_CLKST_MASK) != MCG_S_CLKST( 3 ) ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
665 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
666 // now we're in PEE mode |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
667 #if F_CPU == 72000000 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
668 // configure USB for 48 MHz clock |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
669 SIM_CLKDIV2 = SIM_CLKDIV2_USBDIV( 2 ) | SIM_CLKDIV2_USBFRAC; // USB = 72 MHz PLL / 1.5 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
670 #else |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
671 // configure USB for 48 MHz clock |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
672 SIM_CLKDIV2 = SIM_CLKDIV2_USBDIV( 1 ); // USB = 96 MHz PLL / 2 |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
673 #endif |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
674 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
675 // USB uses PLL clock, trace is CPU clock, CLKOUT=OSCERCLK0 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
676 SIM_SOPT2 = SIM_SOPT2_USBSRC | SIM_SOPT2_PLLFLLSEL | SIM_SOPT2_TRACECLKSEL | SIM_SOPT2_CLKOUTSEL( 6 ); |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
677 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
678 #endif |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
679 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
680 #if !defined(_bootloader_) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
681 // Initialize the SysTick counter |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
682 SYST_RVR = (F_CPU / 1000) - 1; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
683 SYST_CSR = SYST_CSR_CLKSOURCE | SYST_CSR_TICKINT | SYST_CSR_ENABLE; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
684 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
685 __enable_irq(); |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
686 #else |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
687 // Disable Watchdog for bootloader |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
688 WDOG_STCTRLH &= ~WDOG_STCTRLH_WDOGEN; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
689 #endif |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
690 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
691 main(); |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
692 while ( 1 ); // Shouldn't get here... |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
693 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
694 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
695 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
696 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
697 // ----- RAM Setup ----- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
698 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
699 char *__brkval = (char *)&_ebss; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
700 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
701 void * _sbrk( int incr ) |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
702 { |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
703 char *prev = __brkval; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
704 __brkval += incr; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
705 return prev; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
706 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
707 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
708 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
709 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
710 // ----- Interrupt Execution Priority ----- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
711 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
712 int nvic_execution_priority() |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
713 { |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
714 int priority = 256; |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
715 uint32_t primask, faultmask, basepri, ipsr; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
716 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
717 // full algorithm in ARM DDI0403D, page B1-639 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
718 // this isn't quite complete, but hopefully good enough |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
719 asm volatile( "mrs %0, faultmask\n" : "=r" (faultmask):: ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
720 if ( faultmask ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
721 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
722 return -1; |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
723 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
724 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
725 asm volatile( "mrs %0, primask\n" : "=r" (primask):: ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
726 if ( primask ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
727 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
728 return 0; |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
729 } |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
730 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
731 asm volatile( "mrs %0, ipsr\n" : "=r" (ipsr):: ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
732 if ( ipsr ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
733 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
734 if ( ipsr < 16) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
735 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
736 priority = 0; // could be non-zero |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
737 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
738 else |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
739 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
740 priority = NVIC_GET_PRIORITY( ipsr - 16 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
741 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
742 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
743 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
744 asm volatile( "mrs %0, basepri\n" : "=r" (basepri):: ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
745 if ( basepri > 0 && basepri < priority ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
746 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
747 priority = basepri; |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
748 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
749 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
750 return priority; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
751 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
752 |