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


von Moritz E. (devmo)


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...

von Ale (Gast)


Lesenswert?

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

von Ale (Gast)


Lesenswert?

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

von Atmelhasser (Gast)


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.)

von Timmo H. (masterfx)


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

von Ale (Gast)


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 !

von noch ein Bastler (Gast)


Lesenswert?

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

von noch ein Bastler (Gast)


Lesenswert?

(@ Timmo)

von Timmo H. (masterfx)


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)

von juppi (Gast)


Lesenswert?

hallo

Das ist kein Deutschforum!!

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

MfG

von Sven P. (Gast)


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.

von tee (Gast)


Lesenswert?

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

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

von Ale (Gast)


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 ?).

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Mikki M. (mmerten)


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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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?

von Moritz E. (devmo)


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...

von Sven P. (Gast)


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:
1
$ programm -param1 -param2 -paramN > ausgabe.txt 2>&1

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Sven Pauli wrote:

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

Unter Win32 cmd.exe auch. ;-)

von Moritz E. (devmo)


Lesenswert?

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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


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.

von Moritz E. (devmo)


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?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.