Forum: Mikrocontroller und Digitale Elektronik Speicherplatzbedarf des Programms


von Stephan (Gast)


Lesenswert?

Hallo!

Kurz und knapp:
mein Atmega besitzt einen 64kB großen Programmspeicher. Heißt das, das 
hex-file, was ich erzeuge und da rein schiebe, darf genau so groß sein 
oder spielt da noch mehr mit rein?

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> Heißt das, das
> hex-file, was ich erzeuge und da rein schiebe, darf genau so groß sein

nein, denn im hexfile stehen Hexzahlen und Zeilenumbrüche. Der code ist 
also kleiner als das Hexfile.

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> Der code ist
> also kleiner als das Hexfile.

Und wo sehe ich (mit AVRStudio arbeitend) wie groß mein Erguss denn nu 
ist?!

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> Und wo sehe ich (mit AVRStudio arbeitend) wie groß mein Erguss denn nu
> ist?!

kommt denn am ende keine Ausgabe vom Buildprocess?

von Falk B. (falk)


Lesenswert?

Jedes mal im Fenster unten,wenn der Compiler gelaufen ist (F7).

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> kommt denn am ende keine Ausgabe vom Buildprocess?

Hm. Da hätt ich jetzt auch selber drauf kommen können. Aber vllt hat 
sich gerade eine ander Problematik aufgetan.

ich programmiere einen Atmega644, der nur für die Anzeige von Inhalten 
eines sehr, sehr dummen Grafikdisplays da ist. Den ganzen Schriftsatz 
usw habe ich in den Speicher des µC schreiben müssen. Dass der recht 
voll wird habe ich mir gedacht, und nun lese ich in der built-Ausgabe 
folgendes:

Device: atmega644p
    Program:    4808 bytes (7.3% Full)
    Data:       4282 bytes (104.5% Full)

Datenspeicher mehr als 100% voll? Kann man das ignorieren?

von test (Gast)


Lesenswert?

kann man schon ignorieren...

sollte man aber nicht ;)

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> Datenspeicher mehr als 100% voll? Kann man das ignorieren?

klar kann man das ignorieren - hast du doch bist jetzt auch getan. Nur 
wird das Programm nicht sinnvoll arbeiten.

Optimierung auf -Os gestellt?

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> Optimierung auf -Os gestellt?

Ööööhmmm.... Was tut das und wo tut mann das?

von Peter II (Gast)


Lesenswert?

wenn mich jetzt nicht irre, dann ist der RAM das Problem

Data:       4282 bytes (104.5% Full)


das müsste der Ramverbraucht sein, da hilft auch keine Optimierung. 
Jetzt musst du uns wohl doch mal das Programm zeigen.

von Bernd (Gast)


Lesenswert?

Könnte es sein dass mit LUT oder großen Array's gearbeitet wird?
Eventuell kann man das eine oder andere Byte in den EEProm oder Flash 
verlegen.

von Falk B. (falk)


Lesenswert?

@ Stephan (Gast)

>eines sehr, sehr dummen Grafikdisplays da ist. Den ganzen Schriftsatz
>usw habe ich in den Speicher des µC schreiben müssen.

Ja, in den RAM. Im Flash ist er besser aufgehoben.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmspeicher_.28Flash.29

>    Program:    4808 bytes (7.3% Full)
>    Data:       4282 bytes (104.5% Full)

>Datenspeicher mehr als 100% voll? Kann man das ignorieren?

Der RAM.

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> Jetzt musst du uns wohl doch mal das Programm zeigen.

Gern: Hier die Zahlen von 0 bis 9, wie sie das Lascar- Display 
(32x100px) gerne hätte (und bekommt):
1
  static const unsigned char dmx_digit[10][100] = {
2
  {0x00,0x00,0x00,0x80,0xE0,0xF0,0xF8,0x7C,0x1C,0x1E,0x0E,0x0E,0x0E,0x0E,0x1E,0x1E,0x7C,0xFC,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x00,
3
  0x00,0x00,0xFC,0xFF,0xFF,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x00,
4
  0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xFF,0xFF,0xFF,0x3F,0x00,0x00,0x00,
5
  0x00,0x00,0x00,0x03,0x0F,0x1F,0x3F,0x3E,0x78,0x78,0x70,0x70,0x70,0x70,0x78,0x38,0x3E,0x1F,0x0F,0x07,0x01,0x00,0x00,0x00,0x00},
6
  
7
  {0x00,0x00,0x00,0x00,0xE0,0xE0,0x70,0x70,0x38,0x3C,0x1C,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
8
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
9
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
10
  0x00,0x00,0x00,0x00,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x7F,0x7F,0x7F,0x7F,0x70,0x70,0x70,0x70,0x70,0x70,0x00,0x00,0x00,0x00},
11
  
12
  {0x00,0x00,0x00,0x00,0x70,0x78,0x3C,0x1C,0x1C,0x0E,0x0E,0x0E,0x0E,0x0E,0x1E,0x1E,0x7C,0xFC,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x00,
13
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xF0,0xFF,0xFF,0x7F,0x1F,0x00,0x00,0x00,0x00,
14
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xF0,0x78,0x3C,0x1F,0x0F,0x07,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
15
  0x00,0x00,0x00,0x70,0x78,0x7C,0x7E,0x7F,0x77,0x73,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x00,0x00,0x00},
16
  
17
  {0x00,0x00,0x00,0x00,0x70,0x78,0x3C,0x1C,0x1C,0x0E,0x0E,0x0E,0x0E,0x0E,0x1E,0x1E,0x3C,0xFC,0xF8,0xF0,0xE0,0x00,0x00,0x00,0x00,
18
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xE0,0xE0,0xF0,0xF8,0x3F,0x3F,0x1F,0x07,0x00,0x00,0x00,0x00,
19
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x03,0x07,0x0F,0xFF,0xFE,0xFC,0xF0,0x00,0x00,0x00,
20
  0x00,0x00,0x00,0x1C,0x3C,0x38,0x38,0x78,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x38,0x3C,0x3E,0x1F,0x0F,0x07,0x01,0x00,0x00,0x00},
21
  
22
  {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xF0,0xFC,0x7E,0x1E,0xFE,0xFE,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
23
  0x00,0x00,0x00,0x00,0x80,0xC0,0xF0,0xFC,0x7E,0x1F,0x0F,0x03,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
24
  0x00,0xF0,0xF8,0xFE,0xFF,0xEF,0xE3,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xFF,0xFF,0xFF,0xFF,0xE0,0xE0,0xE0,0xE0,0x00,0x00,
25
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x7F,0x7F,0x00,0x00,0x00,0x00,0x00,0x00},
26
  
27
  {0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xFE,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x00,0x00,0x00,0x00,0x00,
28
  0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,
29
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0x07,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,
30
  0x00,0x00,0x00,0x1C,0x3C,0x38,0x38,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x78,0x38,0x3C,0x1F,0x1F,0x0F,0x07,0x01,0x00,0x00,0x00},
31
  
32
  {0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xF0,0xF8,0x7C,0x3C,0x1C,0x1E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x1E,0x1C,0x1C,0x00,0x00,0x00,
33
  0x00,0x00,0x00,0xF0,0xFF,0xFF,0xFF,0x87,0xC0,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,
34
  0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0x83,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x07,0xFF,0xFF,0xFF,0xFC,0x00,0x00,
35
  0x00,0x00,0x00,0x00,0x03,0x0F,0x1F,0x3F,0x3C,0x78,0x70,0x70,0x70,0x70,0x70,0x70,0x38,0x3C,0x3F,0x1F,0x0F,0x07,0x01,0x00,0x00},
36
  
37
  {0x00,0x00,0x00,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0xCE,0xFE,0xFE,0xFE,0x7E,0x1E,0x00,0x00,
38
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF8,0xFE,0xFF,0x3F,0x0F,0x01,0x00,0x00,0x00,0x00,
39
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xF0,0xFC,0xFF,0x7F,0x1F,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
40
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x7C,0x7F,0x7F,0x3F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
41
  
42
  {0x00,0x00,0x00,0xC0,0xF0,0xF8,0xFC,0x3C,0x1E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x1E,0x3C,0xFC,0xF8,0xF0,0xE0,0x00,0x00,0x00,0x00,
43
  0x00,0x00,0x00,0x07,0x1F,0x3F,0x3F,0x7C,0xF8,0xF0,0xE0,0xE0,0xC0,0xE0,0xF0,0xF0,0x7C,0x3F,0x1F,0x0F,0x03,0x00,0x00,0x00,0x00,
44
  0x00,0x00,0xE0,0xF8,0xFC,0xFC,0x1E,0x0F,0x07,0x03,0x03,0x01,0x03,0x03,0x07,0x07,0x0F,0x1E,0xFE,0xFC,0xF8,0xE0,0x00,0x00,0x00,
45
  0x00,0x00,0x03,0x0F,0x1F,0x3F,0x3C,0x38,0x78,0x70,0x70,0x70,0x70,0x70,0x70,0x78,0x38,0x3C,0x3F,0x1F,0x0F,0x03,0x00,0x00,0x00},
46
  
47
  {0x00,0x00,0x80,0xE0,0xF0,0xF8,0x7C,0x3C,0x1E,0x0E,0x0E,0x0E,0x0E,0x0E,0x1E,0x1E,0x3C,0xFC,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x00,
48
  0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC1,0xFF,0xFF,0xFF,0xFE,0x00,0x00,0x00,
49
  0x00,0x00,0x00,0x00,0x01,0x03,0x03,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x03,0x03,0xE1,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0x00,
50
  0x00,0x00,0x00,0x38,0x38,0x78,0x70,0x70,0x70,0x70,0x70,0x70,0x78,0x38,0x3C,0x3E,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00}
51
  };

Ich denke, da ist nicht viel mit Einsparen..

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> Ich denke, da ist nicht viel mit Einsparen..

doch, das zeug muss nicht im Ram liegen - das legt man in den Flash.

von Stephan (Gast)


Lesenswert?

Falk Brunner schrieb:
> Ja, in den RAM. Im Flash ist er besser aufgehoben.

Landen Variable, die man verwendet, automatisch im RAM?

von Falk B. (falk)


Lesenswert?

@ Stephan (Gast)

>> Ja, in den RAM. Im Flash ist er besser aufgehoben.

>Landen Variable, die man verwendet, automatisch im RAM?

Wo sonst, es sind ja VARIABLEN. Siehe Speicher.
Auch ein const allein nützt hier nix.

Wie es geht steht oben im Link. Ist nicht schwer.

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> doch, das zeug muss nicht im Ram liegen - das legt man in den Flash.

Bernd schrieb:
> Eventuell kann man das eine oder andere Byte in den EEProm oder Flash
> verlegen.

Falk Brunner schrieb:
> Im Flash ist er besser aufgehoben.


Scheinbar ist man sich hier einig... ich werd mich wohl mal ans Tutorial 
setzen und ein bissel Flash-zugriff lernen.

Danke vielmals!

OT: Biertipp: Neumarkter Lammsbräu Edelpils.

von Stephan (Gast)


Lesenswert?

So. Es hakt.

Im Tutorial heißt es
"GCC kennt keine eigene Option zum Aktivieren von Embedded-C, es wird 
als GNU-C Erweiterung behandelt. Daher müssen C-Module, die 
Address-Spaces verwenden, mit -std=gnu99 compiliert werden."
Soweit so gut.

Compilieren tut mein AVRStudio immer, wenn ich F5 drücke. Wie bringe ich 
ihm bei, dass er da "-std=gnu99" einbaut?

Auf die Codezeile
1
static const __flash int value = 10;

antwortet er mit der Fehlermeldung

expected '=', ',', ';', 'asm' or '__attribute__' before 'int'

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> antwortet er mit der Fehlermeldung

welche Version von GCC hast du?

von Falk B. (falk)


Lesenswert?

@ Stephan (Gast)

>"GCC kennt keine eigene Option zum Aktivieren von Embedded-C, es wird
>als GNU-C Erweiterung behandelt. Daher müssen C-Module, die
>Address-Spaces verwenden, mit -std=gnu99 compiliert werden."
>Soweit so gut.

Irgendwie ist der Abschnitt ziemlich unübersichlich geworden.

>static const __flash int value = 10;

Mach es einfach mit PROGMEM und gut.
1
#include <avr/pgmspace.h>
2
3
static const unsigned char dmx_digit[10][100] PROGMEM = {
4
5
   i= pgm_read_byte(&dmx_digit[x][y]);

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> welche Version von GCC hast du?

Wenn ich bei den Infos zum AVRStudio nach den installierten Packages 
schaue und GCC Project auswähle, steht da 5.1.0.0. Ist das die Angabe 
die Du brauchst?

von Stephan (Gast)


Lesenswert?

Falk Brunner schrieb:
> Mach es einfach mit PROGMEM und gut.

Ist das auch wirklich einfacher? Mir erscheint die Schreibweise
1
static const __flash int value = 10;
2
 
3
int get_value (void)
4
{
5
  return value;
6
}
intuitiver?!

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
>> welche Version von GCC hast du?
>
> Wenn ich bei den Infos zum AVRStudio nach den installierten Packages
> schaue und GCC Project auswähle, steht da 5.1.0.0. Ist das die Angabe
> die Du brauchst?

nein, du musst direkt den gcc (avr-gcc oder so) auf der Kommandozeile 
mit dem Parameter --Version startet.

Denn das mit dem Flash geht erst ab 4.7.

von Stephan (Gast)


Lesenswert?

Stephan schrieb:
> Ist das auch wirklich einfacher?

Nehme alles zurück. PROGMEM fängt an mir schlagartig zu gefallen..

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> nein, du musst direkt den gcc (avr-gcc oder so) auf der Kommandozeile
> mit dem Parameter --Version startet.

Ich hantiere schon ziemlich lange mit AVRs aber habe die Kommandozeile 
nicht ein einziges mal gebraucht (geschweigedenn vermisst). Mit den 
AVRStudio war alles immer so vorgekaut! Aber ich versuchs. Nur, wie zum 
Henker finde ich diese Kommandozeile bzw wie nennt Atmel die?

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> Ich hantiere schon ziemlich lange mit AVRs aber habe die Kommandozeile
> nicht ein einziges mal gebraucht (geschweigedenn vermisst). Mit den
> AVRStudio war alles immer so vorgekaut! Aber ich versuchs. Nur, wie zum
> Henker finde ich diese Kommandozeile bzw wie nennt Atmel die?

die Windows Kommandozeile (cmd)

von Stephan (Gast)


Lesenswert?

Peter II schrieb:

> die Windows Kommandozeile (cmd)

Ich bin mit Windows 95 groß geworden. Ich habe NULL Plan was ich tippen 
soll um die Version vom AVR-GCC herauszufinden. Da steht nur 
C_USER_STEPHAN

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> Ich bin mit Windows 95 groß geworden. Ich habe NULL Plan was ich tippen
> soll um die Version vom AVR-GCC herauszufinden. Da steht nur
> C_USER_STEPHAN

dann solltest du eventuell dir ein anderes Hobby/Beruf suchen. Als 
Programmierer sollte man gewisse Grundlagen kennen.

von Falk B. (falk)


Lesenswert?

@ Stephan (Gast)

>Ist das auch wirklich einfacher? Mir erscheint die Schreibweise
>intuitiver?!

Hast recht, geht aber nur mit dem neueren avr-gcc.

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> dann solltest du eventuell dir ein anderes Hobby/Beruf suchen. Als
> Programmierer sollte man gewisse Grundlagen kennen.

Das kann schon sein. Asche auf mein Haupt! Ich habe nie beklagt, dass 
AVRStudio so viel selber macht. Getreu dem Motto "keine schlafenden 
Hunde wecken".
Wenn ich das mir beibrächte wäre das, als hätte man Boris Becker was 
über Impulserhaltung erklärt- am nächsten Tag ists wieder vergessen :)

von Stephan (Gast)


Lesenswert?

3.3.1.27
Gefunden!

von Peter II (Gast)


Lesenswert?

Stephan schrieb:
> 3.3.1.27
> Gefunden!

scheint kleiner als 4.7 zu sein

von Stephan (Gast)


Lesenswert?

Peter II schrieb:
> scheint kleiner als 4.7 zu sein

Ein wenig vielleicht.
Auf http://www.mikrocontroller.net/articles/Atmel_Studio
gibt´s neuere Versionen. Sind die selbstinstallierend? Wie "tauscht man 
die aus"?

von Stephan (Gast)


Lesenswert?

Um das abzuschließen und, für den der´s auch braucht: hier die Anleitung 
zum Wechsel der toolchain bei AVRStudio:

http://avrstudio5.wordpress.com/2012/03/05/changing-the-toolchain-in-atmel-studio-6-0-and-avr-studio-5-1/

von Thomas (kosmos)


Lesenswert?

In ASM legt man einfach eine Tabelle im .cseg(Flash)  an. Vielleicht ist 
aber auch dein EEPROM groß genug dafür. Hätte den Vorteil das man beim 
Wechsel des Zeichensatzes nur das EEPROM neu brennen muss.

von Henry (Gast)


Lesenswert?

Und Stephan, läufts jetzt mit __flash?

Also ich finde dieses Vorgehen viel einfacher und auch besser lesbar als 
die veraltete PROGMEM-Krücke...

von Rudolph (Gast)


Lesenswert?

Stephan schrieb:
> 3.3.1.27

Das könnte die Version der Toolchain sein.

Einfach mal im Atmel-Studio auf Help/About Atmel Studio gehen
und da im Fenster die "View Installed Components" auf "Atmel AVR (8 bit) 
GNU Toolchain" verstellen.

Bei mir steht dann das hier im Fenster:

Installed Packages: Atmel AVR (8 bit) GNU Toolchain - 3.4.3.1005
AVR Toolchain 8 Bit
Version: AVR8_Toolchain_Version:3.4.3.1072 GCC_VERSION:4.8.1
Package GUID: 2C7AA7CF-94C6-463C-81DA-4AA03B613C3B
Company: Atmel
HelpUrl:
Release Description: AVR Toolchain For 8-Bit Devices

Per Kommando-Zeile habe ich für AVR auch schon lange nichts mehr 
gemacht.

von Falk B. (falk)


Lesenswert?

@ Henry (Gast)

>Und Stephan, läufts jetzt mit __flash?

>Also ich finde dieses Vorgehen viel einfacher und auch besser lesbar als
>die veraltete PROGMEM-Krücke...

Naja, man darf aber bitte nicht vergessen, dass es nur Kosmetik ist. Die 
Unterscheidung zwischen FLASH und RAM Variablen bleibt, es sieht nur 
schöner aus. Mit dieser __memx Trick macvht das FAST perfekt, aber 
soweit ich es verstehe auch nicht 100% wie bei normalem C.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Jenseits_von_flash

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.