China Arduino zu kleiner flash Speicher?

OP #4394842
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
Hallo,

was sagt Dein Ram-Verbrauch?

Bootloader mit 20kB bauen nichtmal die Chinesen, warum sollten sie auch, 
die Boorloader sind ja fertig da.
Bisher weder mit Nano noch NodeMCU oder ProMini in mehreren 
Layoutvarianten irgendwelche Probleme.

Gruß aus Berlin
Michael
OP
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
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.
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
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
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
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
bzw.

pindrei@ThinkPad-X1:~$ avr-size --mcu=atmega328p -C 
/tmp/build8054757072674598525.tmp/Luftsensor.cpp.elf
AVR Memory Usage
----------------
Device: atmega328p

Program:    8332 bytes (25.4% Full)
(.text + .data + .bootloader)

Data:        811 bytes (39.6% Full)
(.data + .bss + .noinit)
OP
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

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.