Forum: Mikrocontroller und Digitale Elektronik ATmega328P -> ATmega328PB BINÄR Code kompatible


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Hendrik L. (lbd)


Bewertung
0 lesenswert
nicht lesenswert
Habe folgenden Artikel gelesen:

https://www.pololu.com/file/0J1464/Atmel-42559-Differences-between-ATmega328P-and-ATmega328PB_ApplicationNote_AT15007.pdf

Darin heisst es: "... Code compiled for ATmega328 variants are 
compatible and can be executed in the ATmega328PB device.  ..."

Damit ist "gelinkte" BINÄRE Kompatibilität gemeint, d.h. 328P.hex Code, 
den ich zuvor in einen 328P geflashed habe, kann nun kopiert werden und 
direkt in einen 328PB geflashed werden ?!

Nur, um ganz sicher zu gehen, dass ich bei einer Fehlersuche keine 
Basics übersehen habe ...!

Danke im voraus & Gruesse

von Veit D. (devil-elec)


Bewertung
0 lesenswert
nicht lesenswert
Ja ist korrekt.

Edit:
Nochmal anders. Solange in deiner Programmierumgebung der Ziel µC ein 
328P bleibt, solange kannst du weiterhin am Programm schreiben. Wird ja 
am Ende für den 328P kompiliert der zum 328PB binärkompatibel ist. Also 
weiterhin auf beide flashbar.
Sobald du aber in deiner Programmierumgebung den Ziel µC auf den 328PB 
umstellst, musst du ggf. dein gesamtes Programm überarbeiten, weil sich 
hier und da paar Registernamen und Bitnamen geändert haben. Weil deine 
Programmierumgebung dann das Headerfile vom 328PB verwendet. Nur auf 
einen 328PB flashbar.

Theoretisch sind Programme vom 328PB auch binär rückwärtskompatibel zum 
328P, solange man die zusätzlichen Features vom 328PB nicht verwendet. 
Also ihn programmiert als hätte man nur einen 328P vor sich. Das kann 
klappen, muss aber nicht.

: Bearbeitet durch User
von Christian S. (roehrenvorheizer)


Bewertung
1 lesenswert
nicht lesenswert
"Note:  Code compiled for ATmega328 variants are compatible and can be 
executed in the ATmega328PB device. Whereas, reverse code compatibility 
is not guaranteed."

MfG

von Carl D. (jcw2)


Bewertung
0 lesenswert
nicht lesenswert
Der 328PB hat mehr Timer, statt 1x jeweils 2x UART/SPI/TWI, 
QTouch-Controller.
Damit sollte klar sein, daß die Nutzung dieser zusätzlichen Peripherie 
bei einer Ausführung auf dem "Vorgänger" zumindest nicht das gewünschte 
Verhalten zeigen wird. Umgekehrt wohl schon, da man ja dann die 
Zusatzfeatures gar nicht benutzt.

von Hendrik L. (lbd)


Bewertung
0 lesenswert
nicht lesenswert
Veit D. schrieb:
> Ja ist korrekt.
>
> Edit:
> Nochmal anders. Solange in deiner Programmierumgebung der Ziel µC ein
> 328P bleibt, solange kannst du weiterhin am Programm schreiben. Wird ja
> am Ende für den 328P kompiliert der zum 328PB binärkompatibel ist. Also
> weiterhin auf beide flashbar.
> Sobald du aber in deiner Programmierumgebung den Ziel µC auf den 328PB
> umstellst, musst du ggf. dein gesamtes Programm überarbeiten, weil sich
> hier und da paar Registernamen und Bitnamen geändert haben. Weil deine
> Programmierumgebung dann das Headerfile vom 328PB verwendet. Nur auf
> einen 328PB flashbar.
>
> Theoretisch sind Programme vom 328PB auch binär rückwärtskompatibel zum
> 328P, solange man die zusätzlichen Features vom 328PB nicht verwendet.
> Also ihn programmiert als hätte man nur einen 328P vor sich. Das kann
> klappen, muss aber nicht.

Sehr gut - vielen Dank. So habe ich es mir intern auch hergeleitet, aber 
immer besser, andere Meinungen zu hören - kann viel Zeit sparen.

Danke an Alle!

Gruesse

von Peter D. (peda)


Bewertung
0 lesenswert
nicht lesenswert
Problematisch ist nur, wenn der 328P am 20MHz Quarz läuft.
Der 328PB ist nur für 16MHz Quarz zugelassen.

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.