Software flashen Atmel ICE mk ii unter mac

Gast #4345127
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
Moderator Persönliche Seite #4345388
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 …
Gast #4345492
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
Moderator Persönliche Seite #4345498
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>".
Gast #4366734
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? :)
Moderator Persönliche Seite #4366793
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.

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