Liebe kundige ARM freaks, ich spiele bißchen mit nem Arduino Due. Ich programmiere ihn in C mit Atmel Studio 6.2 . Das Flashen besorgt die Arduino Umgebung in der Form wie das hier http://codetron.net/arduino-due-in-atmel-studio-using-c-led-blinking/ dargestellt ist. Ich kann das Programm übersetzen und produziere ein .bin file. Das kann ich mit dem 'bossac' tool (???) auch in den Due transferieren, es gibt keine Klagen. Allein: es passiert nix, nix blinkt, kein Schalten auf dem pin. Ich weiß, es ist was ganz blödes, aber was? THX Cheers Detlef
Detlef _a schrieb: > ich spiele bißchen mit nem Arduino Due. Ich programmiere ihn in C mit > Atmel Studio 6.2 . Mach ich auch grad :) >Das Flashen besorgt die Arduino Umgebung in der Form > wie das hier Kleiner Tip: Besorg dir einen Programmer (Atmel-ICE), dann bist du auch den Umweg über Arduino/bossac los, und kannst auch gleich vernünftig debuggen, Fuses lesen/setzen, etc. Ja, richtig, das Teil kostet gute 112€, ist viel Geld, stimmt, aber lohnt sich, glaub mir. http://www.reichelt.de/AT-ATMEL-ICE/3/index.html?&ACTION=3&LA=446&ARTICLE=143878&artnr=AT+ATMEL-ICE&SEARCH=atmel-ice Detlef _a schrieb: > Allein: es passiert nix, nix blinkt, kein Schalten auf dem pin. > Ich weiß, es ist was ganz blödes, aber was? Zeig doch mal n bisschen Code, um auschließen zu können, das es am Code liegt. Ich programmiere meinen Due über Atmel Studio und den Atmel-ICE und habe das "Problem", dass ich etwas flashe, die Änderungen aber nicht ankommen, bzw. Breakpoints nicht anschlagen. Dann muss ich den Due einmal vom PC trennen, wieder verbinden, dann klappts in der Regel auch. Deswegen hab ich am Anfang von meinem Programm gleich einen Breakpoint sitzen und flashe immer über "start debugging", wenn der Breakpoint nicht einsetzt weiß ich, dass das ganze nicht funktioniert hat (auch wenn Atmel Studio nicht mekert!), und den Due trennen muss. Dein "es passiert nichts, aber die Arduino IDE/bossac mekern nicht", hört sich erstmal so an, als ob es genau das wäre. Über welche USB-Buchse hast du den Due mit deinem PC verbunden? Und noch zwei kleine Tips, damit du nicht auch in die Probleme rennst, sowie ich: Du musst den Watch_Dog ausschalten, sonst resettet sich der Due alle 16 - 18 sekunden. Wenn du das Arduinozeug benutzt, machen die Arduino-Libs das für dich. Atmel setzt über die LinkerScript die max. Stack-/Heapsize. Das musst du ggf. anpassen. Die Stacksize wird von Atmel auf 1024Byte und die Heapsize auf 512Byte gesetzt. Warum ist das wichtig? Nun, wenn du z.B. ein lokales Array anlegst, in etwa so:
1 | uint32_t my_array[300]; |
dann braucht das array 4 x 300 Byte, also 1200 Byte. Da das mehr ist, als dein Stack groß ist, läuft der Due in einen Default-Handler für ungenutze Interrupts. Die Scripte findest du im Sulotion-Explorer im Ordner LinkerScripts. Ich hab meine Stacksize jetzt erstmal auf 0x9000 und meine Heapsize auf 0x2000 gesetzt, damit hab ich erstmal keinen Ärger^^ Grüße
Yo, danke. Ich benutze die usb buchse die naeher am. Power stecker ist, programming irgendwas heisst die. Ich dachte, es sei einfach das ding ueber usb zu bespassen aber dann werde ich mir nen porogrammer besorgen. Der sourcecode steht unter cem geposteten link, der initialisiert. Und toggelt zwei pins. Danke fuer die tips mit watchdog stack heap, kuck ich drauf. Ich hatte erwartet, dass das besser flutscht, dass es vllt. Nen. Blinkbeispiel in C unter Atmel studio gibt, hab aber nix gefunden. Und das studio ist auch schon paarmal abgeraucht, scheint sich bei atmel nicht soviel getan zu haben. Wenns so holprig weitergeht mach ich wieder makefile mit gcc, hat man kein unterstuetzung aber geht ohne murren und knurren. Cheers Detlef
Detlef _a schrieb: > Ich dachte, es sei einfach das ding > ueber usb zu bespassen Ist es, solange man die Arduino-Libs und IDE nutzt. :-/ Da passiert wohl noch n bisschen mehr magic im hintergrund, so wie beim Watch_Dog. Detlef _a schrieb: > Und das studio ist auch schon paarmal abgeraucht Hm, das Problem hab ich nicht. Bei mir laeufts gut, auf 2 Rechnern, jeweils Win7, 64bit. Wenn du das Geld fuer den Programmer sparen willst, und nicht zwingend auf das Arduino-Board/Atmel Studio angewiesen bist, kann ich ein STM32F4-Discovery-Board empfehlen. Da ist der Programmer gleich mit auf dem Board drauf, und das ganze Teil kostet nur um die 16 Euronen und hat auch nochmal mehr power als der Due. https://hbe-shop.de/Art-2009276-STMICROELECTRONICS-STM32F4DISCOVERY-DISCOVERY-KIT-STM32F407-USB-OTG
Hallo Detlef, ich benutze ebenfalls die Software Atmel Studio 6.2 allerdings mit dem Visual Micro Tool for Arduino 1.5.x Darin enthalten ist ein Debugger, der einige Zeit kostenlos arbeitet. Vielleicht hilft der dir bei der Fehlersuche. Ich füge auch eine pdf-Datei an, in der das Faraday’sche Induktionsgesetzt mit dem DUE experimentell überprüft wird. Der DUE kann mehr als nur LED’s blinken lassen. Demnächst soll der Arduino TRE herauskommen – noch schneller und Linux-tauglich. Es bleibt spannend. MfG: Edgar Marx
Kaj schrieb: > STM32F4-Discovery-Board empfehlen. Da ist der Programmer gleich mit auf > dem Board drauf Beim seinem Arduino den er jetzt hat ist der Programmer auch bereits auf dem board (und zwar in Form eines Bootloaders), also hier will er gar nicht mit einem ISP Programmer drangehen und an den Fuses will er auch tunlichst nicht herumschrauben, es sei denn er will seinen Arduino dauerhaft umfunktionieren. Wenn Du Dich mal kurz auf seine Fragestellung konzentrierst anstatt ihm irgendein komplett anderes System anzupreisen das er momentan gar nicht haben will (er will ja sein existierendes Arduino board zum Laufen bekommen und es gibt nicht den geringsten Grund warum er das nicht tun wollen sollte) dann dann siehst Du daß er das Kompilat offensichtlich bereits ohne Probleme in den Controller schreiben kann, es funktioniert dort nur nicht. Er hat also gar kein Problem mit einem nicht vorhandenen Programmer, den braucht er nämlich gar nicht bei Devices wie seinem Arduino die mit Bootloader betrieben werden. Das Problem scheint mir eher mit seinem C code zusammenzuhängen. @Detlef: Poste man Deinen Code.
:
Bearbeitet durch User
Bernd K. schrieb: > eim seinem Arduino den er jetzt hat ist der Programmer auch bereits auf > dem board (und zwar in Form eines Bootloaders) Ja... und mit dem Bootloader kann man wie genau debuggen? Und ich meine richtig debuggen, so mit Ablaufanhalten und in alle Register gucken und so... nicht so ein sinnloses "ich lass mir mal ein paar werte über den uart ausgeben"-geschwurbel. Dieses hier: Edgar Marx schrieb: > Visual Micro Tool for Arduino 1.5.x Darin enthalten ist ein Debugger, > der einige Zeit kostenlos arbeitet. Ist ein netter hinweis, mit dem man anfangen kann, aber bei mir zumindestens an diesen Punkten wieder sauer aufstößt: (von: http://www.visualmicro.com/page/Debugging-for-Arduino.aspx)
1 | Hot Tip 1: |
2 | The debugger uses Serial by default. If your sketch code also |
3 | uses serial then you must ensure that the "Micro Debug>LocalSpeed" and |
4 | "Micro Debug>RemoteSpeed" project properties are set to the correct value |
5 | (eg: 9600 baud). The default if you do not set the speed is 115k. |
6 | |
7 | Hot Tip 4: |
8 | The debugger is a software debugger this means that any |
9 | changes to break point configuration requires the sketch to be |
10 | re-compiled and uploaded. To entirely clear the debugger from the |
11 | Arduino you must re-compile and upload in Release mode (or click |
12 | Debug>Start without debugging) |
Ok, erstens klaut mir das Ding wieder einen seriellen Port vom Arduino, oder ich muss mir irgendwie was hin basteln. Dann ist es nur ein Software-Debugger... Ansonsten ein guter hinweis, war mir nicht bekannt das Tool. Bernd K. schrieb: > also hier will er gar > nicht mit einem ISP Programmer drangehen 1. Weißt du das überhaupt nicht, und 2. wen interessiert denn ISP? ISP unterstützt debugging nicht und ist damit völlig uninteressant. Bernd K. schrieb: > und an den Fuses will er auch > tunlichst nicht herumschrauben, es sei denn er will seinen Arduino > dauerhaft umfunktionieren. z.B. Brown-Out seinen Anforderungen anpassen oder andere Einstellungen. Aber gut das du dem TO vorschreibst was er zu wollen hat Bernd K. schrieb: > und an den Fuses will er auch > tunlichst nicht herumschrauben Bernd K. schrieb: > es funktioniert dort nur nicht. Ja, und um das zu untersuchen hilft am besten ein richtiger Debugger. Bernd K. schrieb: > Wenn Du Dich mal kurz auf seine Fragestellung konzentrierst anstatt ihm > irgendein komplett anderes System anzupreisen Ich Preise nichts an, ich empfehle Dinge, aus eigener erfahrung heraus, weil ich den ganzen misst nämlich gerade selber mache! Und bei Fehlersuche hilft der Bootloader exakt gar nicht. Nicht ein bisschen. Das STM32F4 Board habe ich angemerkt weil es schon nur 1/3 von dem Due kostet, und den Programmer/Debugger, für den Atmel auch nochmal ~110Euro haben möschte, auch gleich noch mit drin hat. Gleichzeitig sind auch noch alle Pins rausgeführt, mehr speicher, mehr rechenleistung, blabla... ebenfalls findet man zum STM32 um ein vielfaches mehr Code-Beispiele als zum SAM3X. Kostentechisch also nur 15Euro gegen +150Euro. Ob da nun ein Cortex-M3 oder ein Cortex-M4 drauf ist, ob da nun Atmel oder ST draufsteht, ist völlig egal. Warum darf ich nicht auf eine Alternative hinweisen? Und ein freundliches: Kaj schrieb: > Wenn du das Geld fuer den Programmer sparen willst, und nicht zwingend > auf das Arduino-Board/Atmel Studio angewiesen bist, kann ich ein > STM32F4-Discovery-Board empfehlen. Da ist der Programmer gleich mit auf > dem Board drauf, und das ganze Teil kostet nur um die 16 Euronen und hat > auch nochmal mehr power als der Due. als "anpreisen" hinzustellen, finde ich schon hart grenzwertig. Bernd K. schrieb: > daß er das Kompilat offensichtlich > bereits ohne Probleme in den Controller schreiben kann, es funktioniert > dort nur nicht. Offenbar ist das ja wohl nicht so problemlos. Denn auch ich habe Probleme, wo kein Tool mekert, es aber trotzdem nicht auf anhieb Funktioniert. Und ja, mein Code funktioniert wunderbar, nur wird er nicht immer übernommen! Das sind zwei verschiedene Sachverhalte. Ich bin sehr wohl auf die Fragestellung eingegangen, was dir aber wohl entgangen ist! Kaj schrieb: > Ich programmiere meinen Due über Atmel Studio und den Atmel-ICE und habe > das "Problem", dass ich etwas flashe, die Änderungen aber nicht > ankommen, bzw. Breakpoints nicht anschlagen. Dann muss ich den Due > einmal vom PC trennen, wieder verbinden, dann klappts in der Regel auch. Oder um es für dich zu verdeutlichen: Ich flashe etwas,keine klagen von Atmel Studio oder der Arduino IDE/bossac, und es passiert nichts. Ist so ziemlich genau das selbe Problem wie: Detlef _a schrieb: > Ich kann das Programm übersetzen und produziere ein .bin file. Das kann > ich mit dem 'bossac' tool (???) auch in den Due transferieren, es gibt > keine Klagen. > > Allein: es passiert nix, nix blinkt, kein Schalten auf dem pin. Due einmal abziehen, wieder ran stöpseln, nochmal flashen, alles funktioniert bei mir. Ich hab Detlef erläutert wie ich es mache, und wie es bei mir funktioniert. Er hat sich dazu noch nicht weiter geäußert. So, wo bin ich jetzt nicht auf seine Frage eingegangen? Ja, richtig, mein vorgehen ist keine dauerhafte Lösung. Trotzdem hab ich damit schon mehr hilfestellung gegeben als du und auch noch eine alternative zu dem völlig überteuertem Arduino geliefert. Ebenso hab ich ihn auf stolpersteine hingewiesen. Kaj schrieb: > Und noch zwei kleine Tips, damit du nicht auch in die Probleme rennst, > sowie ich: > Du musst den Watch_Dog ausschalten, sonst resettet sich der Due alle 16 > - 18 sekunden. Wenn du das Arduinozeug benutzt, machen die Arduino-Libs > das für dich. > Atmel setzt über die LinkerScript die max. Stack-/Heapsize. Das musst du > ggf. anpassen. Die Stacksize wird von Atmel auf 1024Byte und die > Heapsize auf 512Byte gesetzt. Bernd K. schrieb: > Das Problem scheint mir eher mit seinem C code zusammenzuhängen. > > @Detlef: Poste man Deinen Code. Kaj schrieb: > Detlef _a schrieb: >> Allein: es passiert nix, nix blinkt, kein Schalten auf dem pin. >> Ich weiß, es ist was ganz blödes, aber was? > Zeig doch mal n bisschen Code, um auschließen zu können, das es am Code > liegt. Da ich das Problem auch mit einer leeren while(1)-schleife als programm nachvollziehen kann, wird das Arduino-Zeug da wieder irgendwelche Arduino-Magic (wie beim Watch_Dog) machen, muss man nur finden. Bernd K. schrieb: > Er hat also gar kein Problem mit einem nicht vorhandenen > Programmer Wo hab ich das behauptet? Bernd K. schrieb: > den braucht er nämlich gar nicht bei Devices wie seinem > Arduino die mit Bootloader betrieben werden. Richtig, zum Betreiben brauch man den Programmer nicht, zum flashen auch nicht zwangsläufig, aber spätestens beim Debuggen wirds ohne Hardware-Debugger dann doch interessant... Ja, richtig, geht auch alles ohne. Man kann wunderbar mittels uart debuggen. Ist nur halt immer die Frage nach Zeit/Kosten-Aufwand. Also, nochmal: Wo habe ich nicht versucht zu helfen? Und wo ist deine Hilfe?
Kaj schrieb: > Bernd K. schrieb: >> es funktioniert dort nur nicht. > Ja, und um das zu untersuchen hilft am besten ein richtiger Debugger. Genau. Ohne Lauterbach geht nix o_O
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.