www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega16 / ATiny2313 hex File größe / interner Flash


Autor: Daniela (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe ein Programm in C geschrieben, das ich auf einem Testboard mit 
ATMega16 getestet habe. Da ich nur sehr wenige I/O Ports benötige, 
möchte ich das ganze auf einen kleineren uC portieren (z.B. ATiny2313?). 
Über die Register-Anpassungen bin ich mir schon im klaren.
Wie verhält sich aber die Programmgröße (hex File) zu dem internen Flash 
des Prozessors? Der Mega16 hat 16kB, der Tiny2312 nur 2kB.

Mein *.hex File hat z.Z. 10kB. Entspricht das der Größe, die es auch im 
Flash belegt?

Ich kann das Programm leicht noch schlanker machen, da ich sehr viele 
Debuginfos (Klartext) über RS232 an den PC schicke, die nicht notwendig 
sind.

Oder gibt es einen kleineren (bezogen auf das DIL gehäuse) uC mit
- 1 * uart
- 6 I/O Ports
der sich besser eignet als der Tiny2313?

vielen Dank euch schon mal
 Daniela

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATTiny45 hat nur 8 Pins. Wenn die Anschlüsse für die serielle 
Schnittstelle in den 8 I/O-Ports schon drin sind und interner Oszillator 
ausreicht, ist das wohl der kleinste. Hat 4k. Und die Größe des 
Hex-files ist nicht der verbrauchte Flash, sondern die des Bin-files, 
falls man eines erstellt. Hex ist immer größer.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniela wrote:

> Mein *.hex File hat z.Z. 10kB. Entspricht das der Größe, die es auch im
> Flash belegt?

Natürlich nicht.  Das Hexfile ist, wie der Name ja suggeriert, eine
hexadezimale Codierung des Binärcodes, den der Controller ausführt.
Damit hat man also schon mindestens den Faktor 2 als Größe (2 Bytes
hexadezimal für 1 Byte binär).  Außerdem kommt noch Overhead hinzu für
die Adressierung, eine Prüfsumme sowie die Zeilenstruktur, das macht
so (je nach Zeilenlänge) einen Faktor von 2,5 ... 3.  Je nachdem, wie
viele Debugstrings du da drin hast, könnte es also klappen oder auch
nicht, das auf einen kleineren Controller zu portieren.

> Oder gibt es einen kleineren (bezogen auf das DIL gehäuse) uC mit
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^

Beliebig, sowie du von DIL weggehst. ;-)

> - 1 * uart
> - 6 I/O Ports
> der sich besser eignet als der Tiny2313?

Der genannte ATtiny45 wäre wohl in der Tat die kleinste Option, aber
er ist dann in diesem Modus nur noch mittels HV-Programmierung
benutzbar, da du das /RESET-Pin zum normalen IO-Pin umfunktionieren
musst.

Die nächstgrößere Klasse sind die 4er ATtinys: ATtiny24/44/84.  Die
sind im 14pinnigen Gehäuse.  Ich hab' sie bislang nur als SO-14
gesehen (was heutzutage auch für einen Bastler keine Herausforderung
mehr ist), aber laut Datenblatt soll es sie auch als DIL geben.

Bekannt und beliebt sind die Megas der 8er Serie: ATmega8 (eher schon
veraltet) und dessen Nachfolger ATmega48/88/168.  Die kommen im
28pinnigen Gehäuse (im Falle der SMD-Version 32pinnig mit 2 ADC-Ports
mehr als bei DIL).

Autor: Daniela (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Infos.
werde mir die genannten uC mal ansehen.

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.