avr assembler 2 hacks #2

OP #890925
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...
Gast #890999
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.)
Gast #891016
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 !
#891047
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)
Gast #891075
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.
Gast #891108
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 ?).
Moderator Persönliche Seite #891133
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.
#891192
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.
Moderator Persönliche Seite #891197
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?
OP #891205
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...
Gast #891215
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
Moderator Persönliche Seite #891233
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.
OP #891279
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

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