mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unterschied M8, M88 und M168 aus sicht von gcc


Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

hab gerad das problem das mein Bootloader schön in einen m8 passt im m88 
gehts auch noch und beim m168 werden plötzlich fast 200 byte mehr 
erzeugt ?!

Nun frag ich mich wozu ? m88 und 168 sollten doch eigentlich von der 
Codeerzeugung her gleich sein oder ? und der Unterschied zum m8 sollte 
auch nicht wahnsinnig sein.

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry im falschen Forum gelandet

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim Mega8 liegen alle I/O-Ports im Bereich 00-3F, sind also mit den 
1-Wort IN/OUT Befehlen adressierbar. Bei den MegaX8 liegen sie im 
Bereich 00-FF und müssen oft mit den 2-Wort-Befehlen LDS/STS adressiert 
werden.

Und beim Mega168 sind auch die Calls 1 Wort länger, weil der 1-Wort 
Befehl RCALL nur bis 8K funktioniert.

Autor: Christian U. (z0m3ie)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, das erklärt einiges

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christian Ulrich wrote:
> Hallo
>
> hab gerad das problem das mein Bootloader schön in einen m8 passt im m88
> gehts auch noch und beim m168 werden plötzlich fast 200 byte mehr
> erzeugt ?!

Das liegt daran, daß Du in C programmierst.

Der Compiler nimmt dann für jeden Call/Jump 4-Byte Befehle. Auch für die 
Interruptvektoren (auch wenn man gar keine Interrupts braucht).

In Assembler kann man natürlich RJMP/RCALL benutzen, da der Bootloader 
wohl nicht größer 4kB ist.

In Assembler ist der Bootloader dann nur 2 Bytes größer (für den JMP 
0x0000).

Z.B. mein Bootloader:

Mega88: 458 Byte
Mega168: 460 Byte


Peter

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.