Moin, wir haben gerade ein Projekt mit einem ATMega128. Dafür nutzen wir ein Ethernutboard mit JTAG-Schnittstelle (http://www.ethernut.de/en/hardware/enut2/index.html). Da das Board teilweise eingebaut ist, würden wir es gerne über Bluetooth, also über die serielle Schnittstelle programmieren. Wobei eben nicht nur über die eine, sondern, wenn das Board ausgebaut ist, über Kabel über die 2te serielle Schnittstelle. Gibt es überhaupt einen Bootloader, der über beide UARTS programmiert werden kann? Erschwerend hinzu kommt, dass wir Tabellen am Ende des Programmspeichers liegen haben. Liegt da nicht immer der Bootloader? Wie verhält sich das dann? Oder liegt der im Flash? Denn wir benutzen avrx, und brauchen den Flash für den Stack... MfG, Ozzy
>Gibt es überhaupt einen Bootloader, der über >beide UARTS programmiert werden kann? Ja, wenn Du ihn Dir selbst schreibst. >dass wir Tabellen am Ende des Programmspeichers >liegen haben. Liegt da nicht immer der Bootloader? Der Programmspeicher heißt in dem Fall Flash und am oberen Ende liegt der Bootloader, ja. >Denn wir benutzen avrx, und brauchen den >Flash für den Stack... Das mag ich bezweifeln. Stack liegt im SRAM und nirgendwo sonst.
Hi, ok, da habe ich mich vertan mit mit Stack. Aber kommen sich dann Tabellen und Bootloader nicht in die Quere??? Und noch eine Frage: kann man das Board dann mit JTAG wieder so einfach umprogrammieren? Oder braucht es dafür SPI??? MfG, Ozzy
Hein, wenn niemand den JTAG per Fuses abgeschaltet hat ist der JTAG normalerweise dafür da um zu programmieren oder zu debuggen. Gruß Sven
Ok, wobei ich natürlich ISP statt SPI meinte... Aber was ich mich immer noch frage: was passiert mit den Tabllen? Oder doch einfach mal ausprobieren??? MfG, Ozzy
So, ich wusste doch da war doch was. Auf der ersten Seite etwas weiter unten: ISP no longer provided, programming is done via JTAG only. Unfortunately Atmel's JTAG and ISP connectors use the same physical dimensions. Make sure to use JTAG programmers with Ethernut 2.1. Plugging in an ISP adapter will blow the on-board fuse. Damit erübrigt sich auch die Frage, ob Du da mit einem "normalen" (oder alten) ISP Dongle drangehen darfst. Also bitte nur JTAG. Gruß Sven
Die Tabellen legt man sinnvollerweise an das Ende des Programms, nicht an das Ende des Speichers! Der Bootloader liegt an festen, dafür vorgesehenen Bereichen im Flash (siehe Datenblatt), wo die Tabellen eben nicht liegen sollen.
Christoph O. wrote: > ok, da habe ich mich vertan mit mit Stack. Aber kommen sich dann > Tabellen und Bootloader nicht in die Quere??? Nein. Die konstanten Daten liegen am Ende Deines Programms, nicht am Ende des Flashs. Z.B. auf nem ATMega128 hast Du vielleicht 16kB Dein Programm mit Daten, dann etwa 111kB frei und das letzte 1kB ist dann der Bootloader. Peter
Lass doch die Tabellen doch einfach durch den C-Compiler arrangieren... Oder müssen die "erhalten" bleiben, über einen SW-Update? (In diesem Fall noch ein Hinweis: Nur der Bootloader (Genauer: Code im Bootloaderbereich) kann den Flash beschreiben. Bin da mal selber reingefallen. Der AVR-Simulator im STudio macht das im übrigen anders als das Silizium)
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.