mikrocontroller.net

Forum: Compiler & IDEs AVR32 objcopy bin file immer 8MB


Autor: Jens A. (micro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn ich einige meiner AVR32 Projekte baue ist meißt das bin file immer 
8MB groß.
Obwohl der Code ledeglich ein paar kB hat.
Warum ist das so. Ich benötige nämlich die bin files für mein
Bootloader. Das verhält sich gabz komisch.

Wenn ich mein Projekt frisch aus dem CVS raushole ist das Bin file immer
8MB nach dem Build. Dann habe ich mal ein Pointer variable 0xC0000000
auf 0 gestellt und dann war das bin file ok. Danach habe ich die 
variable wieder auf die alte Adresse zurückgesetz dann war das bin file 
aber auch noch ok.
Irgendwie hängt das von der Mondphase ab.
Kennt jemand das Problem?

Autor: Jens A. (micro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso,

ich nutze die Gnu Toolchain. 2.4.2. AVR Framework 1.6.1.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für die binutils wird der eeprom-speicher mit in den normalen Adressraum 
gemappt, (z.B. bei 8MB).
beim objcopy musst du diesem mitteilen, dass du nur die "flash" section 
haben willst, bzw die eeprom-section auslassen willst,
-R .eeprom

beim Erzeugen des bin-files fürs eeprom genau anders herum, nur die 
eeprom-section wählen, und on-the-fly die startadresse wieder auf 0 
setzen:
-j .eeprom --set-section-flags=.eeprom="alloc,load" --change-section-lma .eeprom=0

Machen aber die üblichen Makefiles alles selber...

Autor: Jens A. (micro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ernst

Nein funktioniert nicht. Ich stehe da echt vor einem riesen Problem.
Z.b

__attribute__((__section__(".userpage")))
volatile static timer timer0;

Sofort wenn ich obiges mache ist mein Binary file egal in welchem 
Projekt exakt 8.388.620 Bytes groß. Somit kann ich es für einen 
Bootloader nicht gebrauchen. Ich verstehe aber nicht warum und wieso.
Das kann doch nicht sein oder?

Autor: Jens A. (micro)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok,

jetzt habe ich es endlich so gehts

avr32-objcopy test.hex test.bin -R .userpage

Beim AVR32 ist nämlich das .eeprom die .userpage.
Deswegen kommen auch beim compilieren sogar beim Atmel example
sgmentation failed.

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.