mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik avr assembler 2 hacks #2


Autor: Moritz E. (devmo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Forum,
ich bin mal wieder mit dem Assembler im AVRStudio im krieg, um ein 
bischen Debug-Komfort rauszuhauen würde ich gerne die Debug-Meldung, die 
laut Help in STDOUT ausgegeben wird auch in eine Datei ausgeben lassen. 
für List und Map files gibts dazu Commandline Paramter, aber für 
Buildmessage finde ich nix, ebenso für eine möglichkeit STDOUT 
umzulenken. Gibts da einen Trick?

Oder hat vielleicht jemand ein Script geschrieben, was den 
Assembler-Aufruf wrapt, es ist schon frustrierend wie unfähig der 
Assembler/Preprocessor ist...

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du nicht mit avr-gcc kompilieren ? Es wird eine menge info geben 
wenn dein Programm nicht zu "AVRStudio ist".

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch etwas, wenn ich nicht sicher bin was den Assemnber gemacht hat, cih 
den generierte Source Datai mit meine Programm vergleiche.

Autor: Atmelhasser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>es ist schon frustrierend wie unfähig der
>Assembler/Preprocessor ist...

Schön, dass das mal einer feststellt und auch zugibt. Atmel ist selbst 
zu dämlich einfache Standards zu kopieren.

(Daraus kann man schon schliessen, dass die Menge der Programmierer 
keine grossen Ansprüche stellt.)

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ale
Dein Deutsch ist echt furchtbar. Die Artikel sind fast alle falsch und 
"Datai" schreibt man mit ei. Und das alles in nur einem Satz

Nichts für Ungut, aber sowas fällt halt extrem auf

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Timmo:

Das hat mich gar nicht geholfen (arbeitest du für M$?). Wenn du möchtest 
mir helfen du kannst etwas so sagen:

Nomen femminin, Kasus : Nominativ, artikel Die. usw. (für alle meine 
Fehler) Ich bin (fast) sicher, du kannst nicht :-).

Wenn nicht, bitte mach fertig mit den Unfug !

Autor: noch ein Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Idi.. - welche Sprachen beherrschst Du denn in Wort und Schrift perfekt? 
Deutsch sicher nicht. Und andere?

Autor: noch ein Bastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(@ Timmo)

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Deutsch sicher nicht.
Was bewegt dich zu dieser Annahme?

Ich habe nie gesagt, dass ich alles in Wort und Schrift perfekt 
beherrsche, aber solch grundlegenden Dinge sollte man dennoch können. 
Der, die, das wird ja schon im Refrain der Sesamstraße gesungen. Selbst 
wenn Deutsch nicht die Muttersprache ist, so sind die Artikel doch mit 
das Erste was man lernt (zumindest war es bei mir im Französisch- und 
Spanischunterricht so. Im Englischen ist es da natürlich einfacher)

Autor: juppi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

Das ist kein Deutschforum!!

Fachlich richtige Antworten sind immer wilkommen,
auch in fehlerhaften Deutsch.

MfG

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Umleiten in Datei und zugleich Standardausgabe kann man z.B. mit "tee". 
Siehe "man tee". Ansonsten kann man alles mit den Umleitungen ">", "<" 
und "|" regeln. Zumindest gilt das für Linux -- in Windows kenne ich 
mich net aus.

Autor: tee (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für Mausschubser gibt es kein tee ;-)
Aber die Umleitung mit > in eine Datei sollte funktionieren

z.B.
programm.exe --parameter > ausgaben.txt

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
/Ich habe nie gesagt, dass ich alles in Wort und Schrift perfekt
beherrsche, aber solch grundlegenden Dinge sollte man dennoch können.
Der, die, das wird ja schon im Refrain der Sesamstraße gesungen. Selbst
wenn Deutsch nicht die Muttersprache ist, so sind die Artikel doch mit
das Erste was man lernt (zumindest war es bei mir im Französisch- und
Spanischunterricht so. Im Englischen ist es da natürlich einfacher)/

Wenn so wäre...

Deutsch ist nicht meine Muttersprache, es ist Spanisch. Und wenn du 
etwas gelernt hast (als du sagst) du kannst sagen warum mache ich die 
Fehler ich mache.

Ich unterrichte an der Uni (hier in Deutschland), und manchmals ich 
frage mich ob meine Deutsch nicht besser als die Deutch meine Studenten 
ist (Lesen und verstehen jemand ?).

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Atmelhasser wrote:
>>es ist schon frustrierend wie unfähig der
>>Assembler/Preprocessor ist...
>
> Schön, dass das mal einer feststellt und auch zugibt.

Ich kann dir versichern, dass Eric Weddington schon seit langem bohrt,
dass sie diesen Einfachst-Assembler endlich ganz fallen lassen und
stattdessen den GNU-Assembler benutzen.  Es müsste halt nur mal
jemand einen Präprozessor bauen, damit man den historischen Code für
den Atmel-Assembler automatisch portiert bekommt.

Autor: Mikki Merten (mmerten)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also den AVR2 Assembler durch den GNU Assembler zu ersetzen dürfte wohl 
nicht gerade einfach noch unbedingt sinnvoll sein für reine 
Assembler-Projekte. Zumal eine automatische Code-Portierung sehr 
schwierig sein dürfte, und doch viel Handarbeit erfordern würde. Sollte 
Atmel diesen Schritt tun, wäre das auch ein Grund den weiteren Einsatz 
die Prozessor-Familie zu überdenken.
Zumal der GNU Assembler doch etwas gewöhnungsbedürftig ist. Wohlgemerkt 
ist geht hier um reine ASM Programme mit vielen interrupts im unteren µs 
bereich und extensiver Registernutzung.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mikki Merten wrote:

> Also den AVR2 Assembler durch den GNU Assembler zu ersetzen dürfte wohl
> nicht gerade einfach noch unbedingt sinnvoll sein für reine
> Assembler-Projekte.

Einfach: OK, es braucht einen Präprozessor.

Sinnvoll?  Doch.  Bislang müssen sie ja zusätzlich immer noch diesen
völlig unterentwickelten Assembler mit pflegen.

> Zumal eine automatische Code-Portierung sehr
> schwierig sein dürfte, und doch viel Handarbeit erfordern würde.

Nein, das geht natürlich nur, wenn es komplett ohne Handarbeit auskommt,
da ist sicher Einigkeit.  Das Ganze kann man ja dann noch automatisch
organisieren und avrasm2.exe (oder avrasm2.bat) nennen (und natürlich
auch noch den Linker mit anwerfen).

> Sollte
> Atmel diesen Schritt tun, wäre das auch ein Grund den weiteren Einsatz
> die Prozessor-Familie zu überdenken.

Wieso das?

> Zumal der GNU Assembler doch etwas gewöhnungsbedürftig ist.

Der Atmel-Assembler erst recht.

> Wohlgemerkt
> ist geht hier um reine ASM Programme mit vielen interrupts im unteren µs
> bereich und extensiver Registernutzung.

Häh?  Assemblercode ist Assemblercode.  Was hat das miteinander zu
tun?

Autor: Moritz E. (devmo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@tee
tatsächlich ich habs gerad mal ausprobiert. nur ist es so, das nur ein 
teil des buildkonsolenoutputs im stdout landet, die 
infos/warnings/errors überspringt er. das ist bedauerlich, weil ich 
gerade scharf auf die warnings-meldungen der zerobyte pads war.

der textteil z.b. die resource usage stats und includes die im stdout 
landen, sind dafür im buildfenster nicht zu sehen.

ich hab bis jetzt nicht ganz verstanden wozu die einzelnen parameter gut 
sind, und was für ein outputformat da eigentlich rauskommt bzw wie man 
da ein debug-object format rausbekommt, von denen ja der 
simulator/debugger im studio zahlreiche unterstützt. bisher konnte ich 
keine symbols für die watch benutzen (obwohl irgendwie inzwischen ein 
.obj erzeugt wird), was wohl nur für aus c compilierte codes gedacht 
ist, aber eine furchtbar ungerechte benachteiligung der asm coder wäre.

oder hat jemand symbol-support für asm schonmal zum laufen bekommen?

bzw. vielleicht benötigt er die extra include/label-info welche wie ich 
herausfand man mit -S erstellen kann, ein parameter der 
dankenswerterweise nicht in der help aufgeführt ist sondern nur bei 
avrasm2 -h, nur wie müsste die datei dann heißen, damit er sie 
erkennt...

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moritz: Das liegt vermutlich daran, dass die normalen Nachrichten in die 
Standardausgabe kommen, deine Fehlermeldungen hingegen aber in der 
Standard-Fehlerausgabe landen. Unter Linux würde man beide zusammen so 
umleiten:
$ programm -param1 -param2 -paramN > ausgabe.txt 2>&1

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven Pauli wrote:

> Unter Linux würde man beide zusammen so
> umleiten:

Unter Win32 cmd.exe auch. ;-)

Autor: Moritz E. (devmo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ah toll :) danke euch für die hilfe, ich werde es mal ausprobieren und 
melde mich nochmal mit ergebnissen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moritz E. wrote:

> ich hab bis jetzt nicht ganz verstanden wozu die einzelnen parameter gut
> sind, und was für ein outputformat da eigentlich rauskommt bzw wie man
> da ein debug-object format rausbekommt, von denen ja der
> simulator/debugger im studio zahlreiche unterstützt.

Das Ding hat irgendwie sein komplett eigenes Debugformat.  Nein, für
C ist das überhaupt nicht gedacht, das ist ein Absolutassembler,
Linker gibt's nicht.

Autor: Moritz E. (devmo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jörg Wunsch wrote:

> Das Ding hat irgendwie sein komplett eigenes Debugformat.  Nein, für
> C ist das überhaupt nicht gedacht, das ist ein Absolutassembler,
> Linker gibt's nicht.

Das war mir schon bewusst, ich meinte eher, dass der simulator irgendwie 
wohl aus den linker/debug object files seine symbole holt, mein 
gedankengang war, dass der avrasm mit der -S option bzw der richtigen 
einstellung für object output ebenfalls die nötige information für asm 
labels bereitstellen könnte, um ram-variablen mit der watchlist sehen zu 
können. bisher muss ich im simulator erst die adressen ablesen, und kann 
die werte nur im memory-window nachverfolgen.

die datei die mit -S erzeugt wird scheint was xmlartiges zu sein:

datei anfang:

<ASSEMBLER_INFO>
 <VERSION>2.1.17</VERSION>
 <DEVICE>ATmega644</DEVICE>
 <WORKING_DIR> ...\Projekt</WORKING_DIR>
 <INCLUDE_PATH>
  <DIR> ...\AVR Tools\AvrAssembler2\Appnotes</DIR>
  <DIR> ...\AVR Tools\AvrAssembler2\Appnotes</DIR>
 </INCLUDE_PATH>
 <SOURCE_FILE> ...\Projekt\main.asm</SOURCE_FILE>
 <INCLUDED_FILES>
  <FILE> ...</FILE>
  ....
 </INCLUDED_FILES>
 <OBJECT_FILES>
  <FILE>main</FILE>
 </OBJECT_FILES>
<HEX_FILES>
  <FILE> ...</FILE>
 </HEX_FILES>
 <LABELS>

  hier dann die liste aller labels

 <LABELxyz><FILE> sourcedatei </FILE><LINE>11</LINE></LABELxyz>
etc

 </LABELS>
</ASSEMBLER_INFO>
datei ende..

nur soll die datei wie die entryfile (main), oder wie das projekt 
heißen, und welche endung will sie haben?

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.