LPC2378 + Crossworks + USB

Gast #634605
Lesenswert?
• ▲
▼
Hallo,

hat jemand vielleicht ein Beispiel für die Programmierung der USB 
Schnittstelle des LPC2378 Controllers. Habe das Beispiel von Keil 
benutzt und es umgeschrieben, dass es auch unter Crossworks 1.7 
übersetzt werden kann. Dieses geänderte Projekt wieder im Keil 
compiliert und in das MCB2300 geflasht und es läuft. Mit Crossworks 
läuft zwar das Programm, der Interrupt kommt auch, aber die Goddluck LED 
kommt nicht.

Initeinstellungen habe ich auch kontrolliert und müsste passen.

Danke schön für Eure hilfe.

Gruss
Harry
Gast #634991
Lesenswert?
• ▲
▼
Weiterhin sind RealView (und EWARM) scheinbar relativ tolerant gegenüber 
"vergessenen" volatiles, code dahingehend nochmal abklopfen. Bei vielen 
USB-Codes muss man auf das struct packing achten. Dies ist 
compilerspezifisch und üblicherweise wird nicht gepackt, um schnelleren 
Zugriff auf Elemente zu ermöglichen. Bei arm-elf/-eabi gibt es dazu ein 
attribut packed (ähnlich __packed aber nicht als "prefix" sondern 
"suffix"). Das pack pragma gibt es bei RealView, EWARM und GNU (vgl. 
Dokumentation pragma und variable attributes bei gcc.gun.org).

Martin Thomas
Gast #635237
Lesenswert?
• ▲
▼
Hallo,

danke schön für Eure Antworten. Die Compiler Optimierung habe ich 
ausgeschaltet.

Eine Packed Structur in Keil C

typedef __packed struct _USB_SETUP_PACKET {
  REQUEST_TYPE bmRequestType;
  BYTE         bRequest;
  WORD_BYTE    wValue;
  WORD_BYTE    wIndex;
  WORD         wLength;
} USB_SETUP_PACKET;

habe ich wie folgt in GNU C umgeschrieben:

typedef struct _USB_SETUP_PACKET {
  REQUEST_TYPE bmRequestType;
  BYTE         bRequest;
  WORD_BYTE    wValue;
  WORD_BYTE    wIndex;
  WORD         wLength;
} __attribute__((_packed_)) USB_SETUP_PACKET;

Ich denke, dass es so gehen müsste!

Gruss
Harry

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.