Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Gecko3 - CCC Event Weblog
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
E.1. Firmware<br />
WORD pStringDscr ;<br />
//−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />
// P r o t o t y p e s<br />
66 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />
void SetupCommand ( void ) ;<br />
void TD Init ( void ) ;<br />
void TD Poll ( void ) ;<br />
BOOL TD Suspend ( void ) ;<br />
71 BOOL TD Resume ( void ) ;<br />
BOOL DR GetDescriptor ( void ) ;<br />
BOOL DR SetConfiguration ( void ) ;<br />
BOOL DR GetConfiguration ( void ) ;<br />
76 BOOL D R S e t I n t e r f a c e ( void ) ;<br />
BOOL DR GetInterface ( void ) ;<br />
BOOL DR GetStatus ( void ) ;<br />
BOOL DR ClearFeature ( void ) ;<br />
BOOL DR SetFeature ( void ) ;<br />
81 BOOL DR VendorCmnd( void ) ;<br />
// t h i s t a b l e i s used by t h e epcs macro<br />
const char code EPCS Offset Lookup Table [ ] =<br />
{<br />
86 0 , // EP1OUT<br />
1 , // EP1IN<br />
2 , // EP2OUT<br />
2 , // EP2IN<br />
3 , // EP4OUT<br />
91 3 , // EP4IN<br />
4 , // EP6OUT<br />
4 , // EP6IN<br />
5 , // EP8OUT<br />
5 , // EP8IN<br />
96 } ;<br />
// macro f o r g e n e r a t i n g t h e address o f an endpoint ’ s c o n t r o l and s t a t u s r e g i s t e r<br />
(EPnCS)<br />
#define epcs (EP) ( EPCS Offset Lookup Table [ ( EP & 0x7E ) | (EP > 128) ] + 0xE6A1)<br />
101 //−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />
// Code<br />
//−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−<br />
// Task d i s p a t c h e r<br />
106 void main ( void )<br />
{<br />
DWORD i ;<br />
WORD o f f s e t ;<br />
DWORD DevDescrLen ;<br />
111 DWORD j =0;<br />
WORD IntDescrAddr ;<br />
WORD ExtDescrAddr ;<br />
// I n i t i a l i z e Global S t a t e s<br />
116 S l e e p = FALSE; // D i s a b l e s l e e p mode<br />
Rwuen = FALSE; // D i s a b l e remote wakeup<br />
S e l f p w r = FALSE ; // D i s a b l e s e l f powered<br />
GotSUD = FALSE; // Clear ”Got s e t u p data ” f l a g<br />
121 // I n i t i a l i z e user d e v i c e<br />
TD Init ( ) ;<br />
// The f o l l o w i n g s e c t i o n o f code i s used to r e l o c a t e t h e d e s c r i p t o r t a b l e .<br />
// Since t h e SUDPTRH and SUDPTRL are a s s i g n e d t h e address o f t h e d e s c r i p t o r<br />
126 // t a b l e , t h e d e s c r i p t o r t a b l e must be l o c a t e d in on−p a r t memory .<br />
Project Report 59