annotate Bootloader/main.c @ 331:9e31d92caf12

Initial STLcd code. - Basic screen initialization and clear is working - Currently SPI is set to a low speed for easy logic analyzer debugging
author Jacob Alexander <haata@kiibohd.com>
date Tue, 14 Apr 2015 00:40:48 -0700
parents f4d4cad283c6
children 9ac304aa1ab5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
1 /* Copyright (c) 2011,2012 Simon Schubert <2@0x2c.org>.
267
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
2 * Modifications by Jacob Alexander 2014-2015 <haata@kiibohd.com>
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
3 *
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
4 * This program is free software: you can redistribute it and/or modify
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
6 * the Free Software Foundation, either version 3 of the License, or
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
7 * (at your option) any later version.
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
8 *
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
9 * This program is distributed in the hope that it will be useful,
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
12 * GNU General Public License for more details.
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
13 *
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
16 */
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
17
267
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
18 // ----- Includes -----
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
19
267
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
20 // Local Includes
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
21 #include "mchck.h"
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
22 #include "dfu.desc.h"
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
23
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
24
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
25
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
26 // ----- Variables -----
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
27
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
28 /**
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
29 * Unfortunately we can't DMA directly to FlexRAM, so we'll have to stage here.
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
30 */
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
31 static char staging[ FLASH_SECTOR_SIZE ];
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
32
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
33
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
34
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
35 // ----- Functions -----
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
36
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
37 static enum dfu_status setup_write( size_t off, size_t len, void **buf )
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
38 {
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
39 GPIOA_PCOR |= (1<<5);
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
40 static int last = 0;
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
41
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
42 if ( len > sizeof(staging) )
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
43 return (DFU_STATUS_errADDRESS);
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
44
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
45 // We only allow the last write to be less than one sector size.
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
46 if ( off == 0 )
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
47 last = 0;
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
48 if ( last && len != 0 )
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
49 return (DFU_STATUS_errADDRESS);
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
50 if ( len != FLASH_SECTOR_SIZE )
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
51 {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
52 last = 1;
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
53 memset( staging, 0xff, sizeof(staging) );
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
54 }
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
55
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
56 *buf = staging;
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
57 return (DFU_STATUS_OK);
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
58 }
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
59
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
60 static enum dfu_status finish_write( void *buf, size_t off, size_t len )
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
61 {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
62 void *target;
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
63 if ( len == 0 )
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
64 return (DFU_STATUS_OK);
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
65
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
66 target = flash_get_staging_area(off + (uintptr_t)&_app_rom, FLASH_SECTOR_SIZE);
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
67 if ( !target )
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
68 return (DFU_STATUS_errADDRESS);
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
69 memcpy( target, buf, len );
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
70
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
71 // Depending on the error return a different status
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
72 switch ( flash_program_sector(off + (uintptr_t)&_app_rom, FLASH_SECTOR_SIZE) )
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
73 {
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
74 /*
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
75 case FTFL_FSTAT_RDCOLERR: // Flash Read Collision Error
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
76 case FTFL_FSTAT_ACCERR: // Flash Access Error
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
77 case FTFL_FSTAT_FPVIOL: // Flash Protection Violation Error
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
78 return (DFU_STATUS_errADDRESS);
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
79 case FTFL_FSTAT_MGSTAT0: // Memory Controller Command Completion Error
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
80 return (DFU_STATUS_errADDRESS);
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
81 */
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
82
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
83 case 0:
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
84 default: // No error
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
85 return (DFU_STATUS_OK);
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
86 }
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
87 }
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
88
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
89
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
90 static struct dfu_ctx dfu_ctx;
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
91
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
92 void init_usb_bootloader( int config )
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
93 {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
94 dfu_init(setup_write, finish_write, &dfu_ctx);
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
95 }
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
96
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
97 void main()
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
98 {
267
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
99 #if defined(_mk20dx128vlf5_) // Kiibohd-dfu / Infinity
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
100 // XXX McHCK uses B16 instead of A19
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
101
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
102 // Enabling LED to indicate we are in the bootloader
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
103 GPIOA_PDDR |= (1<<19);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
104 // Setup pin - A19 - See Lib/pin_map.mchck for more details on pins
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
105 PORTA_PCR19 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
106 GPIOA_PSOR |= (1<<19);
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
107
267
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
108 #elif defined(_mk20dx256vlh7_) // Kiibohd-dfu
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
109 // Enabling LED to indicate we are in the bootloader
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
110 GPIOA_PDDR |= (1<<5);
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
111 // Setup pin - A5 - See Lib/pin_map.mchck for more details on pins
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
112 PORTA_PCR5 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
267
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
113 GPIOA_PSOR |= (1<<5);
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
114 #else
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
115 #error "Incompatible chip for bootloader"
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
116 #endif
267
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
117
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
118 //for (uint8_t c = 0; c < 20; c++)
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
119 /*
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
120 while( 1 )
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
121 {
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
122 GPIOA_PTOR |= (1<<5);
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
123 for (uint32_t d = 0; d < 7200000; d++ );
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
124 }
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
125 */
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
126
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
127 // XXX REMOVEME
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
128 /*
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
129 GPIOB_PDDR |= (1<<16);
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
130 PORTB_PCR16 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
131 GPIOB_PSOR |= (1<<16);
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
132 */
331
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
133 // RST
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
134 GPIOC_PDDR |= (1<<8);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
135 PORTC_PCR8 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
136 GPIOC_PSOR |= (1<<8);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
137 /*
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
138 // CS1B
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
139 GPIOC_PDDR |= (1<<4);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
140 PORTC_PCR4 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
141 GPIOC_PCOR |= (1<<4);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
142 */
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
143 // Backlight
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
144 GPIOC_PDDR |= (1<<1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
145 PORTC_PCR1 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
146 GPIOC_PCOR |= (1<<1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
147 GPIOC_PDDR |= (1<<2);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
148 PORTC_PCR2 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
149 GPIOC_PCOR |= (1<<2);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
150 GPIOC_PDDR |= (1<<3);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
151 PORTC_PCR3 = PORT_PCR_SRE | PORT_PCR_DSE | PORT_PCR_MUX(1);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
152 GPIOC_PCOR |= (1<<3);
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
153
9e31d92caf12 Initial STLcd code.
Jacob Alexander <haata@kiibohd.com>
parents: 330
diff changeset
154
267
4739cb8920b8 More preparation for mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 193
diff changeset
155
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
156 flash_prepare_flashing();
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
157
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
158 uint32_t *position = &_app_rom;
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
159 usb_init( &dfu_device );
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
160 for (;;)
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
161 {
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
162 usb_poll();
330
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
163
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
164 /*
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
165 for ( ; position < &_app_rom + 0x201; position++ )
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
166 //for ( ; position < &_app_rom + 0x800; position++ )
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
167 {
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
168 if ( *position != 0xFFFFFFFF )
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
169 {
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
170 while( 1 )
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
171 {
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
172 GPIOA_PTOR |= (1<<5);
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
173 for (uint32_t d = 0; d < 7200000; d++ );
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
174 }
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
175 }
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
176 }
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
177 */
f4d4cad283c6 Some initial bringup of the dfu bootloader on the mk20dx256vlh7
Jacob Alexander <haata@kiibohd.com>
parents: 308
diff changeset
178
308
ab4515606277 Fix whitespace
Rowan Decker <Smasher816@gmail.com>
parents: 267
diff changeset
179 }
193
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
180 }
b091bb09c55f Adding McHCK DFU Bootloader
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
181