mikrocontroller.net

Forum: Compiler & IDEs USB Mass Storage Code


Autor: Kloppy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen
Ich versuche seit Tagen vergeblich das "Mass Storage and File System 
Demo" von Atmel (IAR Compiler) zum GCC zu portieren. Hat das schon mal 
jemand von euch versucht?

Autor: Kloppy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
übrigens versuche ich das ganze auf einem at91sam7 zum laufen zu bringen

Autor: MicroMann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich dachte da gibts keine sourcen, sondern nur einen bin-File ?!?

Wo bekommt man denn die ?
Ich möchte nämlich ein ähnliches Projekt starten.

Autor: Kloppy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Doch du bekommst den Sourcecode auch. Du musst dazu nur die On-Line 
Registration Form ausfüllen.
Geh auf http://www.at91.com/ Dort findest du oben in der Mitte einen 
Link (Free Mass Storage Source Code)

Autor: Micro Mann (micromann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah jetzt ja, danke.
Ich werde mal sehn ob das funzt.

Autor: Kloppy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lass es mich wissen wenn du Erfolg hast!

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich ärgere mich auch schon einige Tage
mit dem IAR-Code rum und bin auch schon
auf ca. 150 Fehlermeldungen beim Compiler runter,
wobei die letzten Fehler sich hartnäckig halten ...
Hast Du's scon geschafft mit dem umpfriemeln?
Hat es überhaupt noch sinn in der Rinchtung
weiterzubasteln oder doch hinwerfen und selber
was zusammenwursteln? ... Bitte bau mich auf
und Antworte das Du's geschafft hast :)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So schlimm kann das doch gar nicht sein.  Was für Fehlermeldungen hast
du denn noch so?

Autor: Martin Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe einige "Uebung" im Portieren von code fuer AT91 und AVR von IAR 
nach GNU/gcc und koennte wahrscheinlich auch diesen Code portieren oder 
zumindest helfen. Aber es bringt nichts, denn man darf den Quellcode 
nicht weitergeben. Der gcc-Port laege also nur hier rum und waere keine 
Hilfe. Daher auch bisher nicht der Lizenz unterworfen, Source-code nicht 
hier, da USB Mass-Storage noch nicht gebraucht.

Besser helfen koennte man bei der Portierung des Mass-Storage-Codes von 
Keil. Da kann man wenigstens den Quellcode weiterreichen. Aber die 
Lizenz ist ebenfalls restriktiv: nutzen ("use") darf man den Code nur 
mit Lizenz eines Keil ARM-Entwicklungstoos: "This software may only be 
used under the terms of a valid, current, end user licence from KEIL for 
a compatible version of KEIL software development tools. Nothing else 
gives you the right to use it."

Es gibt "irgendwo" einen freien Mass-Storage Code fuer LPC2000 mit gcc. 
Portierung duerfte aber schwieriger sein, da USB-Hardware zwar aehnlich 
aber USB "Macrocell" bei LPC200 und AT91 meines Wissens unterschiedlich.

Wie auch immer. Schliesse mich Joerg an: Fehlermeldungen hier "pasten", 
vielleicht kann man anhand der Meldungen schrittweise weiterhelfen.

Autor: Kloppy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs geschafft, den code fehlerfrei zu compilieren. Leider 
funktioniert er aber nicht -> dauernd data/prefetch aborts.
ich habe bemerkt, dass malloc nicht funktioniert?!? könnte das der grund 
sein?
(habe malloc durch statische speicherzuteilung ersetzt -> kein erfolg)

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo, was und wie funktioniert bei malloc() nicht?  Wie hast du
das ,bemerkt'?

Autor: Kloppy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich schick vor und nach malloc ein zeichen über die dbgu. das zeichen 
vorher kommt noch an, dann wird aber eine data abort exception 
ausgelöst.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ah sorry, ich hatte schon vergessen, dass das 'n ARM ist.

Autor: Martin Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um dabei weiterhelfen zu koennen, muesste man das Linker-Skript 
(Memory-Layout insbes. Position von "Heap-Start",ueblicherweise per 
provide end), den Startup-Code (wg. moegl. Ueberschneidungen von 
data/bss/stacks und heap) und den Quellcode von sbrk 
(Hardware-Interface/syscall fuer malloc) einsehen. Data-Abort "riecht" 
dannach, dass end (oder wie auch immer genannt) auf eine 
Speicheraddresse zeigt, bei der es kein RAM gibt.

Martin Thomas

Autor: Kloppy (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab die drei Files mal angehängt.
Noch zu sagen ist, dass ich noch keine Funktionen ins RAM kopiere 
(__ramfunc auskommentiert). Wenn ichs mache, funktioniert noch weniger.

Auf welcher Adresse sollte denn der Heap-Start sein?

Autor: Markus Lempen (kloppy)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Noch ein Versuch die Files anzuhängen.

Autor: Martin Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heap-Start ("end") ist lt. dem Linker-script 1000bytes nach RAM_TOP, das 
kann nichts werden, daher auch die data abort exeception. PROVIDE (end = 
.); verschieben direkt nach _end = .; . RAM length und STACK origin 
nochmal pruefen, sieht etwas seltsam aus, das . += 1000 noch seltsamer. 
Linker-Skript ist fuer gcc4-feature "unused code removal" nicht 
geeignet.

Autor: Markus Lempen (kloppy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab das . += 1000 entfernt und die memoryaufteilung 
folgendermassen gemacht:

MEMORY
{
  FLASH (rx) : ORIGIN = 0x00100000, LENGTH = 0x00010000
  DATA (rw)  : ORIGIN = 0x00200000, LENGTH = 0x00004000
  STACK (rw) : ORIGIN = 0x00204000, LENGTH = 0x00000000
}

Laut Konsole (Auszug aus Eclipse) sollte sich alles in einem gültigen 
Adressberiech befinden:

002010e0 B usbms_request_sense_data
002010f4 B DBG_EVT
002010f8 A _bss_end_
002010f8 A _end
002010f8 A end
00204000 N Top_Stack

Das Problem vom Data Abort bleibt aber bestehen. Was meinst du mit
"Linker-Skript ist fuer gcc4-feature "unused code removal" nicht
geeignet"?

Autor: Micro Mann (micromann)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallihallo,

ist schon jemand weitergekommen mit dem Zeugs ?
gruß

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.