www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR-ASM: .def Cassensitive?


Autor: QQQ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich per .def einen Aliasnamen für ein Register festlege, zb. leds, 
spielt es dann eine Reolle, ob ich im Code LEDS schreibe oder ist das 
egal?

MfG

Autor: Gad Zinkler (gad)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist egal. Groß oder Kleinschreibung spielt da keine Rolle.
Auch bei den ASM befejlen kannst es Dir aussuchen, ob Du sie groß oder 
klein schreibst.
Zumindest ist das beim AVR-Studio so. Falls du ein anderen Compiler 
benutzt, probiere es einfach aus. Wenn es nicht egal ist, dann wird 
schon eine Fehlermeldung beim compilieren bekommen...

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Zumindest ist das beim AVR-Studio so.
ebenfalls bei avra für linux

Autor: Mikki Merten (mmerten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der aktuellen Version von AVR Studio 4.18 SP2 kann man mit -c aber 
auch Unterscheidung beim Assembler erzwingen.

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr-as (der zur gcc-Toolchain gehörige Assembler) ist case-sensitiv. 
Der unterscheidet also zwischen led und LED.

Autor: QQQ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da habe ich mal Glück gehabt, ich dachte schon, ich muss mein 251kB 
(kompiliert) großes Programm noch mal schreiben.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
QQQ schrieb:
> Da habe ich mal Glück gehabt, ich dachte schon, ich muss mein 251kB
> (kompiliert) großes Programm noch mal schreiben.


Nimm dir trotzdem einen Editor und bereinige das mittels 'Suchen & 
Ersetzen'. Auf lange Sicht ist das nämlich immer ein Stein der 
Verwirrung.

Und wer darauf baut, dass 'led' und 'LED' 2 unterschiedliche Labels 
sind, sollte
* am Obfuscated Assembler Code Contest teilnehmen
* mit dem nassen Fetzen erschlagen werden

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
QQQ schrieb:
> Da habe ich mal Glück gehabt, ich dachte schon, ich muss mein 251kB
> (kompiliert) großes Programm noch mal schreiben.

Wer kommt denn nur auf so verrückte Ideen, 251kB in Assembler zu 
schreiben?

Meine Schmerzgrenze liegt bei 2kB, darüber ist C deutlich besser.

Irgendwann verliert man in Assembler den Überblick und pusht/popt sich 
zu Tode oder hat nen riesen Wust an Spaghetticode.


251kB Assembler-Monster in C umgeschrieben, würden höchstens halb so 
groß sein und doppelt so schnell laufen.
Von der besseren Fehlersuche, Wartbarkeit und Erweiterbarkeit ganz 
abgesehen.


Peter

Autor: QQQ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> 251kB Assembler-Monster in C umgeschrieben, würden höchstens halb so
> groß sein und doppelt so schnell laufen.
> Von der besseren Fehlersuche, Wartbarkeit und Erweiterbarkeit ganz
> abgesehen.

Glaube ich nicht, ausserdem würde es in C kaum funktionieren. Es handelt 
sich um ein automatisches Steuersystem für meine Jacht, mit GPS, Radar, 
Sonar, Mp3-Player und Fersteuerung fürs Funkgerät mit 
Packetradiodecoder. Dazu noch Grafikausgabe mit 800*600 auf einem VGA 
Monitor mit 1024 Farben und Maussterung. Das alles läuft auf einem 
Atmega256. Daher die Größe.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
QQQ schrieb:
> Peter Dannegger schrieb:
>> 251kB Assembler-Monster in C umgeschrieben, würden höchstens halb so
>> groß sein und doppelt so schnell laufen.
>> Von der besseren Fehlersuche, Wartbarkeit und Erweiterbarkeit ganz
>> abgesehen.
>
> Glaube ich nicht,

glaub ich schon.

> ausserdem würde es in C kaum funktionieren.

Wahrscheinlich besser, als das was du da hast.

> Es handelt
> sich um ein automatisches Steuersystem für meine Jacht, mit GPS, Radar,
> Sonar, Mp3-Player und Fersteuerung fürs Funkgerät mit
> Packetradiodecoder.

Das schreit geradezu danach in einer Hochsprache gemacht zu werden.

> Dazu noch Grafikausgabe mit 800*600 auf einem VGA
> Monitor mit 1024 Farben und Maussterung. Das alles läuft auf einem
> Atmega256. Daher die Größe.

Aha. Dein Programm ist also 256KB gross, weil das Flash deines Mega 256K 
gross ist. Alles klar

Autor: QQQ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
236kB nach Optimierungen
Und nun bitte schließen, das eigentliche Problem ist gelöst, daher 
möchte ich nicht, dass hier ein Krieg über ASM und C ausbricht.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das will niemand.

Eines muss ich noch los werden:
Wer 250 K Assembler programmiert und vor allen Dingen debuggt, hat 
meinen Respekt verdient. Also: Respekt

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@   Karl heinz Buchegger (kbuchegg) (Moderator)

>Eines muss ich noch los werden:
>Wer 250 K Assembler programmiert und vor allen Dingen debuggt, hat
>meinen Respekt verdient. Also: Respekt

Du lässt dich wohl auch von großen Zahlen beeindrucken, was?
250K sagt nicht viel.

Ausserdem ist scheinbar dein Ironiedetektor kaputt.

>Glaube ich nicht, ausserdem würde es in C kaum funktionieren. Es handelt
>sich um ein automatisches Steuersystem für meine Jacht, mit GPS, Radar,
>Sonar, Mp3-Player und Fersteuerung fürs Funkgerät mit
>Packetradiodecoder. Dazu noch Grafikausgabe mit 800*600 auf einem VGA
>Monitor mit 1024 Farben und Maussterung. Das alles läuft auf einem
>Atmega256. Daher die Größe.

Hier will uns mal wieder jemand ordentlich veräppeln. Mal abgesehen 
davon, dass so ein Wust an Funktion auch locker in C zu machen ist, 
glaub ich kaum, dass jemand das programmiert und DANCH fragt, ob der 
Assembler case sensitive ist . .  .
Von der Sinnhaftigkeit dieses Wundergeräts mal ganz zu schweigen. Ich 
ordne das mal unter Seemansgarn ein ;-)

Ahoi
Falk

Autor: QQQ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falk Brunner schrieb:
> Von der Sinnhaftigkeit dieses Wundergeräts mal ganz zu schweigen.

Ein einfaches All-in-one Display, welches (hoffentlich) wesentlich 
weniger störanfällig ist, als würde man das alles auf einem PC machen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
QQQ schrieb:
> Falk Brunner schrieb:
>> Von der Sinnhaftigkeit dieses Wundergeräts mal ganz zu schweigen.
>
> Ein einfaches All-in-one Display, welches (hoffentlich) wesentlich
> weniger störanfällig ist, als würde man das alles auf einem PC machen.

Das stellt wohl niemand in Frage.
Alleine das "(hoffentlich)" macht mich stutzig.
Aber das ist deine Sache, dein Leben hängt davon ab. Genau aus zb diesem 
Grund sieht PeDa das genauso wie ich. Bei derartigen Codegrößen ist es 
schon extrem schwer in Assembler noch den Überblick über 
Registerbenutzung, was liegt wo am Stack etc. zu behalten. Wir 
überlassen solche Dinge dann lieber einem Compiler. Der macht das 
zuverlässiger als wir das je könnten.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
QQQ schrieb:
> Glaube ich nicht, ausserdem würde es in C kaum funktionieren. Es handelt
> sich um ein automatisches Steuersystem für meine Jacht, mit GPS, Radar,
> Sonar, Mp3-Player und Fersteuerung fürs Funkgerät mit
> Packetradiodecoder. Dazu noch Grafikausgabe mit 800*600 auf einem VGA
> Monitor mit 1024 Farben und Maussterung. Das alles läuft auf einem
> Atmega256. Daher die Größe.

Warum diese paar Aufgaben einen so großen Code benötigen sollen, kann 
ich nicht nachvollziehen.

Und solange der AVR nicht die MP3-Dekodierung macht, sieht das auch 
nicht sonderlich CPU-lastig aus.
Daten von einer SD-Karte zum MP3-Chip zu schaufeln, macht man üblicher 
Weise in C, weil die FAT-Libs alle schon in C geschrieben sind. Wenn ich 
mich recht erinnere, gibts MP3-Player Beispiele mit ATmega8.

Eventuell könnte es Sinn machen, das Timing für die Grafiksteuerung in 
Assembler zu schreiben, wenn der AVR es selber machen muß und kein 
Grafikchip benutzt wird.
Aber das sind dann nur wenige Assemblerzeilen im Interrupthandler.


Es sei denn, von den 236kB sind >200kB nur Bitmaps, dann ist die Größe 
nachvollziehbar.


Peter

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Peter Dannegger (peda)

>Es sei denn, von den 236kB sind >200kB nur Bitmaps, dann ist die Größe
>nachvollziehbar.

Du bist aber auch ein Schelm ;-)

MfG
Falk

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.