Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
E.1. Firmware<br />
EP0CS |= bmHSNAK; ∗/ // Acknowledge handshake phase o f d e v i c e<br />
r e q u e s t<br />
321 break ;<br />
}<br />
case FLASH WRITE:<br />
{<br />
s p i f l a s h w r i t e m o d e = TRUE; // s e t EEPROME w r i t e mode<br />
326 ∗EP0BUF = EEPROM READ; // l o o p b a c k from vendor command<br />
EP0BCH = 0 ;<br />
EP0BCL = 1 ; // Arm endpoint with # b y t e s to t r a n s f e r<br />
EP0CS |= bmHSNAK; // Acknowledge handshake phase o f d e v i c e r e q u e s t<br />
break ;<br />
331 }<br />
case FLASH READ:<br />
{<br />
s p i f l a s h r e a d m o d e = TRUE; // s e t EEPROME w r i t e mode<br />
∗EP0BUF = EEPROM READ; // l o o p b a c k from vendor command<br />
336 EP0BCH = 0 ;<br />
EP0BCL = 1 ; // Arm endpoint with # b y t e s to t r a n s f e r<br />
EP0CS |= bmHSNAK; // Acknowledge handshake phase o f d e v i c e r e q u e s t<br />
break ;<br />
}<br />
341 case DOWNLOADOK:<br />
{<br />
// SPI Flash d e f a u l t c o n f i g<br />
new cfg = 1 ;<br />
s p i f l a s h a d r e s s = 0 ;<br />
346 // EEPROM d e f a u l t c o n f i g<br />
eeprom adress = 0 ; // c l e a r a d r e s s v a l u e<br />
eeprom write mode = FALSE;<br />
∗EP0BUF = DOWNLOADOK; // l o o p b a c k from vendor command<br />
351 EP0BCH = 0 ;<br />
EP0BCL = 1 ; // Arm endpoint with # b y t e s to t r a n s f e r<br />
EP0CS |= bmHSNAK; // Acknowledge handshake phase o f d e v i c e r e q u e s t<br />
break ;<br />
}<br />
356 case FW VERSION:<br />
{<br />
EP0BUF [ 0 ] = f w v e r d i g i t 0 ; // l o o p b a c k from vendor command<br />
EP0BUF [ 1 ] = f w v e r d i g i t 1 ;<br />
EP0BUF [ 2 ] = f w v e r d i g i t 2 ;<br />
361 EP0BUF [ 3 ] = f w v e r d i g i t 3 ;<br />
EP0BCH = 0 ;<br />
EP0BCL = 4 ; // Arm endpoint with # b y t e s to t r a n s f e r<br />
EP0CS |= bmHSNAK; // Acknowledge handshake phase o f d e v i c e r e q u e s t<br />
break ;<br />
366 }<br />
case DONE REQ:<br />
{<br />
i f ( done ack == TRUE)<br />
{<br />
371 done ack = FALSE ;<br />
∗EP0BUF = DONE REQ;<br />
} else<br />
{<br />
∗EP0BUF = 0 ;<br />
376 }<br />
EP0BCH = 0 ;<br />
EP0BCL = 1 ;<br />
EP0CS |= bmHSNAK;<br />
break ;<br />
381 }<br />
default :<br />
return (TRUE) ;<br />
}<br />
Project Report 69