Hallo, Ich suche eine Software um meinen Atmel ICE MKII unter Mac zu betreiben. Er soll einfach nur den Chip flashen, die Firmware ist schon bereit. Welche Software nutze ich da am besten? Bisher habe ich mit Virtualbox noch Windows aufgesetzt, aber das ist irgendwie ein wenig Overkill für so etwas simples. Grüße Peter
Dann wirst du mit dem JTAGICEmkII allerdings kein Glück haben – mit den Nachfolgern JTAGICE3 oder Atmel-ICE jedoch um so mehr, da sie mittlerweile allesamt problemlos unter OpenOCD angesprochen werden können, genauso wie das Atmel SAM-ICE (= Segger J-Link).
Okay, dann werde ich mir mal ein Atmel ICE besorgen. Dann also nur Open OCD installieren und es funktioniert? Werde ich gleich mal testen, vielen Dank!
Peter schrieb: > Dann also nur Open OCD installieren und es funktioniert? Naja, eine Konfigurationsdatei oder ein paar Konfigurationskommandos musst du ihm schon geben, denn woher soll er sonst wissen, welchen Controller und mit welchem wie auch immer angeschlossenen Programmer er überhaupt programmieren soll? Wenn du mehr Details gucken lässt über deinen Ziel-Controller, dann könnte man dir einen Vorschlag für solch eine Datei machen …
Ja, ich muss zugeben das man, wenn man den Thread hier so betrachtet, mir die Infos aus der Nase ziehen muss :) Also, ich möchte mit meinem Atmel ICE (das ich mir gerade besorgt habe), unter Mac 10.11.1, einen Atmel Sam 3E8E mit einer Firmware flashen die ich auf einem anderen Rechner fertig kompiliert habe (Das File ist also schon vorhanden). Vielen Dank, mit so viel Hilfe habe ich garnicht gerechnet. Grüße Peter
Dann probier' mal, das hier als $HOME/.openocd/openocd.cfg hinzulegen:
1 | adapter_khz 500 |
2 | interface cmsis-dap |
3 | source [find board/atmel_sam3s_ek.cfg] |
Müsste eigentlich funktionieren, habe allerdings schon lange keinen SAM3 mehr in den Fingern gehabt (nur SAM4, aber die sind sich recht ähnlich). Wenn du danach OpenOCD aufrufst, sollte es in einem Servermode starten und zum Controller eine Verbindung aufbauen. Wenn das geht, kann ich dir auch noch einen Shellscript geben, den man zum direkten Programmieren nehmen kann, oder du programmierst den Controller über "telnet localhost 4444" und das Kommando "program <dateiname>".
Hi Jörg! Tut mir leid das ich mich erst so spät melde, habe es gerade ausprobiert und es funktioniert soweit (er erkennt zumindest schon den Programmer). Nun bekomme ich folgendes wenn ich openocd starte:
1 | PetAir:.openocd peter$ openocd |
2 | Open On-Chip Debugger 0.9.0 (2015-11-15-05:39) |
3 | Licensed under GNU GPL v2 |
4 | For bug reports, read |
5 | http://openocd.org/doc/doxygen/bugs.html |
6 | adapter speed: 500 kHz |
7 | Info : only one transport option; autoselect 'swd' |
8 | adapter speed: 500 kHz |
9 | adapter_nsrst_delay: 100 |
10 | cortex_m reset_config sysresetreq |
11 | Info : CMSIS-DAP: SWD Supported |
12 | Info : CMSIS-DAP: JTAG Supported |
13 | Info : CMSIS-DAP: Interface Initialised (SWD) |
14 | Info : CMSIS-DAP: FW Version = 01.1C.0067 |
15 | Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 0 nTRST = 0 nRESET = 1 |
16 | Info : CMSIS-DAP: Interface ready |
17 | Info : clock speed 500 kHz |
18 | in procedure 'init' |
19 | in procedure 'ocd_bouncer' |
20 | |
21 | PetAir:.openocd peter$ |
Wie geht es nun weiter? :)
Edit: ähem, nö, da klappt noch was nicht! Das muss so (ungefähr) aussehen:
1 | Open On-Chip Debugger 0.9.0-dev-00363-g3dd4da9-dirty (2015-04-09-13:29) |
2 | Licensed under GNU GPL v2 |
3 | For bug reports, read |
4 | http://openocd.sourceforge.net/doc/doxygen/bugs.html |
5 | adapter speed: 500 kHz |
6 | Info : only one transport option; autoselect 'swd' |
7 | adapter speed: 500 kHz |
8 | adapter_nsrst_delay: 100 |
9 | cortex_m reset_config sysresetreq |
10 | Info : CMSIS-DAP: SWD Supported |
11 | Info : CMSIS-DAP: JTAG Supported |
12 | Info : CMSIS-DAP: Interface Initialised (SWD) |
13 | Info : CMSIS-DAP: FW Version = 01.16.0041 |
14 | Info : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1 |
15 | Info : CMSIS-DAP: Interface ready |
16 | Info : clock speed 500 kHz |
17 | Info : SWD IDCODE 0x2ba01477 |
18 | Info : sam4.cpu: hardware has 6 breakpoints, 4 watchpoints |
(Hier ist es ein SAM4.) Kabel auf die richtige Seite gesteckt? Steckerbelegung am Target OK? Erst, wenn das funktioniert (OpenOCD sitzt da und harrt der Dinge, die da kommen mögen), hier weiterlesen: ------------------------------- OK, jetzt kannst du da auf Port 3333 den GDB verbinden oder auf Port 4444 dich mit telnet draufsetzen und dann sagen:
1 | halt |
2 | flash write_image <myfile.elf> |
3 | reset run |
4 | exit |
Alternativ benutze ich sowas als Script:
1 | #!/bin/sh
|
2 | |
3 | if [ ! -f "$1" ] ; then |
4 | echo "Input file $1 not found" >&2 |
5 | exit 65
|
6 | fi
|
7 | |
8 | echo openocd -c 'gdb_port 9999; telnet_port 9998; tcl_port 9997; adapter_khz 500; interface cmsis-dap; source [find target/at91sam4sXX.cfg]; program '"$1"' reset exit' |
9 | openocd -c 'gdb_port 9999; telnet_port 9998; tcl_port 9997; adapter_khz 500; interface cmsis-dap; source [find target/at91sam4sXX.cfg]; program '"$1"' reset exit' |
Dann einfach aufrufen mit „scriptname myfile.elf“. Das Umsetzen der Ports am Beginn des Scripts verhindert Kollisionen mit einem eventuell noch separat laufenden OpenOCD-Prozess; wenn dir das sowieso nicht passieren kann, kannst du das auch weglassen. Man könnte die Portnummern auch noch zufällig auswürfeln, um mehrere Scripts parallel laufen zu lassen, aber dann musst du noch die Seriennummern der Atmel-ICEs mit angeben (OpenOCD-Kommando: „cmsis_dap_serial $nr“). Der reine Kommandomodus da oben ist vor allem wichtig, wenn man damit dann debuggen möchte. Und natürlich um zu sehen, dass alles klappt.
:
Bearbeitet durch Moderator
Es funktioniert! Vielen Dank :) Eine Frage noch, wie kann ich ein Script erstellen auf das ich einfach meine .elf Datei ziehen und es direkt geflahst wird? Mit Automator?
Peter schrieb: > Eine Frage noch, wie kann ich ein Script erstellen auf das ich einfach > meine .elf Datei ziehen und es direkt geflahst wird? Ich kenne mich mit OSX nicht aus, aber würde das denn mit dem oben genannten Shellscript nicht funktionieren?
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.