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
Keine Ahnung wie du deine IRQ Handler gemacht hast aber wenn du die GNU varriante nimmst ...interrupt("IRQ") dann darauf achten das du keine opitmierung eingeschaltet hast. mfg mathias
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.