Hallo ich bin zur Zeit Assembler für die 8 Bit AVRs am erlernen. Dafür gibt es zum Glück einige brauchbare Tutorials und Erklärungen welche sich gut ergänzen. Da aber meistens ein ATtiny 13 oder ATmega8, ATmega32 oder manch mal auch der ATmega 328 verwendet werden sind die Tutorials und Erklärungen fast durchgehend schon einige Jahre alt was rein von der Assemblervermittlung aber kein Problem ist. Aber die eingesetzten Programme für die einzelnen Schritte sind in diesen Tutorials teilweise recht veraltet und mittlerweile unnötig aufwendig in der Anwendung. Zum Glück gibt es aber auch das Atmel Studio, auch schon wo diese älteren Tutorials erstellt wurden - und Dank des AVRISP mkII und der seit einigen Jahren "normalen" Rechnerleistung funktioniert das Programm auch problemlos. Nach dieser langen Vorrede meine "Frage" Mindestens bis einschließlich Atmel Studio 4 war es notwendig im eigentlichen Assemblerprogramm die include Datei des jeweiligen AVR einzubinden, entsprechendes ist auch in "jeden" Tutorial erwähnt. Aber mindestens seit Atmel Studio 7 ist das nicht mehr notwendig, es darf sogar nicht im Assemblerprogramm eingebunden werden, was ich aber erst durch (für mich anfangs) kryptische Fehlermeldungen und etwas Trail und Error herausfinden musste. In irgendeinen Tutorial bzw. Internetauftritt wurde das irgendwo so "nebenbei" kurz erwähnt. Meine Frage: Wo und wie bindet Atmel Studio 7 jetzt diese include Datei automatisch ein, und kann man das einfach (Häckchen setzen, löschen) abstellen, da natürlich die Assemblerdirektive .list bzw. .nolist nicht mehr vernünftig zu gebrauchen ist und wenn .list "eingeschaltet" ist natürlich immer auch die ganze include datei des jeweiligen Controllers gesichert wird. mfg Assembel_Newboy
:
Verschoben durch Moderator
Ergänzung: Da das Forum so ist wie es ist: Bitte keine Grabenkämpfe bezüglich des Atmel Studios und dessen Version oder warum 8Bit µC heute nicht mehr oder vielleicht doch sinnvoll sind, welche Programmiersprache die einzig Wahre ist und vor allem nicht über die art und weise wie ich lerne. Leider muss man solch freche und bissige Ansagen hier machen, meine Entschuldigung geht in voraus an die netten Forennutzer die auf gestellts Fragen antworten, freundlich (!) auf Fehler oder fehlende Informationen hinweisen bzw. Anschlussfragen stellen. Danke
Assembel_Newboy schrieb: > Wo und wie bindet Atmel Studio 7 jetzt diese include Datei > automatisch ein Im Projekt wird doch der Controller angegeben. Assembel_Newboy schrieb: > Aber mindestens seit Atmel Studio 7 ist das nicht mehr notwendig, es > darf sogar nicht im Assemblerprogramm eingebunden werden, was ich aber > erst durch (für mich anfangs) kryptische Fehlermeldungen und etwas Trail > und Error herausfinden musste. Nicht unbedingt. Im Falle des Falles einfach auskommentieren.
Hallo Danke, aber das war mir schon klar bzw. ich lösche einfach die .include Direktive im Assemblerprogramm. Ich würde aber trotzdem gerne wissen wo und wie jetzt das Studio die *.include einbindet (klar wenn ich beim Projekt erstellen den Controller wähle) aber irgendwas muss ja im Hintergrund gesehen was zumindest in der Version 4 der Studios noch nicht der Fall war, wo kann ich das sehen bzw. wo "versteckt" das Studio diese Direktive den irgendwo muss ja trotzdem die richtige include Datei beim Build ausgewählt sein (ansonsten würden ja nicht die Fehlermeldungen kommen wenn diese doppelt eingebunden wird). Und das "Problem" (ja mit copy und paste und löschen der störenden include in irgendeinen Texteditor geht das irgendwie aber schön ist anders vor allem weil das Studio eigentlich alles bietet) mit der .list bzw. .nolist direktive bleibt ja. Trotzdem Danke Assembel_Newboy
Wenn du ein neues Projekt erstellt klickst du dich doch durch, also welcher µC, welcher Ordner, Projektname... ich würde es aber auch im Programm reinschreiben und ; voransetzten, damit man den Quelltext ggf. auch mit einem älterem AVR-Studio übersetzen kann.
Assembel_Newboy schrieb: > und etwas Trail und Error ------------^^^^^^---------- Trail: Spur, Pfad, Weg, Fährte, Schwanz Welches soll man nehmen um das zu verstehen?
Stolpersteine schrieb: > Trail: Spur, Pfad, Weg, Fährte, Schwanz Stolpersteine schrieb: > Häckchen --> kleine Hacke Genau das unterscheidet halt einen Leser, der die Transferleistung von Trail nach Trial und Häckchen nach Häkchen vollenden kann, von einem Stolperstein. Derjenige, der es nicht schafft, muss halt weiter im Dunkeln tappen und kann leider nichts zum Thema beitragen.
:
Bearbeitet durch Moderator
Schon - aber bei mieser Stimmung wird sowas manchmal zum Stein des Anstoßes.
Thomas O. schrieb: > Wenn du ein neues Projekt erstellt klickst du dich doch durch, also > welcher µC, welcher Ordner, Projektname... Hi, und auf dem richtigen Laufwerkspfad des programmierenden PC. Da gibt/gab es böse Überraschungen sonst. Je nachdem, wo Atmel-Studio installiert wurde: Einmal steht die Definitionsdatei auf C:>Prog\...\AVRAssembler2\Appnotes und einmal auf C:>ProgX86\...\AVRAssembler\Appnotes Beim Assemblieren kommt unten "no errors no warnings" da etwas hochscrollen: Da steht dann der momentan verwendete Pfad: C:\Users\xxx\Documents\aaa.asm(101): Including file 'C:\Program Files (x86)\Atmel\AVR Tools\AvrAssembler2\Appnotes\4434def.inc' ciao gustav
Ob Du nun dauernd ein (mir unbekanntes) Häkchen setzt oder mit einem simplen Semikolon steuerst dürfte vom Aufwand her egal sein. Meinem aktuellen Mega128 Studio7 Projekt ist es gerade egal ob der Controller mit Include von "m128def.inc" dann quasi doppelt vorgegeben wird oder nicht. Fehlermeldungen treten dabei nicht auf. Ich würde auf jeden Fall aber mal auf die aktuelle Version 7.0.2389 bzw. im Device Pack Manager updaten.
Hallo Danke dafür das ihr euch alle so anstrengt, vor allem am Moderator für den entsprechenden Kommentar (was muss man eigentlich noch alles erwähnen?- Siehe meinen zweiten Post - um gewisse "hilfreichen" Kommentare zu verhindern...). Aber alles was ihr an sinnvollen Kommentaren und Hilfestellungen gegeben habt ist mir eigentlich bekannt und erklärt leider nicht was ich gerne verstehen und wissen möchte: Vielleicht bringt es etwas wenn ich anders frage: Wie und wo bindet (lädt, fügt zu...) das Studio in der Version7 bei der Auswahl des gewünschten Controllers wie z.B. den ATtiny 13A die include Datei den in das Projekt ein. Was und wie geschieht da zusätzlich im Hintergrund was zumindest bis einschließlich der Version 4 nicht gemacht wurde. Irgendwo muss ja der die Assemblerdirektive .include ersetzt werden bzw. "versteckt" hinterlegt sein Aber wo den nun? - Spätestens beim assemblieren muss der eigentliche Assembler doch mitgeteilt bekommen welches *.inc File er einbinden muss - also muss diese Direktive (Eventuell dann streng genommen Steuerbefehl, Verlinkung...) ja irgendwo "verbunden", also mit den Quellcode verknüpft (zugeordnet?) sein?! Ja alles nicht wirklich wichtig und für das erlernen der Assemblersprache nicht wichtig, aber trotzdem möchte ich es wissen, vor allem weil andere Assemblerprogramme (damit meine ich jetzt die Programme welche den Assemblerquellcode in die Maschinensprache und den *.hex code wandeln) die .include Direktive im Assemblerquellcode auf jeden Fall benötigen. Assembel_Newboy
Hallo "Ich würde auf jeden Fall aber mal auf die aktuelle Version 7.0.2389 bzw. im Device Pack Manager updaten." Das hört sich gut an und ich werde das mal machen. Bei dir scheint es ja zu funktionieren. Danke
Assembel_Newboy schrieb: > Bei dir scheint es ja zu funktionieren. Ich kenne diese missverständlichen Fehlermeldungen durchaus auch aus der Vergangenheit. Assembel_Newboy schrieb: > Irgendwo muss ja der die Assemblerdirektive .include ersetzt werden bzw. > "versteckt" hinterlegt sein > Aber wo den nun? Ich würde annehmen daß das Projektfile-gesteuert vom Programmcode selber veranlasst wird. Also ohne Einflußmöglichkeit von außen. Aber wie Du schon sagst Assembel_Newboy schrieb: > alles nicht wirklich wichtig
Hallo "Das hört sich gut an und ich werde das mal machen." -Hat leider nicht gebracht, außer das das Studio auf den neusten Stand ist... Wobei das update eher eine Neuinstallation ist, zumindest vom Zeitaufwand... Wenn das bei jeden Programm so wäre - dann gute Nacht ;-) Das Update war übrigens nur von 7.0.1417 auf 7.0.2389 - so gut das Studio auch eigentlich ist - beim Upate müsste sich Atmel bzw. Microchip bzw. dessen Dienstleister so langsam was einfallen lassen - das müsste doch deutlich schneller und sparsamer gehen... Ansonsten: Auskommentieren oder weg löschen ist halt die Lösung - dumm nur wenn das in den überwiegend nun mal älteren Tutorials gar nicht stehen kann und es wirklich aktuelle Einsteigertutorials in die Assemblerprogrammierung für 8 Bit AVRs in deutscher Sprache irgendwie nicht zu geben scheint... Als vollkommener Neueinsteiger der noch nie einen µC Programmiert hat geschweige den eine solch komplexe IDE genutzt hat (welche sich auch sehr stark von Version zu Version geändert hat) ist dann leider erst mal aufgeschmissen. Hoffentlich lernt Google diesen Thread kennen und die Neueinsteiger mit ähnlichen Problem wird hiermit ein wenig geholfen. Noch besser wäre es natürlich wenn das irgendwie die Ersteller der Deutschsprachigen, an Anfänger gerichteten Tutorials das mit bekommen würden und entsprechende Hinweise einpflegen würden. Danke für eure Hilfe und Hinweise - auch wenn es letztendlich nicht das gebracht hat was ich gerne hätte...
Wie gesagt, wenn du unter Atmel Studio 7 ein neues Assembler-Projekt anlegst, wirst du nach Angabe von Projektnamen und Projektverzeichnis gefragt, welches der Zielprozessor sein soll. Atmel Studio hält diesen dann nicht in der Quelldatei, sondern in der Projekt-Datei fest, genau genommen in der Datei *.componentinfo.xml mit vollständigem absolutem Pfad für die zugehörige include-Datei (falls dich das interessiert). Das muss dich aber nicht weiter kümmern, denn du kannst das bei Bedarf auch im Solution Explorer sehen (nämlich unter Dependencies) und die zugehörige include-Datei (aber auch alle anderen, z. B. nach dem erfolgreichen Assemblieren jene unter "Output Files") per Doppelklick jeweils in ein eigenes Atmel-Studio-Fenster holen. Wenn du irgend ein anderes Quellprogramm in das neu erstellte main.asm-Fenster kopierst und dort eine include-Angabe für den verwendeten Prozessor gemacht ist, die sich von jener im Solution Explorer unterscheidet, sollest du sie löschen, da sie möglicherweise nicht aktuell bzw. nicht im vorgegebenen Pfad von Atmel Studio 7 zu finden ist. Falls es derselbe include-Name (mit doppeltem Hochkomma) ist, kannst du ihn für bessere Übersicht auch im main.asm stehen lassen. Wenn du aber eine include-Datei für einen Zielprozessor angibst, der nicht unter Dependencies aufgeführt aber gültig ist, erzeugt dieser Konflikt beim Assemblieren eine lange Liste mit Fehlermeldungen. Dann musst du diese include-Datei zwingend löschen oder auskommentieren. Viel Spaß beim AVR-Assembler-Programmieren - ernsthaft!
:
Bearbeitet durch User
Hi, es ist ein xml File noch nötig. Die .inc alleine reicht nicht. AVrasm object.xml guck da mal rein. dann siehst Du es. Framework ist das Zauberwort. ciao gustav
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.