www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Allgemeine Fragen zur Programmierung von AVR


Autor: schirrmie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi ich beschfägte mich jetzt seit einiger Zeit mit der Programmierung
und verstehe einiges noch nicht, hoffe bin hier richtig!
Also nehmen wir mal denn AT90S8535 mit 8kBFlash 512B EEPROM und 512B
SRam.
1.)Der Flash ist doch für denn speicher meines geschrieben Programm
oder?
2.)Wann weiß ich das der Voll ist das heißt wie viel darf ich
Programmieren?
3.)Wofür ist der SRam?
4.)Wenn ich ein Array von chars Anlege z.B. char buffer[100]; wo wird
der gespeichert im Flash im SRam oder im EEPROM(glaub ich nicht!)?
5.)Wozu die verschiedenen AusgabeFormate? Es gibt ja HEX, BIN und
bestimmt noch mehr, aber wozu?
6.)Und wieso haben die ne Unterschiedliche größe?
7.)Ich hatte mal ein Programm geschrieben mit 6,5KByte Quellcode. Die
Hex-Datei war 18,4Kbyte groß die Bin-Datei war 6,56Kbyte groß. Wie
passt jetzt die 18,4Kbyte Hex-Datei auf denn 8535? Wird die noch
umgeformt? Vielleicht zur anmerkung habe mit Ponnyprog mein AVR
Programmiert.
Ich weiß sind viele Fragen auf einmal und mir fallen bestimmt noch mehr
ein aber ich hoffe mir kann jemand helfen!
MfG Schirrmie

Autor: Ivan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Schirrmie,

ersteinmal dein programm konnt in den EEPROM! Der SRAM ist ein
statischer Speicher, wo du deine Variablen die du in deinem programm
drauchst speicher tust!

ich hoffe ich konnte dir erstmal weiter helfen!

mfg ivan

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

1.) Ja. Das Programm kommt beim AVR nicht in den EEPROM. Technische
gesehen ist ein Flash zwar auch ein EEPROM aber in der AVR Terminologie
liegt das Programm nicht im EEPROM.

2.) Dein Programmiertool wird es dir sagen wenn der Flash nicht
ausreicht. Du wirst du aber maximal 4k Befehle in 8k Flash bringen. 8k
Flash sind aer reichlich. Da bringt man schon so einiges rein.

3.) Für flüchtige Variablen und den Stack. Evtl. auch für den Heap.

4.) Üblicherweise im SRAM.

5.) Verschiedene Programmiersoftware verlangt verschieden
Datenformate.

6.) Die Codierung ist eine anderen. BIN-Dateien enthalten die reinen
Daten. In Intel HEX Dateien sind die Daten ASCII-kodiert und mit
Addressinformation, Typinformationen und Prüfsummen versehen.

7.) Das hättest du auch durch die Forensuche herausfinden können.
Intel-HEX Dateien sind bei einer Zeilenlänge von 16 Nutz-Byte etwa 2,8
mal größer als das eigentliche Binary. Bei größeren Zeilenlängen (bis
zu 255 Nutzbyte sind möglich) geht dieser Faktor gegen 2.

Matthias

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

zu 1) ja
zu 2) Die meißten Compiler geben dir Asukunft über die erzeugten
Bytes.
zu 3) Wie schon erwähnt für deine Variablen.
zu 4) normalerweise im SRAM, wenn in deinem array allerdings Konstanten
stehen, so können die durchaus auch im Flash abgelegt werden. Dies ist
aber abhängig vom Prozessor, nicht jeder unterstützt dies.
zu 5) Manche Programmiergeräte benötigen z. B. Bin-Files.
zu 6) Bin-Files sind reine binäre Dateien, bei denen ein Byte auch
genau als ein Byte gespeichert ist. Hex-Files dagegen reine
Text-Dateien. Zur Speicherung eines Bytes sind also schon zwei Zeichen
notwendig (hexadezimal). Außerdem enthält dieses File noch
Adressangaben und Prüfsummen.
zu 7) siehe Punkt 6; Im Prinzip wird das Hex-File beim flashen in ein
Bin-File umgewandelt. Um sicher zu gehen, kannst du dir also ein
Bin-File erzeugen. Dann siehst du exakt die Anzahl der Bytes die in den
AVR gebrannt werden.

So, ich hoffe das hat etwas geholfen.

Gruß
Thorsten

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, da war Matthias schneller :)

Autor: schirrmie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut danke habt mir schon sehr weiter geholfen.
MfG schirrmie

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.