www.mikrocontroller.net

Forum: Compiler & IDEs Bootmanager und Mainprogramm auf einmal Flashen


Autor: Jürgen Sachs (jsachs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich hoffe es gibt hierfür einen einfachen Ansatz.
Ich habe einen Bootmanager und ein Hauptprogramm. Beide haben eine 
"main()" Function.
Jetzt möchte ich beide "in einem Rutsch" Flashen für die erste 
Programmierung  und Entwicklungsphase. Ist einfacher und schneller als 
über den Bus.

Nur wie Bringe ich beide Teile in ein File das ich Flashen kann ?
Mir fällt nur folgende umständliche Lösung ein:
1. Flash löschen
2. Bootmanager flashen
3. Flash nicht löschen
4. Hauptprogramm flashen

Der Linker weigert sich verständlicher weise ein Programm mit 2 "main()" 
zu Linken, das ich dann einfach in einem Stück Flashen kann.

Vorab, der Bootmanager kann von sich aus kein Programm laden, deswegen 
Manager und nicht loader :-) Ich brauche also zwingend das 
Hauptprogramm.
Der Start erfolgt im Bootmanger mit einem nachfolgenden "jmp 0" ins 
Hauptprogramm.

Danke
Juergen

Autor: Joe Die (kosmonaut_pirx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
mit dem linker hat das meines erachtens nach gar nichts zu tun. der 
linker produziert ein .elf, welches avr-objcopy in ein intel hex (oder 
whatever) kopiert. dieses wird dann geflashed. cmiiw.
du brauchst imo eine möglichkeit, zwei .hex (oder whatever) zu 
verbinden. vll kann man die auch hintereinander zusammenfügen 
('catten'), wäre mal nen versuch wert.
viel erfolg,
bye kosmo

Autor: Wolfgang Horn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, Jürgen,

ich hab das so gemacht: Anwendung linken. Bootloader linken.
Mit dem Editor die Intel-Hex-Records das "End of File Record" der 
Applicaion gelöscht und die Intel-Hex-Records des Bootloaders angehängt.

Überraschung: Wenn Atmel-Studio nach dem Flashen wieder ausliest, dann 
nun den kompletten Speicher inklusivise der großzügig bemessenen leeren 
Räume.

Programm funktioniert.

Ciao
Wolfgang Horn

Autor: Jürgen Sachs (jsachs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super ! Danke !
Jetzt tipper ich mir bei Gelegenheit noch ein Prog das das Automatisch 
macht :-)
(Vor 5 Minuten habe ich das auch herausgefunden. Hat nur gedauert bis 
ich die Intel HEX Beschreibung gefunden habe.)

Gruss
Juergen Sachs

Autor: Hendi (dg3hda) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm...

Bootmanager und Mainprogramm -
das klingt irgendwie nach Flußschifffahrt in Bayern !

duck und wegrenn

Gruß,

Hendrik.

Autor: Jürgen Sachs (jsachs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gugst Du hier "Beitrag "AVR-GCC, Flash teilweise ersetzen (Bootloader?), die Zweite".

Vielleicht ist mein vorhaben dann klarer ?!

Gruss
Jürgen Sachs

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

@Jürgen: professionell wird das in der Regel mit der Methode von 
Wolfgang gemacht, d.h. Boot linken und in Hex konvertieren, Main linken 
und in Hex konvertieren, Boot-Hex und Main-Hex zusammenbinden. 
Voraussetzung: unterschiedliche Adressräume (nur um's gesagt zu haben! 
;-) )

Schönen Tag noch,
Thomas

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie habt Ihr denn dem Compiler  Linker  objcopy beigebracht, dass es 
nur eine flash von z.b. 0x3800 hat, obwohl ein mega32 mit 0x4000 
angegeben ist?

Ich krieg das in Avr Studio + AvrGcc nicht hin. Zu doof oder zu blind 
:-)

Gruß,
Ulrich

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.