AVR Butterfly Programm passt nicht in Flash?

OP #815083
Lesenswert?

Hallo Leute,

ich hab ein Programm für meinen Butterfly erstellt, dass recht viele 
Strings und sonstige Daten enthält. Die Größe der Hex-Datei ist 
inzwischen auf 135kByte angewachsen.

AVR Studio 4 sagt mir beim flashen, dass das Programm nicht in den 
Flashspeicher passen würde. Der Butterfly hat doch aber 4Mbit (=512 
kByte) Flash. Sollte doch passen oder?

Die Strings habe ich als:
1
static const char FREQ_STRING0[] PROGMEM = "Zeugs0";
2
.
3
.
4
.
5
.
6
static const char FREQ_STRING984[] PROGMEM = "Zeugs984";

deklariert.

Ein weiteres struct als
1
const FREQ_DATA FREQ[] PROGMEM = {
2

3
{FREQ_STRING0, 1, 983},
4
{FREQ_STRING1, 2, 0 ,70 ,6 ,25000 ,688 ,635 ,625 ,568 ,623},
5
{FREQ_STRING2, 3, 1 ,60 ,7 ,184 ,230 ,568 ,635 ,688 ,2632 ,1000},
6
{FREQ_STRING3, 4, 2 ,420 ,1 ,647},
7
{FREQ_STRING4, 5, 3 ,60 ,7 ,958 ,874 ,150 ,130 ,94 ,1136 ,1134},
8
{FREQ_STRING5, 6, 4 ,210 ,2 ,1502 ,636},
9
{FREQ_STRING6, 7, 5 ,420 ,1 ,8333},
10
{FREQ_STRING7, 8, 6 ,105 ,4 ,688 ,635 ,568 ,50},
11
.
12
.
13
.
14
.
15
{FREQ_STRING983, 0, 982 ,420 ,1 ,233},
16

17
};

Kann mir jemand weiterhelfen?
Gast #815363
Lesenswert?

Wie wär's damit: Zuerst ein Programm schreiben (für den Butterfly), das 
Daten über RS232 einliest und in den DataFlash schreibt. Dafür mußte es 
Bibliotheken geben, vielleicht hier im Forum irgendwo. Im DataFlash, dem 
externen Speicher, soll also, wenn ich das richtig verstehe, eine 
String-Tabelle angelegt werden. Jeder String muß dann natürlich durch 
seine Startadresse angesprochen werden.

Wenn nun das richtige Anwendungsprogramm in den Controller geschrieben 
wird, muß dieses eine Funktion zum Lesen des DataFlash enthalten und den 
jeweils benötigten String temporär in den RAM kopieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren