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
Codegröße im Vergleich
26.01.2015, 10:26
Beitrag #1
Codegröße im Vergleich
Hy Leute,

hab vor einiger Zeit mal n Sketch gefunden für ein Lauflicht, was Wahnsinnig klein ist. 236 Bytes
Code:
#include <avr/io.h>
#include <avr/delay.h>

int main(void)
{
  unsigned int i;
  
  DDRB = 0xFF;
  PORTB = 0x00;
  
  while (1)
  {
    for (i=0; i<9; i++)
    {
      PORTB = (1<<i);
      _delay_ms(50);
      PORTB = 0x00;
    }
  }
}

Im Vergleich ein Basic Lauflicht was gut 5x größer vom Sketch her ist aber definitv weniger geschriebenes enthält. 1146 Bytes
Code:
int i;
void setup() {              
  for(i=0; i<14; i++){
    pinMode( i, OUTPUT);
  }
}
void loop() {
   for(i=0; i<13; i++){
    digitalWrite(i, HIGH); delay(100); digitalWrite(i, LOW);
  }
}

Wo liegt der gravierende Unterschied bei den beiden Sketchen? Kann mir jemand den Oberen Sketch zerlegen und ihn mir genauer erklären?

Greez Daniel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.01.2015, 11:43
Beitrag #2
RE: Codegröße im Vergleich
Hi,
ich würde mal sagen, der obere Sketch verwendet die ganze Arduino-Umgebung gar nicht. Er geht direkt auf die Register des Controllers. Außerdem definiert er selbst die main()-Funktion, was wahrscheinlich sogar den arduinischen setup/loop-Mechanismus "entfernt".
D.h. die Funktionen pinMode, digitalWrite, setup und loop können vom Compiler weg gelassen werden.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2015, 15:45 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2015 15:46 von tito-t.)
Beitrag #3
RE: Codegröße im Vergleich
iich dachte immer, ein C compiler übernimmt nur diejenigen Teile aus den libs, die für den Code wirklich gebraucht werden, und optimiert den unnützen rest automatisch raus... Huh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2015, 15:50
Beitrag #4
RE: Codegröße im Vergleich
Genau, deshalb ja auch der Unterschied.

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2015, 16:01 (Dieser Beitrag wurde zuletzt bearbeitet: 30.01.2015 19:25 von tito-t.)
Beitrag #5
RE: Codegröße im Vergleich
nee, eben nicht, denn die Codes machen ja unterm Strich genau das gleiche, also sollte eigentlich ein guter Präprozessor und ein guter Compiler mit guter Code-Optimierung in beiden Fällen aus Source + Libs identisch effektiven, kompakten exe-Code erzeugen ...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.01.2015, 20:32
Beitrag #6
RE: Codegröße im Vergleich
(30.01.2015 16:01)tito-t schrieb:  nee, eben nicht, denn die Codes machen ja unterm Strich genau das gleiche, also sollte eigentlich ein guter Präprozessor und ein guter Compiler mit guter Code-Optimierung in beiden Fällen aus Source + Libs identisch effektiven, kompakten exe-Code erzeugen ...
Nein, sooo intelligent ist kein Compiler, dass er in dem Fall weiß, dass es das gleiche wäre. Zum Beispiel muss er für die Verwendung von setup() und loop() sozusagen das main() drumherum basteln. Außerdem "darf" er gar nicht einfach einen Funktionsaufruf (z.B. digitalWrite) durch ein "Inhalt" der Funktion ersetzen.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem mit Array-Muster-Vergleich HaWe 5 891 09.05.2015 13:18
Letzter Beitrag: HaWe
  Unterprogramme, if vergleich >9 ? Marc2014 2 934 11.08.2014 16:45
Letzter Beitrag: Marc2014

Gehe zu:


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