Hallo alle zusammen,
ich habe AVR Studio als konfortables Tool kennen gelernt weil man alles
mit einem Programm coden, brennen und in cirquit debuggen kann. Wie es
1000 Beiträge im Forum bereits zeigen ist die IDE vom AVR Studio halt
recht dünn ausgestattet... gibt es Plugins oder Alternativen, die das
Coden noch konfortabler machen?
Ich will zunächst mal bei Assembler bleiben...
Ich verwende STK500, STK600 und JTAGICE MK2...
Was schon mal gut funktioniert, und was ich nicht opfern will:
A)Das gecodete kann mit schnellem Tastendruck gleich in den Flash des
Prozessors geschrieben werden. Erst abspeichern, Programm wechseln,
Dateien neu einladen usw. finde ich lästig, würde ich aber in kauf
nehmen, wenn anderen Funktionen dadurch konfortabler werden.
B)Bei in circuit debugging breakpoints will ich gleich sehen können, in
welcher Zeile (und in welcher Datei) des Codes oder der include Dateien
der Prozessor stehen geblieben ist und welche Werte die Register, Ports
usw. haben.
Was bei AVR Studio nicht funktioniert, und ich nach einer Lösung suche:
C) selbstdefinierte Deklarationen, Variablen, Sprungbefehle und Macros
sollten farbig dargestellt werden (ohne sie vorher in der
AvrStudio_asm.ini eingeben zu müssen und das Programm neu starten
müssen)
D) selbstdefinierte Deklarationen, Variablen, Sprungbefehle und Macros
sollten sofort währen der Eingabe vorgeschlagen werden, damit ich diese
nicht bis zum Ende abtippen muss oder selbst nochmal in andern Dateien
nachschauen muss, wie die nochmal genau hiessen...
E) Subroutinen und Macros sollten ausblendbar werden
F) Wenn ich im AVR Studio das Projekt wechsle, bleibt die ausgewählte
HEX Datei immer noch im AVR Programmer Menü. Oft brenne ich eine andere
Hex Datei, als die, die das aktuelle Projekt erzeugt hat. Kann man dem
AVR Programmer nicht irgendwie beibringen die aktuelle Datei des
Projekts zu brennen? (und auch die EEPROM Datei)
G) Ich will im Projekt bestimmen können welche Fuse Bits beim brennen
gesetzt werden sollen. Wenn ich das Projekt wechsle, sind immer noch die
alten Einstellungen des letzten Projekts im AVR Programmer. Oft brenne
ich falsche Clock Einstellungen oder noch die HEX Datei des letzten
Projekts, wie unter Punkt F beschrieben.
Ich weiss, es sind alles Wünsche, die sich mit mehr Aufmerksamkeit und
mehr Fleiß erübrigen würden. Aber ich denke genau das macht eine
"Komfort" Funktion aus und unter C gibt es ja schon die ein oder andere
komfortable Lösung. Aber nicht für den Assembler, oder habe ich was
übersehen?
Ist das alles bereits unter C möglich? Wenn ja, wäre ich auch bereit
mich neu in die Programmiersprache einzuarbeiten.
Mit was arbeitet Ihr und welche Funktionen habt Ihr lieb gewonnen?
Danke schon mal in Voraus
Christian Beckmann
A) Benutzer-definierte Shortcuts beherrscht sogar schon Textpad...
C) Syntax-Highlight per regex. Kenn ich vom emacs
D) Code-Completion: Code::Blocks
E) Code-Folding: Code::Blocks
F) Wie soll der Programmer denn wissen, welche andere Datei du gerade
brennen willst? Üblicherweise ist das abhäbgig vom Projekt. C::B kann
auch mehrere Projekte verwalten.
G) In C::B kann man vieles einstellen: post-build Regeln, etc. Falls das
alles nicht reicht, kann man sich zB per Python reinhängen.
> Ist das alles bereits unter C möglich?
Mit C ist alles möglich, sogar das versehentliche Auslösen des 3.
Weltkrieges ;-)
Ich arbeite mit Programmer's Notepad. Super schlank, ich mag die ganzen
fetten und überlagenen GUIs net.
Wer nicht weiß was er tut, dem hülft auch dein Käferjäger.
Einfach mal antesten, kost ja nix. Ebenso wie die zig PlugIns für C::B
http://www.codeblocks.org/featureshttp://forums.codeblocks.org/index.php/board,22.0.html
Danke schon mal für den Anfang, ich werde mir die Tools gleich mal im
Laufe des Tages anschauen.
zu F:
der AVR programmer scheint es zu wissen, es gäbe ja auch die Einstellung
"Use current Simulator/Emulator Flash Memory". Diese ist jedoch
ausgegraut, solange ich nicht simuliere. Jedes mal neu zu simulieren
wäre jedoch noch umständlicher, als die Datei bei Projektwechsel neu
einzustellen.
>Wer nicht weiß was er tut...
naja, es geht schon, man kommt zurecht. Aber ich sehne mich mit meinen
40 Jahren nach "Komfort"funktionen, Alternativen suchen kostet ja nichts
;)
also zum coden ist C::B spitzenmäßig, nur ich habe nicht das Gefühl, daß
man sich mit C::B beim in circuit debugging noch die Register den Port
Status anschauen kann. Oder kann man sich da irgendein Plugin für den
JTAGICE MK2 einbinden oder ins AVR Studio einbinden?
Ich habe gerade entdeckt, daß man im AVR Studio die Dateien "reloaden"
kann, und daß er sogar selbst erkennt, ob sich Dateien geändert haben.
Wenn man also mit einem externen Programm, wie PN oder C::B schreiben
würde, könnte man mit wenigen klicks ganz schnell im AVR Studio weiter
machen.
Nur:
Es gibt keinen Befehl: Reload "all" files. Pro Projekt sind es doch
einige. Würde es da einen Trick geben, ohne daß man das ganze Projekt
neu aufmachen müsste?
Ich Code doch tatsächlich mit MS Visual Studio :) Zum Kompilieren,
Flashen und Debuggen dann wieder AVR Studio, was nebenbei offen ist. Das
erkennt, wenn sich die Quelldateien geändert haben und mit einem klick
sind die neu geladen.
Klaus wrote:
> Ich Code doch tatsächlich mit MS Visual Studio :) Zum Kompilieren,> Flashen und Debuggen dann wieder AVR Studio, was nebenbei offen ist. Das> erkennt, wenn sich die Quelldateien geändert haben und mit einem klick> sind die neu geladen.
Das geht mit dem Programmer's Notepad genauso.
Hab da eine Frage :
CodeBlocks (V8.02) besitzt z.B. einen Projekt Wizard für den WinAVR.
Gibt´s irgendwo eine Anleitung im Netz wie ich den WinAVR auf anhieb
richtig in CodeBlocks integrieren kann, was muss ich tun bzw. beachten,
damit es genauso reibungslos verläuft wie mit dem AVR-Studio ?
Ja, C::B ist schon ne schöne IDE... leider bin ich damals daran
verzweifelt den Debugger zum laufen zu bringen. Auch hab ich es
irgendwie nicht geschafft ein Programm zum Flashen so zu Konfigurieren,
dass man mit einem "Klick" von der C::B Oberfläche aus das Programm in
den AVR schreiben kann.
Ich werde mich in den kommenden Semesterferien noch einmal genauer damit
beschäftigen, denn CodeBlocks wäre meine Wunsch IDE zum Entwickeln von
AVR Programmen...
Codewright ist auch nicht verkehrt hinsichtlich C-coding
(autovervollständigen usw.).
Ich habe avrstudio parallel dann zum debuggen offen auf nem zweiten
monitor...
Eclipse kommt so langsam mit dem CDT-plugin auch in diese Regionen.
gruss, tom.
Netbeans. Nuff said.
--> Keine Kinderkrankheiten wie bei Eclipse, keine
Superspezial-Eigenheiten wie bei den allermeissten anderen IDE's,
Compiler frei wählbar (!!), 64Bit-fähig, plattformunabhängig weil Java
(ich muss immer wieder lachen wenn C++-Programmierer das selbe behaupten
-- wohl noch nie eine .exe oder .dll auf Linux ausprobiert, wa ;-) ) und
spgar recht stabil (weil: Java).
Einziges Manko: avr-gcc muss selbst eingeknotet werden ... is aber kein
Ding, wenn der Compiler eingestellt und die Makefile ausgewählt is zeigt
dir NB sogar Makros und #defines an die nichtmal das ach-so-tolle
Eclipse kennt ;-), zudem wird praktisch alles über Tooltips und Popups
ergänzt (bei Mircoz0ft heisst das "Intellisense", Eclipse kennt das
scheinbar garnicht oder nur sehr bruchteilig)
Name wrote:
> Ding, wenn der Compiler eingestellt und die Makefile ausgewählt is zeigt> dir NB sogar Makros und #defines an die nichtmal das ach-so-tolle> Eclipse kennt ;-), zudem wird praktisch alles über Tooltips und Popups> ergänzt (bei Mircoz0ft heisst das "Intellisense", Eclipse kennt das> scheinbar garnicht oder nur sehr bruchteilig)
Schade, dass du dich bei Eclipse so wenig informiert hast und dann dein
Halbwissen hier verbreitest. Es stimmt nicht, was du schreibst. Ich will
nicht sagen, dass bei Eclipse alles SOO toll ist, aber alles was du
aufführst funktioniert auch bei Eclipse (z.B. die erwähnten #defines und
Makros). Ach ja, Eclipse ist auch Plattformunahängig durch Java. Hab die
Windows und Linux version schon intensiv genutzt. Gehen beide gut.