Coole features bei IAR auch bei anderen Compilern?

Gast #1199296
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
#1199317
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.
Gast #1199859
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)
#1199869
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.
Gast #1200167
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
Gast #1200404
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,
Gast #1201115
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,
Gast #1202965
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)
Gast #1202991
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.
Gast #1203363
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.

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