Forum: Mikrocontroller und Digitale Elektronik Coole features bei IAR auch bei anderen Compilern?


von IAR'ler (Gast)


Lesenswert?

Hallo Forum,

ich habe eine Frage an euch. Ich habe die ganze Zeit bei mir zu Hause 
mit einem IAR- Dongle meiner Firma gearbeitet. (IAR Embedded Workbench 
vor AVR) Naja dieser wird jetzt allerdings benötigt und ich muss mich um 
eine alternative kümmern. Habe dazu auch schon viel im Netz gesucht. Es 
gibt bestimmt einige Möglichkeiten. Es gibt aber etwas was ich sehr 
wichtig finde und ich nicht weiß bei welcher Software ich das auch 
finde.
Wenn man in IAR z.B. mit der rechten Maustaste auf einen Funktionsaufruf 
geklickt hat, konnte man direkt zu diesem Aufruf springen. Das ist super 
hilfreich!

Ich weiß das es von IAR auch eine Kick-start Version gibt aber die ist 
auf 4k begrenz und das ist bei mir zu wenig. Gibt es denn da nicht noch 
eine andere Möglichkeit? Wieso gibt es denn da keine Abstufung auf z.B. 
8k oder so für etwas weniger Geld wie die Vollversion? Wenn man einmal 
damit gearbeitet hat kommt man schwer davon los!
Hat von Euch jemand einen Tip?

Viele Grüße,
IAR’ler

von Christian R. (supachris)


Lesenswert?

Najaaa...hab mit IAR für den MSP430 gearbeitet. Aber dann auf Eclipse 
und GCC umgestiegen. Eclipse bietet einfach wesentlich mehr Komfort und 
Möglichkeiten. Und gerade für den AVR gibts doch ein tolles 
Eclipse-PlugIn, wo auch der Debugger richtig gut unterstützt wird. Um 
bei deinem Beispiel zu bleiben: Wenn du die Maus etwas länger auf dem 
Funktionsaufruf lässt, kommt ein kleines PopUp, was die ersten Zeilen 
der Funktion anziegt, wenn du dann mit der Maus auf das Poup gehst, wird 
es zu einer Editor-Box erweitert, mit Scrollen, bearbeiten usw. Von den 
tausenden PlugIns, die das Leben erleichtern mal ganz abgesehen. Und der 
GCC ist völlig kostenlos, also lohnt sich der Umstieg.

von IAR'ler (Gast)


Lesenswert?

Hallo Christian,
neugirig was meinst du jetzt. Umstig auf Eclipse oder GCC? Ist GCC 
auch gleich WinAVR?
Vielen Dank für deine Antwort!

von Hauke R. (lafkaschar) Benutzerseite


Lesenswert?

Eclipse bietet die gewünschte funktion mit Shift- oder Strg- Linksklick, 
weiß gerade nicht mehr obs shift oder strg war.

von R. W. (quakeman)


Lesenswert?

GCC ist nur der Compiler (Quellcode in Maschinencode umsetzen), Eclipse 
ist die Entwicklungsumgebung (Editor mit Highlighting, Referenzen etc).

von IAR'ler (Gast)


Lesenswert?

Hallo zusammen,
danke erstmal für eure Infos!
Ich muss ja zugeben dass die Software gar nicht so schlecht aussieht. 
Wie ist denn das aber mit dem debuggen? Ich habe bei IAR einfach auf 
kompilieren gedrückt und dann mit AVR-Studio den Controller geladen und 
anschließen damit dann auch debuggen können. Wie läuft denn das bei 
eclipse? Ich habe etwas von „avr-gdb“ gelesen. Kann man dann kein (ich 
glaube .90 oder so) file für AVR-Studio erzeugen? Ich habe zwar unter 
einem Link des AVR Eclipse-Tutorial "Anleitung zum Debuggen mit Eclipse 
unter Windows" gelesen das es irgendwie gehen soll aber das sieht schon 
sehr kompliziert aus!

Viele Grüße :o)

von Joachim (Gast)


Lesenswert?

Hier findest du alles was du wissen mußt, um mit Eclipse und dem 
AVR-Plugin arbeiten zu können. Das Plugin ist 1A.
http://avr-eclipse.sourceforge.net/wiki/index.php/The_AVR_Eclipse_Plugin

Gruß Joachim

von Joachim (Gast)


Lesenswert?

Ich meinte eher die Manualseite zu dem AVR-Plugin...
http://avr-eclipse.sourceforge.net/user%20manual/home.html

Joachim

von Christian R. (supachris)


Lesenswert?

Wenn man alles richtig konfiguriert hat, muss man nur auf den Käfer in 
der Symbolleiste drücken, dann wird das Programm kompiliert, per JTAG 
auf den Prozessor geladen und die Debug-Perspektive geöffnet, der 
Prozessor bei main() angehalten, und alle Register und die nächsten x 
Bytes herunter geladen und angezeigt. Allerdings muss man fairerweise 
dazu sagen, dass die Konfiguration etwas aufwendiger ist, als setup.exe 
ausführen. Du musst halt die ganze Toolchain in Eclipse einbinden, also 
GCC, GDB und den JTAG-Proxy....avarice heißt der glaube. Wenn das aber 
einmal getan ist, gehts wunderbar. Das PlugIn von Thomas Holland nimmt 
dir jede Menge Arbeit ab.

von Joachim (Gast)


Lesenswert?

Christian R. schrieb:
>Wenn man alles richtig konfiguriert hat,.....

Ja das ist der Nachteil an Eclipse + Plugins, die Konfiguration ist kein 
Kinderspiel, aber danach ist es so ziemlich unschlagbar. Und das für 
lau.

Joachim

von IAR'ler (Gast)


Lesenswert?

Ich habe noch ne Frage! :o)

Wie sieht es denn mit Fehlermeldungen aus? Ich meine wenn ich im Code ne 
Fehler habe. Wie wird der angezeigt? (vielleicht mit 
Verbesserungsvorschlag g)
Nein im ernst! Bekomme ich nur ne Meldung das etwas nicht stimmt oder 
auch warum ein Fehler existiert?

Danke für eure Antwort!

Viele Grüße,

von Christian R. (supachris)


Lesenswert?

Na sicher doch. Eclipse ist eine vollwertige IDE für alle möglichen 
Sprachen. Fehler zeigt der sogar gleich während des Schreibens an, wenn 
man das will. Da wirds sofort rot unterstrichen. Oder eben die vom 
Compiler, dann auch direkt mit Markierung im Quelltext.

von IAR'ler (Gast)


Lesenswert?

Ich suche nach Gründen aber bald finde ich keine mehr ;o)

Wenn ich Heim komme werde ich wirkich mal das ganze ausprobieren! Bin 
echt sehr gespannt!

Danke erstmal an euch alle!! Wer dann noch ein feedback geben!

Bis dahin euch ein schönes Wochenende...

viele Grüße,

von Joachim (Gast)


Lesenswert?

IAR'ler schrieb:
>Wenn ich Heim komme werde ich wirkich mal das ganze ausprobieren!

Nimm dir wirklich Zeit zum installieren und konfigurieren oder du bist 
enttäuscht. Es läuft nicht nach 3-mal "Install" klicken. Ich habe dir ja 
den Link zum Manual vom AVR-Plugin zu Eclipse gepostet. Schön daran 
halten und alles wird gut ;-)

Gruß Joachim

von Christian R. (supachris)


Lesenswert?

IAR'ler wrote:
> Ich suche nach Gründen aber bald finde ich keine mehr ;o)
>
> Wenn ich Heim komme werde ich wirkich mal das ganze ausprobieren!

Das arme Wochenende. Jetzt ist es futsch. Hoffentlich gibts keinen Ärger 
mit der Chefin des Hauses ;)

Um hinter die Denkweise von Eclipse zu steigen, brauchts schon paar 
Tage.

von IAR'ler (Gast)


Lesenswert?

Chefin ist dieses WE auser Haus biggrins

Hilfe, ich habe alles installiert. Klappt bis jetzt auch aber ich habe 
beim starten von Eclipse den Hacken beim geöffneten Fenster rein 
gemacht. (beim öffen nicht mehr nachfragen) Wie blöd von mir!!!! jetzt 
werden alle Projekte unter:"C:\Dokumente und Einstellungen......" 
abgespeichert. Das will ich aber nicht!! :o( Das kann man bestimmt 
wieder deaktivieren, aber wo?? Weiß von euch jemand wo??
Das kommt davon wenn man zu "hodisch" ist >LOL<

Viele Grüße,

von IAR'ler (Gast)


Lesenswert?

Halt zurück....
Habs gefunden...
Beim anlegen eines neuen Projektes kann man den Hacken wieder raus 
machen!!

SORRY!!!

von IAR'ler (Gast)


Lesenswert?

Hallo zusammen,
also ich bin schon beeindruckt von Eclipse. Hätte ich nicht gedacht! Ich 
kann jetzt bereits mit meinem STK500 und ein JTAG-ICE- Nachbau meinen 
Mega16 programmieren. Komischerweise klappt es nicht mit de JTAG ICE 
MKII! Was auch noch nicht klappt ist das debuggen :o( Das will ich noch 
unbedingt hin bekommen. Ich habe nicht all so viele Hilfe im Netz 
gefunden!
Gibt es für WINAVR auch so ein Art Befehlshandbuch? Bei manchen Sachen 
muss ich mich schon umgewöhnen. Z.B. bei IAR ging es so: 
[while(!(UCSRA_UDRE));]  bei WINAVR geht das so [while(!(UCSRA & 
(1<<UDRE)) );] Darauf muss man erst mal kommen! Aber so lernt man ja 
automatisch wieder etwas neues dazu gg

Viele Grüße,

von IAR'ler (Gast)


Lesenswert?

Hallo zusammen,
ich habe es gestern Mittag geschafft alles zum laufen zu bekommen. Ich 
muss ehrlich gestehen dasss ich sehr beeindruckt bin. Es war echt ne 
lange "fummelarbeit" aber jetzt wo alles läuft bin ich echt sehr 
zufrieden.
Eine Frage habe ich aber noch...
Kann der Compiler irgendwie ein "mapfile" anzeigen lassen? Ich würde 
gerne den Assembler- Code anschauen! Gibt es diese Möglichkeit??
Viele Grüße und danke nochmal an die tollen, hilfreichen Tipps :o)

von Heinze (Gast)


Lesenswert?

>Kann der Compiler irgendwie ein "mapfile" anzeigen lassen? Ich würde
>gerne den Assembler- Code anschauen! Gibt es diese Möglichkeit??

Du verwexelst da was. Mapfile wird vom Linker erzeugt und enthält
die Programmadressen.

Der Compiler kann ein Listfile erzeugen, das den Assemblercode
u. ggfs. auch den C-Code enthält.

Betreffende Compiler- und Linkeroptionen in der WiNAVR Doc.
nachschauen und in den Eclipse Project Properties oder
im Makefile, falls Du eines benutzt nachschlagen.

von Heinze (Gast)


Lesenswert?

s/nachschlagen/eintragen.

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


Lesenswert?

IAR'ler wrote:
> Komischerweise klappt es nicht mit de JTAG ICE
> MKII!

Typ des Programmieradapters: jtag2.

von WoPe (Gast)


Lesenswert?

> Gibt es für WINAVR auch so ein Art Befehlshandbuch? Bei manchen Sachen
> muss ich mich schon umgewöhnen. Z.B. bei IAR ging es so:
> [while(!(UCSRA_UDRE));]  bei WINAVR geht das so [while(!(UCSRA &
> (1<<UDRE)) );] Darauf muss man erst mal kommen! Aber so lernt man ja
> automatisch wieder etwas neues dazu gg

Ich kenn die IAR-Umgebung nicht so gut, aber ich bin sicher es steckt 
das gleiche dahinter: ein Headefile mit den Definitionen einer C-Library 
für den AVR...

Leider gibt es nicht nur beim AVR (sondern auch auch bei ARM, XC2000, 
Trcore, MSP430, ... Toolpakete) unterschiedlicher Implementierung der 
zur verfügung gestellten Bibliotheken (Library-Files) und 
Registerdefinitionen bzw. Codevereinfachungen. Hat aber nix mit WinAVR, 
Eclipse oder GCC an sich zu tun.

Abhilfe: Du kannst
a) versuchen aus der IAR-Umgebung diese(s) Headefile(s) zu finden (ist 
hinter eines/mehreren der #includes Deines C-Codes) und daraus ein 
eigenes Headerfile mit den ganzen #defines stricken, die Du brauchst.

Beim obigen Beispiel reicht ein

// Headerfile for IAR compatibility
#ifdef _GNUC_
  #define UCSRA_UDRE UCSRA&(1<<UDRE)
  //Hier weitere Defines anfügen
#endif

in einer Datei "iar_compatibility.h" gespeichert, die Du in deinem 
C-Code mit

#include "iar_compatibility.h"

einbindest. Ich schätze so eine #define-Zeile in der Art wirst Du auch 
irgendwo in einem Header der IAR-Bibliothek finden... Ev. gibt es so 
eine "compatibility-Headerdatei" auch schon fertig irgendwo im Netz.

Vorteil: einmal (mühsam) durchexerziert, geht Dein C-Code dann mit GCC 
und IAR (der IAR macht das _GNUC_ define hoffentlich nicht...:-). Dann 
kannst den Code bei Bedarf auch in der Firma mit dem IAR kompilieren, 
was manchmal recht nütlich sein könnte.

b) du gehst auf http://www.nongnu.org/avr-libc/ und holst Dir das Manual 
zur AVR-LIBC, dass ist die C-Library die im WinAVR-Paket mitgeliefert 
wird und passt Deinen Code entsprechend an.

Das wären meine Ideen. Wenn Deine Probleme nur auf dieser Ebene sind, 
die Du genannt hast und du keine Compiler-Intrinsics verbiegst (z.B. die 
C-Initialisierungssequenz u.s.w. verbiegen möchtest --> ist 
Compilerabhängig) oder ganz spezielle Libraries (irgendwelche 
vorkompilierten FFT-Algorithmuslibs aus dem IAR-Paket etc. braucht), 
würde ich Dir zu a) raten.

von WoPe (Gast)


Lesenswert?

Die Formatierung in meinem Beitrag ist kaputt, habe nicht aufgepasst. 
Die #define Zeile muss "underscore underscore GNU underscore underscore" 
heissen.

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.