Hi, mal ne Frage zu dem Bootloader von den AT91SAM7Sxxx. Hab mir das Datenblatt und die Anleitung auf at91.com mal durchgelesen. Der Ablauf ist mir noch nicht ganz klar. Kann man den Bootloader immer nur einmal verwenden? Das bezieht sich da alles auf das Kit Wenn ich das richtig verstanden hab läuft das ja so ab: - TST Jumper stecken - Board einschalten - 10 Sekunden warten In der Zeit wird der Bootloader an den Anfang vom Flash kopiert - Board ausschalten - Jumper abziehen - Board wieder einschalten Jetzt springt der Controller in den Bootloader und man kann ein Programm runterladen. Wenn man ein Programm runtergeladen hat springt der Controller aber immer in das Programm. Meine eigentliche Frage: muß man vor jedem Download das ganze Brimbamborium durchziehen bis man mal downloaden kann oder bleibt der Bootloader im Flash erhalten und man kann ihn anders anspringen?
Der Bootloader wird bei jedem download überschrieben, deswegen muß man das 10-sekündige "Brimbamborium" jedesmal durchziehen, wenn man diese methode anwendet. Allerdings soll das ganz ja auch nur eine "Recovery-Prozedur" sein, die man anwendet, wenn man das Flash versehentlich gelöscht hat. Einfacher ist es, den Bootloader (gibts im Quelltext bei Atmel, ist compiliert ca. 4k groß) einfach zur Applikation dazuzulinken, und dann bei Bedarf zu starten, da entfallen dann die 10sec. (Der Bootloader muß übrigens aus dem RAM ausgeführt werden) Gruß Wolfgang
Hallo! Ich quälte mich ebnfalls gerade mit dem ARM-Controller (AT91SAM7S256) herum! "Ich schmeiß die Scheiße ausm Fenster!!" Was hab ich denn nun gewonnen, wenn ich den Bootloader im RAM habe? Ich habe mir das Beispielprogramm (LED blinken) von P. Lynch draufgeladen. Starten tut das erst nach einem Druck auf "Reset". Dann wird aber das Eval-Board (Oimex SAM7-P256) nicht mehr per USB erkannt.... Dann muss ich, um ein neues Programm draufzuladen erst wieder die prozedur mit dem Jumper-Stecken durchführen....... Und was genau bringt mir dann der Bootloader, der ja wohl beim abstöpseln der Stromzufuhr gelöscht wird?!?! Gruß Der Praktikant
Okay cool........das ändert aber leider an der Problematik auch nix.... g Und jetzt mal im Ernst.....Hat jemand ne genaue Ahnung? Die TWI-Funktion hat wohl auch noch keiner hinbekommen.......habe jedenfals im Internet noch nix brauchbares an Code gefunden..... Gruß Der Praktikant
>>Und was genau bringt mir dann der >>Bootloader, der ja wohl beim abstöpseln der Stromzufuhr gelöscht >>wird?!?! Der Bootloader liegt schon im Flash wie der andere Sourcecode auch. Nur wenn du ihn benutzen willst musst du ihn vorher in den RAM-Speicher kopieren und von dort ausführen. Gruß T.v.B.
Okay, aber wie geht sowas? Ich steh da völlig auf dem Schlauch.... Bin in meinem ganzen Leben dank Microsoft auf "Point & Click" getrimmt worden und befasse mich jetzt erst seit ein paar Wochen mit der nackten Hardware..... Ich tu mich eben schwer mit der Vorstellung, dass ich da irgendwas starten kann, obwohl ich keine Tastatur an den µC drangelötet habe?! Habe zwar mittlerweile akzeptiert, dass ich auch mal ohne klicken auskomme (Linux-Konsole) aber so recht gelingen will mir da noch nix....
Ja, dieser Atmel-Bootloader war auch mal ein Grund, warum ich die Atmel-ARMs schon "aus dem Fenster schmeißen" wollte. Ein weiterer Grund waren übrigends wie diese unmöglich zu lernenden Labels "AT91C_...", "AT91S_..." usw. Wer sich das ausgedacht hat, muß wohl eine Tastatur mit 1000 Makrotasten haben. Zwischendurch bin ich dann mal auf NXP-Controller umgestiegen (endlich leicht zu merkende Labels, besserer aber sehr langsamer Bootloader). Da es aber die neuen LPC236x-Typen noch nicht in Stückzahlen gibt und ich für ein Project unbedingt USB und CAN in einem Controller brauche, bin ich nun wieder zurück zu Atmels AT91SAM7X. Den Bootloader des Atmel benutze ich gar nicht zum programmieren, das ist einfach zu umständlich. Am besten geht es per JTAG und OpenOCD. Eine geänderte Library ohne diesen ganzen AT91C_-Kram werde ich mir in der nächsten Zeit mal erstellen (oder hat das jemand vielleicht schon gemacht, dann kann ich mir das sparen). An das TWI-Problem hab ich mich bis jetzt noch nicht gewagt. Das geht ja wohl nicht ohne Interrupts. Aber vielleicht gibt es ja bis dahin die neue Revision der Controller, bei denen der Fehler beseitigt ist. Erwin
Achso, da ist auf jeden Fall ein Interrupt notwendig?? Wo steht das bitteschön im Manual? Oder meinen die Jungs von Atmel, man müsse sich das aus den Fingern saugen?! Mir ist dabei nur nicht ganz klar, wo ich den Interrupt schalten muss. Welches Ereignis sollte den Interrupt denn auslösen und was soll die ISR dann veranstalten?!?! Mein Gott, da bekomm ich in meinem jungen Alter schon graue Haare gg Gruß Der Praktikant
hallo philip, ich weiß ja nicht warum du als anfänger gleich mal mit einem arm loslegst, aber nehmen wir mal an du hast einen driftigen grund. in diesem fall würde ich dir mal vorschlagen die kapitel des datenblatts komplett durchzuarbeiten welche für deine applikation benötigt wird. desweiteren würde ich dir die examples von www.at91.com ans herz legen. nun zu deinen eigentlichen problemen: 1. twi: da kann ich nicht viel dazu sagen, außer das eine ansteuerung eines seriellen bauteils (sei es über twi, spi oder ssc) ohne interrupt steuerung oder gar mit pdc (dma) nahezu sinnlos ist. 2. sam-ba: die beim at91sam7s eingesetzte lösung zur aktivierung des sam-ba ist nicht sehr glücklich. das dürfte auch atmel erkannt haben und hat dies beim at91sam7x wesentlich verbessert. wenn du sam-ba zum debuggen einsetzen willst dann hast du den falschen weg gewählt. ohne jtag-ice (ARM USB JTAG für OpenOCD hierim shop um ganze 70,-€) kannst du das programmieren am at921sam7s ohnehin vergessen. gruss gerhard
Philip Kottmann wrote: > Die TWI-Funktion hat wohl auch noch keiner hinbekommen.......habe > jedenfals im Internet noch nix brauchbares an Code gefunden..... Was gibt's da "hinzubekommen"? TWI funktioniert so wie im Datenblatt beschrieben, mehr ist da nicht dran. Beispielcode: http://www.google.com/codesearch?hl=de&q=show:07ZCfb6KAjs:pzkOO5QRsoc:NqT_msKBRL0&sa=N&ct=rd&cs_p=svn://mikrocontroller.net/mp3dec/trunk&cs_f=/dac.c
Hab nicht alles gelesen, deshalb schonmal ein "sorry", falls ich etwas widerhole. 1. JTAG besorgen. Erlaubt mit openOCD und gdb Source-Level-Debigging und das flashen des Controllers kostet mich ein müdes "make program". Oder auch: "make all program debug". Sehr komfortabel, wie ich finde. Kosten mit Wiggler < 5 Euro. Geschwindigkeit erträglich. 2. Die AT91 hab ich aus dem header gelöscht. Ansonsten find ich das nicht schlecht. F: Funktion C: Konstante S: Struktur PS: Pointer auf Struktur Dazu noch einen Editor, der Code-Vervollständigung beherrscht, und gut. Vim und ctags leisten gute Dienste.
Frank wrote: > 2. Die AT91 hab ich aus dem header gelöscht. Ansonsten find ich das > nicht schlecht. > F: Funktion > C: Konstante > S: Struktur > PS: Pointer auf Struktur Was genau soll mir das sagen?! Oh Mann, wäre mein Unternehmen mit einem ATMega denn einfach gewesen?! Gruß der Praktikant
>Was genau soll mir das sagen?! >Oh Mann, wäre mein Unternehmen mit einem ATMega denn einfach gewesen?! wenn du dich mit dem atmega genauso wenig auseinandersetzt wie mit dem at91sam dann würde es dir auch nicht besser ergehen. datenblätter und tutorials zu lesen ist nun mal pflicht wenn man sich mit µcontrollern befaßt. gruss gerhard
Ja logisch hab ich das Datenblatt gelesen.....Danach hab ich nach bestem Wissen und Gewissen versucht, die Register so zu setzen, wie es mir für richtig erschien und scheinbar auch laut dem Ablauf im Datenblatt richtig sein soll..... aber es hat sich trotzdem nichts getan....
Hallo Praktikant >Wäre mein Unternehmen mit einem AtMega einfacher gewesen ? Ja! Einen Arm zum MC Einstieg zu wählen ist leider eine ziemlich unglückliche Wahl. >Ja logisch hab ich das Datenblatt gelesen Glaub ich Dir nicht, die sind meißtens trocken wie Zwieback, besonders für einen Anfänger. Eine einfachere Strategie ist sich Demo Sourcode anzusehen und sich anzusehen wie dieser funktioniert. Dann siehst Du um vieles leichter was der Herr Autor des Datenblattes gemeint hat. Dann mittels Datenblatt den Democode ändern. Letztendlich führt leider kein Weg um das Datenblatt herum. LG Michael
Also so ein blutiger anfänger bin ich damit auch nicht mehr. hatte eine vorlesung µC und weiß mit registern und deren belegung einiges anzufangen.....und um das geht es doch bei einem µC......egal ober es ein ATMega oder ein AT91 ist.....Und einige Zeilen englischen Text versteh' sogar ich zu interpretieren g
>Also so ein blutiger anfänger bin ich damit auch nicht mehr. hatte eine >vorlesung µC und jetzt kennst du den unterschied zwischen theorie und praxis! scherz bei seite. kann die aussage von michael nur bestätigen: demo code und datenblatt ansehen und auch versuchen zu verstehen. gruss gerhard
Philip Kottmann wrote: > Frank wrote: >> 2. Die AT91 hab ich aus dem header gelöscht. Ansonsten find ich das >> nicht schlecht. >> F: Funktion >> C: Konstante >> S: Struktur >> PS: Pointer auf Struktur > > > Was genau soll mir das sagen?! > Oh Mann, wäre mein Unternehmen mit einem ATMega denn einfach gewesen?! > > Gruß der Praktikant Hast Du überhaupt mal in den Header reingeschaut? Alle Namen fangen mit AT91 an. Das habe ich überall gelöscht. Der nächste Buchstabe gibt an, um was es sich handelt. Siehe oben. Irgendwie hab ich nicht den Eindruck, dass Du es mit nem AVR einfacher gehabt hättest, Du scheinst dich ja noch nichtmal mit dem Konzept des Headers auseinandergesetzt zu haben. Obendrein bieten die AT91SAM komfortables Debuggen via JTAG, die kleineren AVRs nicht. SAM-BA ist keine gute Möglichkeit, zu programmieren.
Hallo Praktikant Ich befürchte sehr das das so nichts wird. Wie steht es denn um die C Kentnisse? Und vor allem was soll das Projekt denn werden? Wenn es sich um was "einfacheres" handelt wie einen Temperatursensor per Spi/Twi auslesen, dann wäre ein Arm7 sowieso Overkill.Man muß sich das Leben ja nicht unnötig schwer machen. Wie wärs denn damit? http://cgi.ebay.at/ATmega168-Evalboard-incl-Programmer-und-Software_W0QQitemZ250062045511QQihZ015QQcategoryZ12068QQssPageNameZWDVWQQrdZ1QQcmdZViewItem Oder damit, sehr zu empfehlen: http://cgi.ebay.at/Starterkit-Atmel-STK500_W0QQitemZ250060643109QQihZ015QQcategoryZ12949QQssPageNameZWDVWQQrdZ1QQcmdZViewItem Man müßte halt wissen um was es geht. LG Michael
Michael Rubitschka wrote: > Hallo Praktikant > > Ich befürchte sehr das das so nichts wird. > > Wie steht es denn um die C Kentnisse? > Und vor allem was soll das Projekt denn werden? Es handelt sich darum, 3 analoge Spannungen einzulesen, zu verrechnen und das Ganze dann per TWI an ein LCD auszugeben.
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.