mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EEprom groß genug?


Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo. Ich schreibe gerade im assembler, und bange darum, das der 
Speicher des mega8515 dafür reicht. woran erkenne ich, wie groß das 
programm ist? muss ich alle befehel im quellcode zählen und die bytes 
zusammenzählen !?! Oder muss die Hexfile einfach von der größe rein 
passen?
danke für die Hilfe

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey, ich habe gerade entdeckt, wenn ich debugge bekomme ich ja immer enn 
kleinen bricht, und da steht unteranderem folgendes drinne:

ATmega8515 memory use summary [bytes]:
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x0000de    222      0    222    8192   2.7%
[.dseg] 0x000060 0x000060      0      0      0     512   0.0%
[.eseg] 0x000000 0x000000      0      0      0     512   0.0%


gibt used 222 an, das 222 byte gebraucht werden?

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig, steht ja auch in der ersten Zeile in den Klammern. Und die 
Prozentzahl steht auch gleich da, also kannst du ungefähr noch 34x dein 
Programm reinsetzen :-)

Ralf

Autor: Jupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bingo!

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> EEprom groß genug?
Der Code landet im Flash. Aus dem EEprom können beim AVR keine Befehle 
ausgeführt werden.

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber was gibt dann die 222 an? wenn ich einen befehl aism code rausnehme 
sinkt der wert genau um die anzahl, wieviele bytes der befehl braucht. 
??

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...aber was gibt dann die 222 an? wenn ich einen befehl aism code 
rausnehme
sinkt der wert genau um die anzahl, wieviele bytes der befehl braucht.
??...

Dann ziehe mal eine logische Schlussfolgerung, wenn PRO BEFEHL WENIGER 
diese Zahl um zwei Bytes sinkt....

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dann wird die zahl wohl die größe des codes in byte angeben, aber dann 
kommt das mit den 2,7 % ja überhaupt nicht mehr hin, weil der 8515 nur 
512 Bytes EEprom hat.

222   =  2,7 %
8,148 =  1 %
814,8 = 100 %

814,8 = 512 ???? neee

Schlussfolgerung Das datenblatt oder der Assembler lügt. Oder beide :-D


???

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 8515 nur 512 Bytes EEprom hat
...und das Programm landet im - Flash. Welcher 8KB groß ist.

Autor: Stefan Kleinwort (_sk_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die meisten Befehle beötigen 1 Wort (2 Byte).
Ein paar bestehen auch aus 2 Worten (4 Byte).
Welcher Befehl wieviel Speicher benötigt, siehst Du im AVR Befehlssatz 
(AVR instruction set).

Solange Du keine Strings oder konstante Daten verwendest, musst Du Dir 
über die Größe Deines Programms wenig Sorgen machen.

Stefan

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sind denn Strings und konstante Daten? Interessiert sei Ich habe 
gerade alles bis hier hin verstande und komme gut zurecht, aber das kenn 
ich noch nicht. Gibs dazu tutorials oder so?

Wie steht denn nun die Byte anzahl mit der % zahl in verbindung? isser 
EEprom voll, wenn ich 100% habe, oder wenn ich da ne 512 stehen habe?

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Prozent gibt an wieviel du verbraucht hast, von den verfügbaren 
Platz (Use = benutzt)

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> isser EEprom voll, wenn ich 100% habe
Ja wenn für .eseg 100% angegeben werden, ist er voll.

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wat wie? wer ist denn .eseg? Ich spreche vom internen EEprom extern habe 
ich noch nie was mit gemacht

Autor: Holger Krull (krulli) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so sieht es aus wenn man nur noch zwei Bytes frei hat
Segment   Begin    End      Code   Data   Used    Size   Use%
---------------------------------------------------------------
[.cseg] 0x000000 0x000800   1976     70   2046    2048  99.9%
[.dseg] 0x000060 0x000060      0      0      0     128   0.0%
[.eseg] 0x000000 0x000000      0      0      0     128   0.0%

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> wat wie? wer ist denn .eseg? Ich spreche vom internen EEprom extern habe
> ich noch nie was mit gemacht
Ja und? eeseg sagt doch aus, dass es sich um den internen EEPROM 
handelt.

Ralf

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Lukas:
Du solltest Dich mal mit den verschiedenen Speicherarten des AVRs 
vertraut machen. Dabei könnte das Datenblatt helfen. Auch das hiesige 
Tutorial kann da sehr hilfreich sein.

Soviel vorweg: EEPROM ist für Daten, die gelegentlich (nicht zu oft, 
EEPROM hat Verschleiß) geändert werden. Programme landen nicht im EEPROM 
sondern im Flash. Neben Flash und EEPROM solltest Du auch Register 
(untere und obere, mit Konstanten ansprechbare), I/O-Bereich 
(bitorientierter und byteorientierter), extended-I/O (nicht beim 8515), 
internes SRAM und externes SRAM auseinanderhalten können, sonst wird das 
mit dem Programmieren nix.

...

Autor: Jupp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und noch ergänzend, auch der Flash-Speicher unterliegt einem Verschleiß.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jupp wrote:
> Und noch ergänzend, auch der Flash-Speicher unterliegt einem Verschleiß.

Ja sicher doch, sogar bedeutend höher als EEPROM. Aber Programme 
wechselt man ja nicht allzu oft. Daher hielt ich es nicht für nötig, 
darauf hinzuweisen.

Trotzdem meine ich, dass sich Lukas das selbst erarbeiten muss 
(Tutorial?), es wäre unfair den Anderen Anfängern gegenüber, die sich 
ihr Grundwissen auch selbst erarbeiten.

Ich wollte ihm mit meinem Text lediglich zeigen, dass er etwas tun muss.

...

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, wodurch erarbeitet man sich das denn dann außer durch tutorials 
fragen denken datenblatt nachschaun ausprobieren und wieder lesen...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lukas -- wrote:
> OK, wodurch erarbeitet man sich das denn dann außer durch tutorials
> fragen denken datenblatt nachschaun ausprobieren und wieder lesen...

Die Richtung stimmt. Allerdings sollte der Punkt "verstehen" noch mit 
aufgenommen werden.

Tutorials können nur die ersten Schritte erklären und vor bekannten 
Stolperfallen warnen. Den Rest lernt man, indem man mit kleinen, 
überschaubaren Projekten beginnt (Du wirst staunen, was man da alles 
falsch machen kann) und sich schrittweise steigert. Der Blick in fremde 
Programme (um zu verstehen, nicht um zu kopieren ohne zu verstehen) kann 
auch sehr hilfreich sein. Das Datenblatt des betreffenden Controllers 
braucht man praktisch immer, die einzelnen Typen sind einfach zu 
unterschiedlich ausgestattet. Auch die Online-Hilfe des AVR-Studio kann 
manches Problem lösen.

Viel Erfolg...

...

Autor: Lukas -- (lukas)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alles klar, danke, dann bin ich ja aufm besten wege! :-)

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.