Forum: Compiler & IDEs Software flashen Atmel ICE mk ii unter mac


von Peter (Gast)


Lesenswert?

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

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


Lesenswert?

AVRDUDE sollte auch unter OSX funktionieren.

von Peter (Gast)


Lesenswert?

Ach stimmt, habe vergessen zu erwähnen das ich ARM Prozessoren Flaschen 
will :)

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


Lesenswert?

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).

von Peter (Gast)


Lesenswert?

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!

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


Lesenswert?

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 …

von Peter (Gast)


Lesenswert?

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

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


Lesenswert?

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>".

von Peter (Gast)


Lesenswert?

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? :)

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


Lesenswert?

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
von Peter (Gast)


Lesenswert?

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?

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


Lesenswert?

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
Noch kein Account? Hier anmelden.