INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Due: freier Speicher für Variablen während der Laufzeit?
26.04.2015, 12:35
Beitrag #1
Due: freier Speicher für Variablen während der Laufzeit?
hallo,
wer kann mir sagen, wie man beim Arduino Due (!) während der Laufzeit herausbekommt, wieviel Speicher für Variablen während der Laufzeit noch frei ist?
(ich fand eine lib für die AVRs, leider aber nicht für den ARM)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.04.2015, 20:08
Beitrag #2
RE: Due: freier Speicher für Variablen während der Laufzeit?
das würde mich auch interessieren...
leider scheint hier der Due nicht so sehr verbreitet zu sein... Undecided
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.04.2015, 00:55
Beitrag #3
RE: Due: freier Speicher für Variablen während der Laufzeit?
Hallo Leute,
das sollte helfen:
Code:
#include <malloc.h>
#include <stdlib.h>
#include <stdio.h>

extern char _end;
extern "C" char *sbrk(int i);
char *ramstart=(char *)0x20070000;
char *ramend=(char *)0x20088000;

void setup() {
        char *heapend=sbrk(0);
    register char * stack_ptr asm ("sp");
    struct mallinfo mi=mallinfo();
    printf("\nDynamic ram used: %d\n",mi.uordblks);
    printf("Program static ram used %d\n",&_end - ramstart);
    printf("Stack ram used %d\n\n",ramend - stack_ptr);
    printf("Free mem: %d\n",stack_ptr - heapend + mi.fordblks);
}
void loop() {
}
Hope it helps!
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.04.2015, 07:51
Beitrag #4
RE: Due: freier Speicher für Variablen während der Laufzeit?
wow, dankeschön, da war ja ein Fachmann am Werk!
verstehe da zugegebenermaßen nicht viel, aber ich werde es spätestens heute abend austesten! Danke nochmal!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.04.2015, 14:21
Beitrag #5
RE: Due: freier Speicher für Variablen während der Laufzeit?
hallo,
ich habe es jetzt testen wollen - leider findet er <malloc.h> nicht... Huh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.04.2015, 14:31
Beitrag #6
RE: Due: freier Speicher für Variablen während der Laufzeit?
Sollte eigentlich hier zu finden sein:
\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1\arm-none-eabi\include
Ansonsten anbei.

Grüße Ricardo


Angehängte Datei(en)
.h  malloc.h (Größe: 4,22 KB / Downloads: 51)

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.04.2015, 14:44 (Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2015 18:54 von HaWe.)
Beitrag #7
RE: Due: freier Speicher für Variablen während der Laufzeit?
edit: Anführungstriche falsch gesetzt... Moment...

Funktioniert jetzt danke!! Big Grin


Code:
void memtest(int ypos, char * str) {
   char *heapend=sbrk(0);
   register char * stack_ptr asm ("sp");
   struct mallinfo mi=mallinfo();
  
   sprintf(sbuf,str);    
   Serial.println(); Serial.print(sbuf); myGLCD.print(sbuf, 0, ypos);
  
   sprintf(sbuf,"\nDynamic ram used: %d",mi.uordblks);  
   Serial.print(sbuf); myGLCD.print(sbuf, 0, ypos+10);
  
   sprintf(sbuf,"\nProgram static ram used %d",&_end - ramstart);
   Serial.print(sbuf); myGLCD.print(sbuf, 0, ypos+20);
  
   sprintf(sbuf,"\nStack ram used %d",ramend - stack_ptr);      
   Serial.print(sbuf); myGLCD.print(sbuf, 0, ypos+30);
  
   sprintf(sbuf,"\nFree mem: %d",stack_ptr - heapend + mi.fordblks);
   Serial.println(sbuf); myGLCD.print(sbuf, 0, ypos+40);
  
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.04.2015, 18:25
Beitrag #8
RE: Due: freier Speicher für Variablen während der Laufzeit?
seeehr hilfreich:

Code:
memtest: setup
Dynamic ram used: 0
Program static ram used 22604
Stack ram used 96
Free mem: 75604

memtest: TrainBPNet
Dynamic ram used: 0
Program static ram used 22604
Stack ram used 18480
Free mem: 57220

Danke nochmal, Ricardo ! Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Speicher sparen bei serial.print?? DL1AKP 3 196 02.09.2016 13:32
Letzter Beitrag: hotsystems
  Variablen over/underflow "deaktivieren" Scheams 6 225 23.06.2016 16:36
Letzter Beitrag: Scheams
  Laufzeit Atwist 16 1.115 22.01.2016 21:49
Letzter Beitrag: hotsystems
Exclamation String Zerlegen in drei Variablen Wampo 4 853 28.12.2015 01:07
Letzter Beitrag: Wampo
  Schneller Speicher für Due Laura 3 444 27.11.2015 13:21
Letzter Beitrag: Thorsten Pferdekämper
  Plausibiltätsprüfung Variablen ??? MaHaI976 10 831 16.10.2015 17:39
Letzter Beitrag: MaHaI976
  Array während Laufzeit neu definieren BennIY 2 647 26.08.2015 19:22
Letzter Beitrag: BennIY
Information Rechnen mit variablen Jim 3 1.827 22.05.2015 16:44
Letzter Beitrag: Jim
  Variablen Fehler bei TFT Display Xwill 1 809 08.05.2015 13:10
Letzter Beitrag: Thorsten Pferdekämper
  Variablen per WIFI zwischen 3 Arduinos versenden Daewid 4 795 23.04.2015 01:22
Letzter Beitrag: Daewid

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste