www.mikrocontroller.net

Forum: Compiler & IDEs Startup Code ohne Interruptvektoren


Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich arbeite mit dem ATtiny13, und der ist randvoll. Ich möchte ein paar
Bytes sparen, indem ich mir die verschiedenen Interruptvektoren
herausnehme.

Hier im Forum habe ich gefunden, dass ich eine crttn13.o ändern müsste.
Nur habe ich keinen Quelltext dazu in meinem WINAVR Verzeichnis
gefunden. Und die .o Datei ist mit einem Texteditor nicht lesbar.

Ebenso ist mir noch nicht klar, an welcher Stelle die Datei vom Linker
eingebunden wird. Das Studium des Make- und der Linkfiles haben mich
noch nicht schlau gemacht.

Meine Fragen:
Wo finde ich den Quelltext zur crttn13.o?
Wo muss ich etwas ändern, wenn ich die Datei gar nicht einbinden
möchte.

Vielen Dank schon jetzt
Harry

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie viele bytes brauchst du denn noch damit sich das lohnt...??

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Spoerle ist für Ende 2005 der ATTiny85 angekündigt:

http://www.spoerle.de/cda/semiconproductnews/0,503...


Peter

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich beantworte Dir Deine Frage, wenn Du mir meine beantwortest... ;-)

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Datei wird aus gcrt1.S compiliert.  Allerdings brauchst du dafür
schon eine komplette build-Umgebung für die gesamte avr-libc, damit du
das gebacken bekommst.  Ist keine schwarze Magie, aber ist auch nicht
mit dreimal Mausklick getan.

Mit einem alternativen Linkerscript könntest du die section .vectors
ganz ausblenden, allerdings musst du dich dann irgendwie um eine
Alternative für den reset-Vektor kümmern -- den brauchst du auf alle
Fälle.

Du würdest 18 Byte sparen können, bist du dir ganz sicher, dass du
wirklich alle anderen Optimierungsmöglichkeiten ausgereizt hast?  Eine
derartige non-standard-Lösung würde ich persönlich nicht bevorzugen,
da sie aus Sicht der Softwarewartung ein Albtraum ist.

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Informationen. Als ich gestern im Forum ein wenig
gestöbert hatte, klang es so, als ob die Sache nicht besonders
schwierig ist. So wie sich die Sache jetzt darstellt, stehen Aufwand
und Ergebnis in keinem Verhältnis zueinander.

Meine Software läuft schon gut, ich hätte nur noch gern ein paar Bytes,
um sie etwas robuster zu gestalten. Zum Beispiel das Erkennen der
Resetquelle, Schalten die Diagnose LED usw.

Na ja, und was die Optimierung angeht: alle globalen Variablen sind in
Registern gehalten, ich habe alle Optimierungsstufen des Compilers
ausprobiert, der Code ist einfach geschrieben, damit der Compiler ihn
gut versteht und optimieren kann, ich probiere verschiedene Lösungen
usw.

Also lebe ich erstmal damit, wie es ist und warte geduldig auf die
ATtiny 25/45/85.

Viele Grüsse
Harry

Autor: Malte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also wenn ich
http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/AVR-Op...
richtig verstehe würde -mno-interrupts dafür sorgen dass keine
Interrupt Tabelle generiert wird.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> würde -mno-interrupts dafür sorgen dass keine
> Interrupt Tabelle generiert wird.

Soweit ich das überblicke werden lediglich die CLI/SEI-Klammern um
stack pointer updates weggelassen. Und ist beim Tiny13 mit -mtiny-stack
völlig funktionslos.

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.