Forum: Mikrocontroller und Digitale Elektronik Bootloaderfrage


von Oz z. (ozzy)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>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.

von Oz z. (ozzy)


Lesenswert?

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

von Sven (Gast)


Lesenswert?

Hein, wenn niemand den JTAG per Fuses abgeschaltet hat
ist der JTAG normalerweise dafür da um zu programmieren oder zu 
debuggen.

Gruß Sven

von Oz z. (ozzy)


Lesenswert?

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

von Sven (Gast)


Lesenswert?

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

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von coldtobi (Gast)


Lesenswert?

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