mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Codegröße in AVR-Studio ist plötzlich von 1kB auf 4kB angewachsen.


Autor: H. G. (ledi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein C-Programm ist (Durch irgend eine Änderung im Programmcode) 
plötzlich von 1 kB auf 4kB angewachsen.
Da ich nicht mehr genau weiß, was ich konkret geändert bzw. neu 
programmiert habe, kann ich das nicht weiter eingrenzen.

Gibt es eine Möglichkeit fest zu stellen, wo der "Speicherfresser" ist?

Autor: Grübler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heimo schreibt:
>Da ich nicht mehr genau weiß, was ich konkret geändert bzw. neu
>programmiert habe, kann ich das nicht weiter eingrenzen.

Ja, wenn man alt wird ist das so.


>Gibt es eine Möglichkeit fest zu stellen, wo der "Speicherfresser" ist?

Hast du float als Datentyp eingesetzt und damit Rechen-
operationen durchgeführt?

Autor: dsgasdfg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

poste mal deinen Code....
Vll kann man da was erkennen.

Ich vermute du verwendest eine zusätzliche Library.
Evtl. printf o.ä.?

Autor: H. G. (ledi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, nur char und unsigned int.
Keine Divisionen od. höhere Rechenoperationen.

Autor: Michael G. (let)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon im Mapfile nachgesehen?

Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
irgendwo "delay" eingebaut?

Autor: hacker-tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Optimierunslevel geändert?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Heimo G. schrieb:
> Da ich nicht mehr genau weiß, was ich konkret geändert bzw. neu
> programmiert habe, kann ich das nicht weiter eingrenzen.

Das solltest Du ernst nehmen und Deine Versionskontrolle verbessern bzw. 
überhaupt erstmal eine einführen.


Wir können jetzt ne Raterunde veranstalten oder Du zeigst einfach mal 
Deine Source(n).

Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang!


Peter

Autor: H. G. (ledi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habs schon!

Das Problem war:
Ich habe für delay eine Variable (us) eingesetzt.
CS_low(50);

void CS_low(unsigned int us)
{
  PORTB &=   ~(1<<PB1);  // CS = low
  _delay_us(us);
}

Abhilfe:
CS_low();

void CS_low(void)
{
  PORTB &=   ~(1<<PB1);  // CS = low
  _delay_us(50);
}

Autor: Grübler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habe für delay eine Variable (us) eingesetzt.

Wie langweilig, immer das Gleiche ;-)

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verzeihung, aber das erstaunt mich. Da würde mich mal interessieren, wie 
das zustandekommt. M.E. sollte bei beiden Varianten eine ähnliche 
Codegröße rauskommen.

Ralf

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ralf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay, danke. Der Aufruf ohne konstanten Wert macht wohl das Problem.

Ralf

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.