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


von H. G. (ledi)


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?

von Grübler (Gast)


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?

von dsgasdfg (Gast)


Lesenswert?

Hallo,

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

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

von H. G. (ledi)


Lesenswert?

Nein, nur char und unsigned int.
Keine Divisionen od. höhere Rechenoperationen.

von Michael G. (let)


Lesenswert?

Schon im Mapfile nachgesehen?

von Matze (Gast)


Lesenswert?

irgendwo "delay" eingebaut?

von hacker-tobi (Gast)


Lesenswert?

Optimierunslevel geändert?

von Peter D. (peda)


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

von H. G. (ledi)


Lesenswert?

ich habs schon!

Das Problem war:
Ich habe für delay eine Variable (us) eingesetzt.
1
CS_low(50);
2
3
void CS_low(unsigned int us)
4
{
5
  PORTB &=   ~(1<<PB1);  // CS = low
6
  _delay_us(us);
7
}

Abhilfe:
1
CS_low();
2
3
void CS_low(void)
4
{
5
  PORTB &=   ~(1<<PB1);  // CS = low
6
  _delay_us(50);
7
}

von Grübler (Gast)


Lesenswert?

>Ich habe für delay eine Variable (us) eingesetzt.

Wie langweilig, immer das Gleiche ;-)

von Ralf (Gast)


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

von Falk B. (falk)


Lesenswert?


von Ralf (Gast)


Lesenswert?

Okay, danke. Der Aufruf ohne konstanten Wert macht wohl das Problem.

Ralf

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.