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: 67)

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
  Libs mit peristenten Variablen Gerri3d 2 197 04.11.2017 07:20
Letzter Beitrag: Gerri3d
Sad Nano - nicht genug Speicher torsten_156 10 498 30.10.2017 21:40
Letzter Beitrag: MicroBahner
  Frage zur Adressierung von Variablen ardu_arne 14 554 28.10.2017 11:16
Letzter Beitrag: ardu_arne
  Code wird langsamer mit der Laufzeit Wampo 9 491 05.10.2017 11:32
Letzter Beitrag: SkobyMobil
  Kann man auf den internen Speicher zugreifen? Maxi290997 11 806 18.08.2017 19:51
Letzter Beitrag: hotsystems
  verbrauchter Speicher, avr-size GuaAck 2 453 28.05.2017 22:41
Letzter Beitrag: rkuehle
  Speicher sparen bei serial.print?? DL1AKP 3 714 02.09.2016 13:32
Letzter Beitrag: hotsystems
  Variablen over/underflow "deaktivieren" Scheams 6 516 23.06.2016 16:36
Letzter Beitrag: Scheams
  Laufzeit Atwist 16 1.998 22.01.2016 21:49
Letzter Beitrag: hotsystems
Exclamation String Zerlegen in drei Variablen Wampo 4 1.383 28.12.2015 01:07
Letzter Beitrag: Wampo

Gehe zu:


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