3700 Byte für ein Blinklicht

OP #885006
Lesenswert?

Hallo,

warum produziert dieser kurze Code 3700 Byte ?
Muss ich noch irgendwas im AVR-Studio einstellen ?
Text und Bootloader brauche ich normalerweise doch nicht.

Gruß

Günter


Device: attiny13

Program:    3780 bytes (369.1% Full)
(.text + .data + .bootloader)

Data:          8 bytes (12.5% Full)
(.data + .bss + .noinit)

Build succeeded with 0 Warnings...
Moderator Persönliche Seite #885027
Lesenswert?

Guenter B. wrote:

> Text und Bootloader brauche ich normalerweise doch nicht.

Wo willst du den Programmcode unterbringen, wenn du .text nicht
brauchst?

Ansonsten sagt mir meine Kristallkugel, dass du _delay_ms() benutzt
und vergessen hast, die Optimierung einzuschalten.  Die entsprechende
Compilerwarnung hast du dann auch gleich ignoriert.
(Firma: Druckerei Beste) #885160
Lesenswert?

Damals, als ich angefangen habe, C zu programmieren... Okay, das war 
Atari ST oder PC oder irgendeine Workstation oder so..., da brachte es 
das niedliche Hello-World!-Progrämmchen auch auf ein Binary von ca. 8KB. 
Damals gab's noch keine dynamischen Libraries für den Compiler.

Na gut, nach dem "strip a.out" ist es immerhin auf ca. 2 KB geschrumpft.

virtuPIC
/ggadgets for tools & toys
#887545
Lesenswert?

Hallo zusammen,

habe im Quellcode folgende Zeile(n) gefunden:

_delay_ms(500);

Frage: Funktioniert das? Ich meinte diese Funktion ist auf 262.14 ms / 
F_CPU in MHz begrenzt (-> delay.h) oder hab ich da was nicht richtig 
verstanden?

Bsp: bei 16MHz wären es noch 16.38ms

Gruss dahohl
#887554
Lesenswert?

Diese Grenze gab es in alten Versionen der avr-libc. Mittlerweise 
arbeiten diese Funktionen adaptiv, d.h. je nach Delay wird das 
unterschiedlich realisiert, mit unterschiedlicher Auflösung bis 6,5s.

Die Formulierung in der Doku ist allerdings nicht wirklich gelungen, 
denn da steht erst drin, dass nicht mehr als 262/MHz möglich ist, und 
dahinter dann dass es sehr wohl möglich ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren