25.12.2013 Aufrufe

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!