- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 6 von 6

Thema: STM32 Array[500] zu groß?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.645
    Hallo NRicola,

    Du kannst noch mehr ausprobieren:

    Code:
    int main(void){
        [...]
        uint16_t testvar[500];
        for(uint16_t i=0;i<399;i++){
            testvar[0] =0;
        }
        [...]
        while(1){
            LED_Blinker();
        }
    Blinkt das Programm dann hier?


    Ich habe gerade die Variable als globale eingeführt
    War auch so eine Idee, die ich hatte. Das aus der main-Funktion raus zu verlegen, in den globalen Scope. Allerdings ohne schlüssige Erklärung, warum das besser funktionieren sollte.




    MfG

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.04.2005
    Ort
    Freiberg
    Alter
    40
    Beiträge
    311
    Hallo Moppi,

    ja, da blinkt es auch. Scheint erst zu stocken, wenn ein laufender Index rein kommt. Ich habe auch das Abbruchkriterium der for-Schleife auf i<1 heruntergesetzt: auch dann hängt er.

    Grüß,
    NRicola
    Gurken schmecken mir nicht, wenn sie Pelz haben!

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    872
    In einer Funktion definierte Variablen landen auf dem Stack, modulglobale Variablen hingegen auf dem Heap.

    Du könntest mal schauen, ob Du eine den Stack betreffende Deklaration in Deinen Projekteinstellungen findest.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.04.2005
    Ort
    Freiberg
    Alter
    40
    Beiträge
    311
    Hallo Holomino,

    tendenziell gingen meine Überlegungen in eine ähnliche Richtung - auch wenn ich sie nicht hätte benennen können.
    Allerdings wüsste ich nicht, wo ich Einstellmöglichkeiten dazu hätte. Hast du eine Idee, wo ich suchen sollte?

    Grüß,
    NRicola
    Gurken schmecken mir nicht, wenn sie Pelz haben!

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    872
    Praktisch sagen kann ich's Dir nicht, ich hab dem Keil nicht.
    Du könntest aber mal nach "Stack size" googeln. Das sitzt entweder in irgendeinem eingebundenen Header (da üblicherweise abhängig von der RAM-Größe des verwendeten Controllers) oder der eingebundenen Bootroutine.

Ähnliche Themen

  1. WARNING: array subscript is above array bounds [-Warray-bounds]
    Von Liquidator im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 04.05.2016, 14:39
  2. Array zu groß für Datenerfassung
    Von PCMan im Forum C - Programmierung (GCC u.a.)
    Antworten: 12
    Letzter Beitrag: 22.11.2007, 14:45
  3. Ablockkondensatoren - wie groß?
    Von scales im Forum Elektronik
    Antworten: 11
    Letzter Beitrag: 24.06.2006, 18:35
  4. Nur Nummern in Array / nur Variablentyp byte als Array?
    Von Crashmichl im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 27.04.2006, 23:15
  5. [ERLEDIGT] Assemblerprogramm zu groß
    Von andyoo1 im Forum Controller- und Roboterboards von Conrad.de
    Antworten: 16
    Letzter Beitrag: 16.02.2004, 20:41

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress