Forum: Projekte & Code SAM7FLASH kleiner USB Bootloader


von Thomas P. (pototschnig)


Lesenswert?

Hallo alle,

Die letzten Tage hab ich mich mit dem Thema USB rumgeschlagen und
versucht einen eigenen kleinen USB-Bootloader zu basteln, um SAM-BA
loszuwerden. Jetzt funktioniert er und kann auch auf anderen Boards
getestet werden.

Bei Interesse, kann man alle Details zum Bootloader auf meiner Homepage
(http://www.oxed.de) nachlesen. (Sourcecode ist dabei)

Ich würde mich über feedback freuen

Mfg
Thomas Pototschnig

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Sieht sehr interessant aus - nur leider Windows only. Was macht diese
"USBLibrary"? Ist da viel Magie drin, oder könnte man das auch mit
wenig Aufwand z.B. mit libusb nachbilden (ich habe leider keinerlei
Erfahrung mit USB-Programmierung)?

von Thomas P. (pototschnig)


Lesenswert?

Die USBLibrary ist aus dem Example "at91sam7s64_basicusb" des
WINARM-Pakets. Die Library verwendet den atm6124.sys Treiber und stellt
im Wesentlichen nur schreib und lese Funktionen über den Treiber zur
Verfügung.

Ich hab mal nach libusb gegurgelt und denke nicht, dass das so ein
großes Problem wäre die Applikation entsprechend umzubauen. Ich werd
mir morgen mal etwas Zeit nehmen um herauszufinden, was genau zu tun
wäre. Besonders interessant ist, dass es libusb auch für Win32 geben zu
scheint :-)

Gibt es hier evtl schon Leute, die mit libusb Erfahrung haben?

von Lokko (Gast)


Lesenswert?

jepp libusb ist nach einem cdc treiber die einfachste möglichkeit mit
usb devices kontakt aufzunehmen. einziger nachteil, den ich im moment
wüsste ist, dass es keine unterstützung für die 64bit windows versionen
gibt.

das beste ist, dass man den gleichen code auf win und linux nutzen
kann.

für den usb bootloader wäre wohl eine cdc implementierung das
genialste. dann könnten man unter linux wie windows über cdc sowie über
die libusb kommunizieren. dann ist auch eine nutzung unter xp64 kein
problem. unter windows hängt es dann nur vom inf file ab, was man
nutzt. unter linux bin ich mir nicht sicher, ob man auf ein vom system
als cdc device gemountetes usb device auch mit libusb zugreifen kann.

von gerhard (Gast)


Lesenswert?

hallo thomas,
ich arbeite gerade an einem cdc treiber unter libusb.
grund dafür war, das es mit usbser.sys und dem beispielprogramm vom
at91 zu sehr geringen übertragungsraten kam.
mit libusb läuft das ganze besser. probleme gibt es nur, wenn die
paketgröße eines bulk transfers < 64 bytes ist. daan "verschwindet"
ab und zu ein paket. die doku ist auch etwas dürftig aber ausreichend.

gruss
gerhard

von DerMax (Gast)


Lesenswert?

Brauch man für das Programm sonst noch irgendeinen Treiber? Wenn ich die
sam7flash.exe starte bekomme ich immer folgende Fehlermeldung:

Diese Anwendung konnte nicht gestartet werden, weil die
Anwendungskonfiguration nicht korrekt ist. Zur Problembehebung sollten
Sie die Anwendung neu installieren.

von DerMax (Gast)


Lesenswert?

Visual C installieren hats gebracht :)

von MrRossi (Gast)


Lesenswert?

Hallo.
Ich verwende den IAR-Compiler und würde den Bootloader auch gerne
verwenden.
Gibt es irgendwelche Projekte welche mit dem IAR-Compiler realisiert
worden sind?
Ich verwende auch bereits die USB-Schnittstelle. Kann ich trotzdem den
Bootloarder verwenden oder funktioniert das nicht?
Danke für antworten!
MrRossi

von Thomas P. (pototschnig)


Lesenswert?

Hallo,

vielleicht interessiert es jemanden, dass ich meinen flasher jetzt doch 
endlich nach Linux portiert hab mit libusb ...

Demnächst wirds dann die Linux-Version mal auf meiner Seite geben ... Da 
pack ich dann auch gleich noch ein Mini-Layout von meinem 
Bastel-ARM7-Board [1] dazu.

Mfg
Thomas Pototschnig

[1]: http://home.in.tum.de/~pototsch/sam7tst.jpg

von Andreas A. (aauer1) Benutzerseite


Lesenswert?

Hi

Hätte gerne deinen Bootloader ausprobiert, aber das Windows Tool lässt 
sich bei mir nicht starten. Beim Aufruf aus der Console wird die Meldung 
"Das angegebene Programm kann nicht ausgeführt werden." ausgegeben. Muss 
man irgendwas beachten, wenn man das Programm starten will??

Thanks,
Andreas

von Thomas P. (pototschnig)


Lesenswert?

Andreas Auer wrote:
> Hätte gerne deinen Bootloader ausprobiert, aber das Windows Tool lässt
> sich bei mir nicht starten. Beim Aufruf aus der Console wird die Meldung
> "Das angegebene Programm kann nicht ausgeführt werden." ausgegeben. Muss
> man irgendwas beachten, wenn man das Programm starten will??

Bei VC++ scheinen DLLs oder sonstwas dabeizusein, die man normalerweise 
nicht hat, die aber gebraucht werden.

Ich werde sam7flash dann im Laufe des Tages nach vc++ rückportieren (mit 
libusb) und dann wird man den affigen Atmel-Treiber ganz los. Da scheint 
recht viel drin zu sein, das mit USB nichts zu tun hat. Jesper Hansen, 
der den Bootloader in seinem yampp integriert hat, hatte im 
Support-Forum ähnliche Probleme. Er konnte das lösen, indem er eine 
anders kompilierte Version vom PC-Tool zur Verfügung stellte. Ich weiß 
nur leider nicht, ob das PC-Programm noch kompatibel zu dem 
ursprünglichen Bootloader von mir ist.

Mfg
Thomas Pototschnig


von Thomas P. (pototschnig)


Lesenswert?

Mittlerweile funktioniert die Windows-LibUSB-Version auch ... am 
Wochenende gibts dann mal ein Update auf meiner HP mit Linux und Windows 
Version ...

Mfg
Thomas Pototschnig

von Thomas P. (pototschnig)


Lesenswert?

Hallo,

hat etwas länger gedauert, ist jetzt aber online.

Wenn jemand will, kann er die SAM7Flash-Version für Linux und Windows 
(beides LIBUSB) ausprobieren.

http://www.pcb-dev.com/showsite.php?open=028920af8dae02eeaad3fd119569bfae

Ich werde im Laufe der Woche noch eine Minimal-Board-Variante mit 
SAM7Sxx inkl USB auf meiner Seite zur Verfügung stellen, auf der dann 
direkt der Bootloader läuft. Eventuell kann jemand dann das als C++ 
Framework mit USB-Support nutzen :-)

Mfg
Thomas Pototschnig

von embeddedsys (Gast)


Lesenswert?

Hallo,
wie aufwendig wäre es den Code für den IAR Compiler zu portieren?
Ich würde den Bootloader gerne für den SAM7A3 einsetzen aber bräuchte 
Hilfe bzgl. der IAR Portierung.

von Thomas P. (pototschnig)


Lesenswert?

Hallo,

ich hab keine Ahnung, ehrlich gesagt. Ich hab mit dem IAR noch nichts 
gemacht und man müsste den Code wohl einfach mal kompilieren um zu sehen 
was dann nicht funktioniert :-)

Mfg
Thomas Pototschnig

von embeddedsys (Gast)


Lesenswert?

Hi und danke für die Antwort ;-)

Klar den Code kompilieren und so, werde ich wohl machen. Nur dachte ich 
es hätte jemand vielleicht schon gemacht und könnte sich dazu äußern 
oder evtl. den Code zur Verfügung stellen.

Wie ist das mit dem SAM7A3? Der Bootloader ist für die SAM7S-Reihe 
gemacht gibt es da größere Unterschiede zu den A3 außer die 
Peripherie/Pins oder lässt es sich einfach auf den A3 anwenden?

von Bert M. (Gast)


Lesenswert?

Hallo Thomas,

kann den Bootloader nicht laden.

Die Webseite gibt mir 'forbidden ..' zurück.

Was mache ich falsch?

Grüße Bert

von Thomas P. (pototschnig)


Lesenswert?

Bert M. wrote:
> Hallo Thomas,
>
> kann den Bootloader nicht laden.
>
> Die Webseite gibt mir 'forbidden ..' zurück.
>
> Was mache ich falsch?

Hast du es über die Downloadseite versucht?
http://www.pcb-dev.com/showsite.php?open=e0c489a6e14ff2d0f0235119958e9a0f

Mfg
Thomas Pototschnig

von Bert M. (Gast)


Lesenswert?

Ja, habe ich.

Der angezeigte Link ist 
'http://www.pcb-dev.com/getfile.php?download=7817adc222e9d17e09b11c322565c097';.

Die Seitentext lautet wieder 'forbidden'.

Muß ich etwas im IE7 aktivieren?

Güße Bert

von Thomas P. (pototschnig)


Lesenswert?

Hmm ... Direktes Linken geht nicht - man muss über die Downloadseite und 
man benötigt Cookies.

Kann es sein, dass du Cookies ausgeschaltet hast?

Mfg
Thomas Pototschnig

von Thomas P. (pototschnig)


Lesenswert?

Wie versprochen (aber leider verspätet) hier noch meine kleine 
SAM7-Minimal-Platine mit USB support:

http://www.pcb-dev.com/showsite.php?open=874ada094f12d222b64c37699453397b

Mfg
Thomas Pototschnig

PS: Kann mal jemand den ganzen Thread in "Codesammlung" verschieben?

von Marco S. (masterof)


Lesenswert?

Hallo,

Kann ich das vorhandene bin-File auch auf einen AT7sam7s256 flashen.

Gruß Marco

von Thomas P. (pototschnig)


Lesenswert?

Hallo,

nein, das Binary muss neu Kompiliert werden, weil der S256 eine größe 
Flash-Page-Größe hat. Ebenso muss die PC-Applikation neu kompiliert 
werden.

Mfg
Thomas Pototschnig

von Programmer42 (Gast)


Lesenswert?

Moin,
hört sich interessant an, die Links funktionieren aber nicht mehr.
Wer kann mir da weiterhelfen?

Gruß und Dank für Eure Hilfe

KDU

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
Noch kein Account? Hier anmelden.