Forum: Mikrocontroller und Digitale Elektronik AVR Butterfly Programm passt nicht in Flash?


von Tom H. (dastoem)


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?

von holger (Gast)


Lesenswert?

>Der Butterfly hat doch aber 4Mbit (=512
>kByte) Flash. Sollte doch passen oder?

512kB externes Flash. Damit kann AVRGCC nichts anfangen.
Der ATMega169 selbst hat nur 16kB.

von Tom H. (dastoem)


Lesenswert?

Okay, wie kriege ich die Daten dann ins externe Flash?

von 6641 (Gast)


Lesenswert?

Na mit einem Programm, das die Daten ueber die serielle Schnittstelle 
ansaugt und dort reinschiebt.

von Tom H. (dastoem)


Lesenswert?

Okay, mit welchem Programm kann ich den externen Flash beschreiben und 
wie spreche ich die Daten anschließend durch mein eigenes Programm 
wieder an?

von Sebastian (Gast)


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.

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.