- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 24

Thema: ATtiny85 Speicher knapp, was tun?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    ist der flash voll, meckert dein flash tool
    ist der ram schon reichlich voll wirds dramatisch

    variablen die du in methoden verwendest werden vom linker meist hochgradig optimiert (z.b. doppelnutzung bei code pfaden die nie gleichzeitig ausgeführt werden) und an den anfang des RAM gelegt
    globale variablen werden dahinter angelegt
    methodenaufrufe und deren parameter und die register die zum rechnen verwendet werden werden auf den sog. stack gelegt
    der stack wird vom ende des ram nach vorne geschrieben (rückwärts) und wenn er groß genug ist überschreibt er ohne vorwarnung deine globalen variablen (sog. stackobverflow) aber der tiny is dumm und merkt das nicht!

    wenn also deine globalen variablen rum spinnen oder der controller nach dem beenden einer methode plötzlich ins nirvana springt und mist ausführt wird dir wohl der ram ausgegenagen sein

    konstanten die du definierst kannst du zwar mit PROGMEM (PROGMEM uint8_t someTextConstant="Hello" in den flasch schreiben um RAM zu sparen aber der zugriff auf sog. progmem variablen ist tückisch, du kannst sie als einzelne variablen kopieren aber wenn du ein array kopieren willst must du memcpy_P benutzen statt memcpy ... es gibt diverse methoden die mit _P enden extra für ROM konstanten

    kontanten in den RAM zu laden bringt rein garnichts für mehr ROM, der inhalt der variablen steht trotzdem im flash, denn die variablen müssen erstmal erzeugt werden, das bringt dir ausschließlich geschwindigkeitsvorteile weil ROM konstanten mehrere takte brauchen um sie für die operation zu laden

    versuch mal deine optimierungsstufe zu ändern, mit dem aktuellen AVR GCC der mit atmel studio 7 kommt habe ich BESTE erfahreungen mit "-oS" gemacht (es gibt noch -o1 für standard optimierung, -o2 für kompakteren code und kleinen RAM, -o3 für maximal schnellen code und -oS für minimale flash größe)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #2
    Benutzer Stammmitglied Avatar von spunky9003
    Registriert seit
    14.09.2014
    Beiträge
    36
    kann ich mit atmel studio 7 auch die oben genannten USB-Board benutzen oder brauch ich einen bestimmten Programmer?

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    du kannst die hex files compilieren udn dann mit einem tool deiner wahl flashen (arduino bietet sowas auch soweit ich mich entsinne)

    aber versuch doch die optionen bei deinem compiler erstmal, müsste die gleiche wirkung haben, effekt kann cih nicht vorhersagen
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

Ähnliche Themen

  1. Weltrekord: Kleiner Quadrocopter steigt in knapp 4 Sekunden um 100 Meter
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 25.02.2016, 07:10
  2. BMW: Neuer i3 soll knapp 240 km elektrisch fahren
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 19.01.2016, 10:50
  3. Antworten: 8
    Letzter Beitrag: 21.10.2014, 09:18
  4. Suche Attiny85 im DIP-Gehäuse
    Von RAM im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 2
    Letzter Beitrag: 16.10.2011, 14:43
  5. Suche einen OPV der bis knapp unter die Versorgungsspannung ausgesteuern kann
    Von alex91 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 4
    Letzter Beitrag: 20.05.2011, 19:04

Berechtigungen

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

Labornetzteil AliExpress