China Arduino zu kleiner flash Speicher?

OP #4394842
Lesenswert?

Hallo,

ich habe gerade ein kleines Projekt, welches ich mit einem Arduino nano 
Nachbau aufgebaut habe.
Sobald die Größe des Projektes einen Speicherbedarf von ca 10000 byte 
überschreitet, funktioniert das Programm auf dem µC nicht mehr.

Ich habe die Vermutung, dass hier ein anderer Bootloader verwendet 
wurde, und daher nicht ausreichend Platz im Flash vorhanden ist. 
Eigentlich sollte der Bootloader ca 2kByte belegen und ca 30 kbyte frei 
sein.

Hat jemand bereits die gleiche Erfahrung gemacht?


MfG

Pindrei
OP #4394857
Lesenswert?

Michael U. schrieb:
> Bootloader mit 20kB bauen nichtmal die Chinesen,

Naja, es bedeutet ja nicht das der Bootloader 20kbyte groß ist, nur das 
das Programm an dieser Speicherstelle beginnt

Karl M. schrieb:
> Hast Du mal den Flashspeicher per ISP programmiert ?

Mit dem ISP Programmer werde ich es als nächstes versuchen, ich wollte 
nur wissen, ob jemand das gleiche Problem bereits hatte.
Gast #4394873
Lesenswert?

Pindrei P. schrieb:
> Sobald die Größe des Projektes einen Speicherbedarf von ca 10000 byte
> überschreitet, funktioniert das Programm auf dem µC nicht mehr.

Meine Glaskugel sagt:
Klarer Fall!
Der Fehler steckt in der zusätzlichen Funktionalität.

Anders:
Das Problem sitzt vor dem Monitor.
#4394878
Lesenswert?

Hallo,
@ Karl M.: Danke fürs nachschauen, ich war zu faul dazu, die Anpielung 
mit den 20k war nur aus 32k Flash und seinen 10k Programm.

Ich vermute eher auf zu hohe Ram-Auslastung, aber dazu müßte er sich 
äußern.
"Funktioniert nicht mehr" ist mir zu vieldeutig.

Gruß aus Berlin
Michael
#4394906
Lesenswert?

Hallo,

ich kann nur vermuten, daß Du die ArduinoIDE benutztm Du bist mit Infos 
ja sehr sparsam. Die zeigt zumindest bei mir den verbleibenden Ram für 
dynamische Variablen nach dem Compilieren an.
Irgendwo gab es auch ein paar Zeilen Programm, daß man einfügen konnte, 
um sich die Belegung im Programm zur Laufzeit über die serielle 
mitteilen zu lassen, finde ich gerade nicht.

Zeig doch Dein Programm (als Detaianhang) wenn es kein großes Geheimnis 
ist.
Problem sind oft viele lokale Texte, die irgendwo ausgegeben werden und 
besser ins Flash sollten.

PS: meine Glaskugel-Software läuft nicht auf dem ProMini... ;-)

Gruß aus Berlin
Michael
OP #4394912
Lesenswert?

Hallo,

im Anhang befindet sich das Arduino Projekt.
In der Setup und Loop Funktion befinden sich Funktionsaufrufe, die 
auskommentiert sind, sobald ich eine weiter Funktion aufrufe und sie 
damit mit kompiliert wird, Funktioniert das Programm nicht mehr und der 
Controller resetet durchgehend.

Den Speicherbedarf ermittelt man dḿit:

avr-size -x -A foo.elf

Jedoch habe ich noch nicht herausgefunden, wo die IDE die Dateien 
ablegt.
Angehängte Dateien:
OP #4394919
Lesenswert?

Hab die .elf gefunden


pindrei@ThinkPad-X1:~$ avr-size -x -A 
/tmp/build8054757072674598525.tmp/Luftsensor.cpp.elf
/tmp/build8054757072674598525.tmp/Luftsensor.cpp.elf  :
section       size       addr
.data        0x264   0x800100
.text       0x1e28        0x0
.bss          0xc7   0x800364
.stab       0xa554        0x0
.stabstr    0xd3c0        0x0
.comment      0x11        0x0
Total      0x19a78


pindrei@ThinkPad-X1:~$
OP #4394924
Lesenswert?

OK, der Datenspeicherbedarf ist ein wenig zu groß.....
1
pindrei@ThinkPad-X1:~$ avr-size --mcu=atmega328p -C /tmp/build8054757072674598525.tmp/Luftsensor.cpp.elf
2
AVR Memory Usage
3
----------------
4
Device: atmega328p
5

6
Program:   10034 bytes (30.6% Full)
7
(.text + .data + .bootloader)
8

9
Data:       2341 bytes (114.3% Full)
10
(.data + .bss + .noinit)

Dann werde ich das Programm einmal anpassen, kann ich bei der Tollen IDE 
die Speichergrößen-Ausgabe nach dem Compilieren anhängen?

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