Mercurial > louis > kiibohd-controller
annotate Lib/mk20dx.c @ 368:06a54d582bf8
FIxing Media Keys and general USB compatibilty
- Media keys tested working on Linux/Windows/Mac (use Consumer control)
- Fixed enumeration delays
- Fixed virtual serial port configuration issues
- Fixed GET_REPORT and SET_REPORT
- Added intial descriptors and endpoints for Mouse and Joystick devices
- Split out the consumer and system control endpoint
- Added more fault debugging messages
- Added interface names to endpoints (visible in Windows Device Manager)
- Added KLL define for keyboard locale
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Wed, 19 Aug 2015 00:01:15 -0700 |
parents | 2bcf6800b851 |
children |
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 { | |
368
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
109 print("Hard Fault! SCB_HFSR: "); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
110 printHex32( SCB_HFSR ); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
111 print( NL ); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
112 SOFTWARE_RESET(); |
340 | 113 } |
114 | |
115 | |
116 // NVIC - Memory Manager Fault ISR | |
117 void memmanage_fault_default_isr() | |
118 { | |
368
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
119 print("Memory Manager Fault! SCB_CFSR: "); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
120 printHex32( SCB_CFSR ); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
121 print(" SCB_MMAR: "); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
122 printHex32( SCB_MMAR ); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
123 print( NL ); |
340 | 124 } |
125 | |
126 | |
127 // NVIC - Bus Fault ISR | |
128 void bus_fault_default_isr() | |
129 { | |
368
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
130 print("Bus Fault! SCB_CFSR: "); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
131 printHex32( SCB_CFSR ); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
132 print(" SCB_BFAR: "); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
133 printHex32( SCB_BFAR ); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
134 print( NL ); |
340 | 135 } |
136 | |
137 | |
138 // NVIC - Usage Fault ISR | |
139 void usage_fault_default_isr() | |
140 { | |
368
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
141 print("Usage Fault! SCB_CFSR: "); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
142 printHex32( SCB_CFSR ); |
06a54d582bf8
FIxing Media Keys and general USB compatibilty
Jacob Alexander <haata@kiibohd.com>
parents:
345
diff
changeset
|
143 print( NL ); |
340 | 144 } |
145 | |
146 | |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
147 // NVIC - Default ISR/Vector Linking |
340 | 148 void nmi_isr() __attribute__ ((weak, alias("nmi_default_isr"))); |
149 void hard_fault_isr() __attribute__ ((weak, alias("hard_fault_default_isr"))); | |
150 void memmanage_fault_isr() __attribute__ ((weak, alias("memmanage_fault_default_isr"))); | |
151 void bus_fault_isr() __attribute__ ((weak, alias("bus_fault_default_isr"))); | |
152 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
|
153 void svcall_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
154 void debugmonitor_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
155 void pendablesrvreq_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
156 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
|
157 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
158 void dma_ch0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
159 void dma_ch1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
160 void dma_ch2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
161 void dma_ch3_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
162 void dma_ch4_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
163 void dma_ch5_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
164 void dma_ch6_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
165 void dma_ch7_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
166 void dma_ch8_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
167 void dma_ch9_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
168 void dma_ch10_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
169 void dma_ch11_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
170 void dma_ch12_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
171 void dma_ch13_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
172 void dma_ch14_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
173 void dma_ch15_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
174 void dma_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
175 void mcm_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
176 void flash_cmd_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
177 void flash_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
178 void low_voltage_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
179 void wakeup_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
180 void watchdog_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
181 void i2c0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
182 void i2c1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
183 void i2c2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
184 void spi0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
185 void spi1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
186 void spi2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
187 void sdhc_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
188 void can0_message_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
189 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
|
190 void can0_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
191 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
|
192 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
|
193 void can0_wakeup_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
194 void i2s0_tx_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
195 void i2s0_rx_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
196 void uart0_lon_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
197 void uart0_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
198 void uart0_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
199 void uart1_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
200 void uart1_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
201 void uart2_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
202 void uart2_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
203 void uart3_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
204 void uart3_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
205 void uart4_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
206 void uart4_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
207 void uart5_status_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
208 void uart5_error_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
209 void adc0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
210 void adc1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
211 void cmp0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
212 void cmp1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
213 void cmp2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
214 void ftm0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
215 void ftm1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
216 void ftm2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
217 void ftm3_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
218 void cmt_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
219 void rtc_alarm_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
220 void rtc_seconds_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
221 void pit0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
222 void pit1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
223 void pit2_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
224 void pit3_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
225 void pdb_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
226 void usb_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
227 void usb_charge_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
228 void dac0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
229 void dac1_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
230 void tsi0_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
231 void mcg_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
232 void lptmr_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
233 void porta_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
234 void portb_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
235 void portc_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
236 void portd_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
237 void porte_isr() __attribute__ ((weak, alias("unused_isr"))); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
238 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
|
239 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
240 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
241 // NVIC - Interrupt Vector Table |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
242 __attribute__ ((section(".vectors"), used)) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
243 void (* const gVectors[])() = |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
244 { |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
245 (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
|
246 ResetHandler, // 1 ARM: Initial Program Counter |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
247 nmi_isr, // 2 ARM: Non-maskable Interrupt (NMI) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
248 hard_fault_isr, // 3 ARM: Hard Fault |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
249 memmanage_fault_isr, // 4 ARM: MemManage Fault |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
250 bus_fault_isr, // 5 ARM: Bus Fault |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
251 usage_fault_isr, // 6 ARM: Usage Fault |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
252 fault_isr, // 7 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
253 fault_isr, // 8 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
254 fault_isr, // 9 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
255 fault_isr, // 10 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
256 svcall_isr, // 11 ARM: Supervisor call (SVCall) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
257 debugmonitor_isr, // 12 ARM: Debug Monitor |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
258 fault_isr, // 13 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
259 pendablesrvreq_isr, // 14 ARM: Pendable req serv(PendableSrvReq) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
260 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
|
261 #if defined(_mk20dx128_) || defined(_mk20dx128vlf5_) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
262 dma_ch0_isr, // 16 DMA channel 0 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
263 dma_ch1_isr, // 17 DMA channel 1 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
264 dma_ch2_isr, // 18 DMA channel 2 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
265 dma_ch3_isr, // 19 DMA channel 3 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
266 dma_error_isr, // 20 DMA error interrupt channel |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
267 unused_isr, // 21 DMA -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
268 flash_cmd_isr, // 22 Flash Memory Command complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
269 flash_error_isr, // 23 Flash Read collision |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
270 low_voltage_isr, // 24 Low-voltage detect/warning |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
271 wakeup_isr, // 25 Low Leakage Wakeup |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
272 watchdog_isr, // 26 Both EWM and WDOG interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
273 i2c0_isr, // 27 I2C0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
274 spi0_isr, // 28 SPI0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
275 i2s0_tx_isr, // 29 I2S0 Transmit |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
276 i2s0_rx_isr, // 30 I2S0 Receive |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
277 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
|
278 uart0_status_isr, // 32 UART0 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
279 uart0_error_isr, // 33 UART0 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
280 uart1_status_isr, // 34 UART1 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
281 uart1_error_isr, // 35 UART1 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
282 uart2_status_isr, // 36 UART2 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
283 uart2_error_isr, // 37 UART2 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
284 adc0_isr, // 38 ADC0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
285 cmp0_isr, // 39 CMP0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
286 cmp1_isr, // 40 CMP1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
287 ftm0_isr, // 41 FTM0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
288 ftm1_isr, // 42 FTM1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
289 cmt_isr, // 43 CMT |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
290 rtc_alarm_isr, // 44 RTC Alarm interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
291 rtc_seconds_isr, // 45 RTC Seconds interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
292 pit0_isr, // 46 PIT Channel 0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
293 pit1_isr, // 47 PIT Channel 1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
294 pit2_isr, // 48 PIT Channel 2 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
295 pit3_isr, // 49 PIT Channel 3 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
296 pdb_isr, // 50 PDB Programmable Delay Block |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
297 usb_isr, // 51 USB OTG |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
298 usb_charge_isr, // 52 USB Charger Detect |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
299 tsi0_isr, // 53 TSI0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
300 mcg_isr, // 54 MCG |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
301 lptmr_isr, // 55 Low Power Timer |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
302 porta_isr, // 56 Pin detect (Port A) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
303 portb_isr, // 57 Pin detect (Port B) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
304 portc_isr, // 58 Pin detect (Port C) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
305 portd_isr, // 59 Pin detect (Port D) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
306 porte_isr, // 60 Pin detect (Port E) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
307 software_isr, // 61 Software interrupt |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
308 #elif defined(_mk20dx256_) || defined(_mk20dx256vlh7_) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
309 dma_ch0_isr, // 16 DMA channel 0 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
310 dma_ch1_isr, // 17 DMA channel 1 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
311 dma_ch2_isr, // 18 DMA channel 2 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
312 dma_ch3_isr, // 19 DMA channel 3 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
313 dma_ch4_isr, // 20 DMA channel 4 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
314 dma_ch5_isr, // 21 DMA channel 5 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
315 dma_ch6_isr, // 22 DMA channel 6 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
316 dma_ch7_isr, // 23 DMA channel 7 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
317 dma_ch8_isr, // 24 DMA channel 8 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
318 dma_ch9_isr, // 25 DMA channel 9 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
319 dma_ch10_isr, // 26 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
320 dma_ch11_isr, // 27 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
321 dma_ch12_isr, // 28 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
322 dma_ch13_isr, // 29 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
323 dma_ch14_isr, // 30 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
324 dma_ch15_isr, // 31 DMA channel 10 transfer complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
325 dma_error_isr, // 32 DMA error interrupt channel |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
326 unused_isr, // 33 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
327 flash_cmd_isr, // 34 Flash Memory Command complete |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
328 flash_error_isr, // 35 Flash Read collision |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
329 low_voltage_isr, // 36 Low-voltage detect/warning |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
330 wakeup_isr, // 37 Low Leakage Wakeup |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
331 watchdog_isr, // 38 Both EWM and WDOG interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
332 unused_isr, // 39 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
333 i2c0_isr, // 40 I2C0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
334 i2c1_isr, // 41 I2C1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
335 spi0_isr, // 42 SPI0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
336 spi1_isr, // 43 SPI1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
337 unused_isr, // 44 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
338 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
|
339 can0_bus_off_isr, // 46 CAN Bus Off |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
340 can0_error_isr, // 47 CAN Error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
341 can0_tx_warn_isr, // 48 CAN Transmit Warning |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
342 can0_rx_warn_isr, // 49 CAN Receive Warning |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
343 can0_wakeup_isr, // 50 CAN Wake Up |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
344 i2s0_tx_isr, // 51 I2S0 Transmit |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
345 i2s0_rx_isr, // 52 I2S0 Receive |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
346 unused_isr, // 53 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
347 unused_isr, // 54 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
348 unused_isr, // 55 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
349 unused_isr, // 56 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
350 unused_isr, // 57 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
351 unused_isr, // 58 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
352 unused_isr, // 59 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
353 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
|
354 uart0_status_isr, // 61 UART0 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
355 uart0_error_isr, // 62 UART0 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
356 uart1_status_isr, // 63 UART1 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
357 uart1_error_isr, // 64 UART1 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
358 uart2_status_isr, // 65 UART2 status |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
359 uart2_error_isr, // 66 UART2 error |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
360 unused_isr, // 67 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
361 unused_isr, // 68 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
362 unused_isr, // 69 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
363 unused_isr, // 70 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
364 unused_isr, // 71 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
365 unused_isr, // 72 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
366 adc0_isr, // 73 ADC0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
367 adc1_isr, // 74 ADC1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
368 cmp0_isr, // 75 CMP0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
369 cmp1_isr, // 76 CMP1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
370 cmp2_isr, // 77 CMP2 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
371 ftm0_isr, // 78 FTM0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
372 ftm1_isr, // 79 FTM1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
373 ftm2_isr, // 80 FTM2 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
374 cmt_isr, // 81 CMT |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
375 rtc_alarm_isr, // 82 RTC Alarm interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
376 rtc_seconds_isr, // 83 RTC Seconds interrupt |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
377 pit0_isr, // 84 PIT Channel 0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
378 pit1_isr, // 85 PIT Channel 1 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
379 pit2_isr, // 86 PIT Channel 2 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
380 pit3_isr, // 87 PIT Channel 3 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
381 pdb_isr, // 88 PDB Programmable Delay Block |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
382 usb_isr, // 89 USB OTG |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
383 usb_charge_isr, // 90 USB Charger Detect |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
384 unused_isr, // 91 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
385 unused_isr, // 92 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
386 unused_isr, // 93 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
387 unused_isr, // 94 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
388 unused_isr, // 95 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
389 unused_isr, // 96 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
390 dac0_isr, // 97 DAC0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
391 unused_isr, // 98 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
392 tsi0_isr, // 99 TSI0 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
393 mcg_isr, // 100 MCG |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
394 lptmr_isr, // 101 Low Power Timer |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
395 unused_isr, // 102 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
396 porta_isr, // 103 Pin detect (Port A) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
397 portb_isr, // 104 Pin detect (Port B) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
398 portc_isr, // 105 Pin detect (Port C) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
399 portd_isr, // 106 Pin detect (Port D) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
400 porte_isr, // 107 Pin detect (Port E) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
401 unused_isr, // 108 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
402 unused_isr, // 109 -- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
403 software_isr, // 110 Software interrupt |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
404 #endif |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
405 }; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
406 |
170
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
407 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
408 // ----- Flash Configuration ----- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
409 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
410 // 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
|
411 #if defined(_mk20dx128_) || defined(_mk20dx256_) |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
412 __attribute__ ((section(".flashconfig"), used)) |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
413 const uint8_t flashconfigbytes[16] = { |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
414 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
|
415 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
|
416 }; |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
417 #elif defined(_mk20dx128vlf5_) && defined(_bootloader_) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
418 // 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
|
419 // FSEC is in correct location -Jacob |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
420 __attribute__ ((section(".flashconfig"), used)) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
421 const uint8_t flashconfigbytes[16] = { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
422 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
|
423 |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
424 // |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
425 // 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
|
426 // 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
|
427 // 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
|
428 // 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
|
429 // 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
|
430 // 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
|
431 // |
2ddb7c0a4f51
Adding FPROT flash protection bit for 4k Bootloader on the mk20dx128vlf5
Jacob Alexander <haata@kiibohd.com>
parents:
192
diff
changeset
|
432 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
|
433 |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
434 0xBE, // Flash security byte FSEC |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
435 0x03, // Flash nonvolatile option byte FOPT |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
436 0xFF, // EEPROM Protection Byte FEPROT |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
437 0xFF, // Data Flash Protection Byte FDPROT |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
438 }; |
263
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
439 #elif defined(_mk20dx256vlh7_) && defined(_bootloader_) |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
440 // 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
|
441 // FSEC is in correct location -Jacob |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
442 __attribute__ ((section(".flashconfig"), used)) |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
443 const uint8_t flashconfigbytes[16] = { |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
444 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
|
445 |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
446 // |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
447 // 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
|
448 // Still possible to overwrite the bootloader using an external flashing device |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
449 // For more details see: |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
450 // 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
|
451 // http://cache.freescale.com/files/microcontrollers/doc/app_note/AN4507.pdf |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
452 // 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
|
453 // |
340 | 454 0xFF, 0xFF, 0xFF, 0xFE, // Program Flash Protection Bytes FPROT0-3 |
263
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
455 |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
456 0xBE, // Flash security byte FSEC |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
457 0x03, // Flash nonvolatile option byte FOPT |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
458 0xFF, // EEPROM Protection Byte FEPROT |
9afed592bcb5
Preparing for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
247
diff
changeset
|
459 0xFF, // Data Flash Protection Byte FDPROT |
314
8325f8c91663
Fixing bugs in mk20dx256vlh7 Bootloader support.
Jacob Alexander <haata@kiibohd.com>
parents:
308
diff
changeset
|
460 }; |
170
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
461 #endif |
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
462 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
463 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
464 |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
465 // ----- Functions ----- |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
466 |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
467 #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
|
468 __attribute__((noreturn)) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
469 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
|
470 { |
308 | 471 // addr is in r0 |
472 __asm__("ldr sp, [%[addr], #0]\n" | |
473 "ldr pc, [%[addr], #4]" | |
474 :: [addr] "r" (addr)); | |
475 // NOTREACHED | |
476 __builtin_unreachable(); | |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
477 } |
265
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
478 #endif |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
479 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
480 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
|
481 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
482 char *buf = addr; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
483 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
484 for (; len > 0; --len, ++buf) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
485 *buf = val; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
486 return (addr); |
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 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
489 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
|
490 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
491 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
|
492 int val = 0; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
493 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
494 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
|
495 /* NOTHING */; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
496 return (val); |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
497 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
498 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
499 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
|
500 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
501 char *dstbuf = dst; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
502 const char *srcbuf = src; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
503 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
504 for (; len > 0; --len, ++dstbuf, ++srcbuf) |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
505 *dstbuf = *srcbuf; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
506 return (dst); |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
507 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
508 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
509 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
510 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
511 // ----- Chip Entry Point ----- |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
512 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
513 __attribute__ ((section(".startup"))) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
514 void ResetHandler() |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
515 { |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
516 #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
|
517 extern uint32_t _app_rom; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
518 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
519 // 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
|
520 // 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
|
521 // 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
|
522 // |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
523 // Purposefully disabling the watchdog *after* the reset check this way |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
524 // 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
|
525 // RCM_SRS0 & 0x20 |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
526 // |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
527 // Also checking for ARM lock-up signal (invalid firmware image) |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
528 // RCM_SRS1 & 0x02 |
330
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
529 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
|
530 RCM_SRS0 & 0x40 |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
531 // WDOG (Watchdog timeout) |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
532 || RCM_SRS0 & 0x20 |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
533 // 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
|
534 || RCM_SRS1 & 0x02 |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
535 // Blank flash check |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
536 || _app_rom == 0xffffffff |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
537 // Software reset |
f4d4cad283c6
Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
314
diff
changeset
|
538 || 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
|
539 ) |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
540 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
541 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
|
542 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
543 else |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
544 { |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
545 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
|
546 SCB_VTOR = addr; // relocate vector table |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
547 jump_to_app( addr ); |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
548 } |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
549 #endif |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
550 // Disable Watchdog |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
551 WDOG_UNLOCK = WDOG_UNLOCK_SEQ1; |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
552 WDOG_UNLOCK = WDOG_UNLOCK_SEQ2; |
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
553 WDOG_STCTRLH = WDOG_STCTRLH_ALLOWUPDATE; |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
554 |
265
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
555 uint32_t *src = (uint32_t*)&_etext; |
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
556 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
|
557 |
175 | 558 // Enable clocks to always-used peripherals |
559 SIM_SCGC5 = 0x00043F82; // Clocks active to all GPIO | |
560 SIM_SCGC6 = SIM_SCGC6_FTM0 | SIM_SCGC6_FTM1 | SIM_SCGC6_ADC0 | SIM_SCGC6_FTFL; | |
561 #if defined(_mk20dx128_) | |
562 SIM_SCGC6 |= SIM_SCGC6_RTC; | |
340 | 563 #elif defined(_mk20dx256_) || defined(_mk20dx256vlh7_) |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
564 SIM_SCGC3 = SIM_SCGC3_ADC1 | SIM_SCGC3_FTM2; |
175 | 565 SIM_SCGC6 |= SIM_SCGC6_RTC; |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
566 #endif |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
567 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
568 #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
|
569 // 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
|
570 if ( !(RTC_CR & RTC_CR_OSCE) ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
571 { |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
572 RTC_SR = 0; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
573 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
|
574 } |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
575 #endif |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
576 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
577 // release I/O pins hold, if we woke up from VLLS mode |
175 | 578 if ( PMC_REGSC & PMC_REGSC_ACKISO ) |
579 { | |
580 PMC_REGSC |= PMC_REGSC_ACKISO; | |
581 } | |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
582 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
583 // Prepare RAM |
265
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
584 while ( dest < (uint32_t*)&_edata ) *dest++ = *src++; |
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
585 dest = (uint32_t*)&_sbss; |
708af1b9bc55
Fixing warning messages found using clang.
Jacob Alexander <haata@kiibohd.com>
parents:
263
diff
changeset
|
586 while ( dest < (uint32_t*)&_ebss ) *dest++ = 0; |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
587 |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
588 // MCHCK / Kiibohd-dfu |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
589 #if defined(_mk20dx128vlf5_) |
175 | 590 // Default all interrupts to medium priority level |
591 for ( unsigned int i = 0; i < NVIC_NUM_INTERRUPTS; i++ ) | |
592 { | |
593 NVIC_SET_PRIORITY( i, 128 ); | |
594 } | |
595 | |
308 | 596 // FLL at 48MHz |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
597 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
|
598 |
175 | 599 // USB Clock and FLL select |
600 SIM_SOPT2 = SIM_SOPT2_USBSRC | SIM_SOPT2_TRACECLKSEL; | |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
601 |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
602 // 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
|
603 #else |
340 | 604 #if defined(_mk20dx128_) || defined(_mk20dx256_) |
605 // use vector table in flash | |
606 SCB_VTOR = 0; | |
607 #endif | |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
608 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
609 // default all interrupts to medium priority level |
266
596d8e300a37
Fixing device bricking bug
Jacob Alexander <haata@kiibohd.com>
parents:
265
diff
changeset
|
610 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
|
611 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
612 NVIC_SET_PRIORITY( i, 128 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
613 } |
170
85d74e5e1a95
More work on mk20dx128vlf5 port.
Jacob Alexander <haata@kiibohd.com>
parents:
169
diff
changeset
|
614 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
615 // start in FEI mode |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
616 // enable capacitors for crystal |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
617 OSC0_CR = OSC_SC8P | OSC_SC2P; |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
618 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
619 // 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
|
620 MCG_C2 = MCG_C2_RANGE0( 2 ) | MCG_C2_EREFS; |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
621 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
622 // 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
|
623 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
|
624 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
625 // wait for crystal oscillator to begin |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
626 while ( (MCG_S & MCG_S_OSCINIT0) == 0 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
627 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
628 // wait for FLL to use oscillator |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
629 while ( (MCG_S & MCG_S_IREFST) != 0 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
630 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
631 // wait for MCGOUT to use oscillator |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
632 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
|
633 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
634 // now we're in FBE mode |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
635 #if F_CPU == 72000000 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
636 // 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
|
637 MCG_C5 = MCG_C5_PRDIV0( 7 ); |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
638 #else |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
639 // 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
|
640 MCG_C5 = MCG_C5_PRDIV0( 3 ); |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
641 #endif |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
642 |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
643 #if F_CPU == 72000000 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
644 // 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
|
645 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
|
646 #else |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
647 // config PLL for 96 MHz output |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
648 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
|
649 #endif |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
650 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
651 // 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
|
652 while ( !(MCG_S & MCG_S_PLLST) ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
653 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
654 // wait for PLL to lock |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
655 while ( !(MCG_S & MCG_S_LOCK0) ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
656 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
657 // now we're in PBE mode |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
658 #if F_CPU == 96000000 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
659 // 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
|
660 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
|
661 #elif F_CPU == 72000000 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
662 // 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
|
663 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
|
664 #elif F_CPU == 48000000 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
665 // 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
|
666 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
|
667 #elif F_CPU == 24000000 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
668 // 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
|
669 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
|
670 #else |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
671 #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
|
672 #endif |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
673 // 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
|
674 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
|
675 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
676 // wait for PLL clock to be used |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
677 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
|
678 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
679 // now we're in PEE mode |
333
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
680 #if F_CPU == 72000000 |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
681 // configure USB for 48 MHz clock |
772f9bea482b
Adding 72 MHz clock support for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents:
330
diff
changeset
|
682 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
|
683 #else |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
684 // configure USB for 48 MHz clock |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
685 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
|
686 #endif |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
687 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
688 // 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
|
689 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
|
690 |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
691 #endif |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
692 |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
693 #if !defined(_bootloader_) |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
694 // Initialize the SysTick counter |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
695 SYST_RVR = (F_CPU / 1000) - 1; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
696 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
|
697 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
698 __enable_irq(); |
192
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
699 #else |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
700 // Disable Watchdog for bootloader |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
701 WDOG_STCTRLH &= ~WDOG_STCTRLH_WDOGEN; |
6ac92b8614c0
Fixing RAM calculator and reduced actual SRAM usage
Jacob Alexander <haata@kiibohd.com>
parents:
177
diff
changeset
|
702 #endif |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
703 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
704 main(); |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
705 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
|
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 // ----- RAM Setup ----- |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
711 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
712 char *__brkval = (char *)&_ebss; |
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 void * _sbrk( int incr ) |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
715 { |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
716 char *prev = __brkval; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
717 __brkval += incr; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
718 return prev; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
719 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
720 |
174
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 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
723 // ----- Interrupt Execution Priority ----- |
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 int nvic_execution_priority() |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
726 { |
174
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
727 int priority = 256; |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
728 uint32_t primask, faultmask, basepri, ipsr; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
729 |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
730 // 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
|
731 // 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
|
732 asm volatile( "mrs %0, faultmask\n" : "=r" (faultmask):: ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
733 if ( faultmask ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
734 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
735 return -1; |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
736 } |
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 asm volatile( "mrs %0, primask\n" : "=r" (primask):: ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
739 if ( primask ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
740 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
741 return 0; |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
742 } |
174
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, ipsr\n" : "=r" (ipsr):: ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
745 if ( ipsr ) |
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 if ( ipsr < 16) |
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 priority = 0; // could be non-zero |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
750 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
751 else |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
752 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
753 priority = NVIC_GET_PRIORITY( ipsr - 16 ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
754 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
755 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
756 |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
757 asm volatile( "mrs %0, basepri\n" : "=r" (basepri):: ); |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
758 if ( basepri > 0 && basepri < priority ) |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
759 { |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
760 priority = basepri; |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
761 } |
848e1ef8966c
McHCK now working with UART.
Jacob Alexander <haata@kiibohd.com>
parents:
170
diff
changeset
|
762 |
118
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
763 return priority; |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
764 } |
b61ca96b7c24
File and macro modifications for supporting Teensy 3.1
Jacob Alexander <haata@kiibohd.com>
parents:
diff
changeset
|
765 |