Kurzum: Das Flashen der OpenSDA-Firmware über den Bootloader-Modus des FRDM-KL25Z und FRDM-KL26Z ging unter Windows 8.0 noch problemlos, ist nach dem Update auf Windows 8.1 allerdings schlichtweg nicht mehr möglich.
Jeder Versuch, es dennoch zu probieren, endet wahlweise in einem wirren Geflackere der Status-LED (8x kurz, 2 Sekunden Pause) oder abgebrochenen Dateitransfers seitens Windows. Der Versuch, es mittels einer älteren Windows-Version in einer VM wie VirtualBox mittels USB-Capturing zu beheben funktioniert tragischerweise genausowenig wie wildes Aufstampfen und furioses Armgewedel unter grimmigem Gegucke — ich habe beides ausgiebig probiert.
Was mir letztlich Satisfaktion verschaffte, war der Umstand, auf dem Laptop noch ein dualgebootetes Ubuntu zu besitzen. Nach Anschluss des Gerätes im Bootloader-Modus (Reset-Button halten beim Verbinden mit USB — den vom Board, freilich) meldet lsusb
sinngemäß folgendes:
sunside@aquitaine:~$ lsusb Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 008: ID 2504:0200 Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 002: ID 0483:2016 STMicroelectronics Fingerprint Reader Bus 003 Device 003: ID 0a5c:2110 Broadcom Corp. BCM2045B (BDC-2) [Bluetooth Controller] Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bei dem Gerät mit der ID 2504:0200
handelt es sich um das gewünschte OpenSDA-Device. dmesg
gibt ebenfalls Aufschluss über das neue Gerät und signalisiert seine (wenngleich etwas holperige) Ankunft unter /dev/sdb
.
sunside@aquitaine:~$ dmesg [ 2178.532100] usb 5-2: new full-speed USB device number 10 using uhci_hcd [ 2178.703183] usb 5-2: New USB device found, idVendor=2504, idProduct=0200 [ 2178.703193] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2178.703201] usb 5-2: Product: OpenSDA MSD APP [ 2178.703207] usb 5-2: Manufacturer: FREESCALE SEMICONDUCTOR INC. [ 2178.703213] usb 5-2: SerialNumber: 0123456789ABCDEF [ 2178.706301] usb-storage 5-2:1.0: USB Mass Storage device detected [ 2178.706467] scsi11 : usb-storage 5-2:1.0 [ 2179.709257] scsi 11:0:0:0: Direct-Access FSL FSL/PEMICRO MSD 0001 PQ: 0 ANSI: 4 [ 2179.709869] sd 11:0:0:0: Attached scsi generic sg2 type 0 [ 2179.718217] sd 11:0:0:0: [sdb] 1983999 512-byte logical blocks: (1.01 GB/968 MiB) [ 2179.721525] sd 11:0:0:0: [sdb] Write Protect is off [ 2179.721531] sd 11:0:0:0: [sdb] Mode Sense: 00 00 00 00 [ 2179.724171] sd 11:0:0:0: [sdb] Asking for cache data failed [ 2179.724183] sd 11:0:0:0: [sdb] Assuming drive cache: write through [ 2179.742182] sd 11:0:0:0: [sdb] Asking for cache data failed [ 2179.742187] sd 11:0:0:0: [sdb] Assuming drive cache: write through [ 2179.766202] sdb: [ 2179.783187] sd 11:0:0:0: [sdb] Asking for cache data failed [ 2179.783193] sd 11:0:0:0: [sdb] Assuming drive cache: write through [ 2179.783197] sd 11:0:0:0: [sdb] Attached SCSI removable disk
Man kann das Laufwerk nun mittels mount -t vfat
mounten und den Erfolg überprüfen:
sunside@aquitaine:~$ sudo mount -t vfat /dev/sdb /mnt sunside@aquitaine:~$ ls -lisa /mnt insgesamt 84 1 16 drwxr-xr-x 2 root root 16384 Jan 1 1970 . 2 4 drwxr-xr-x 23 root root 4096 Nov 21 02:12 .. 102 16 -r-xr-xr-x 1 root root 512 Aug 8 2012 FSL_WEB.HTM 100 16 -r-xr-xr-x 1 root root 68 Aug 8 2012 LASTSTAT.TXT 101 16 -r-xr-xr-x 1 root root 1536 Aug 8 2012 SDA_INFO.HTM 103 16 -r-xr-xr-x 1 root root 512 Aug 8 2012 TOOLS.HTM
Dazu ist zu erwähnen, dass der Mountvorgang nach meinem letzten Experiment unter Windows unnatürlich lange dauerte — wir reden hier über Minuten.
Ein initialer Check des Status sollte vermelden, dass das Gerät aufnahmebereit ist:
sunside@aquitaine:~$ cat /mnt/LASTSTAT.TXT Ready.
und dann besteht der wesentliche Rest auch nur im Kopieren der OpenSDA-Applikation in das Zielverzeichnis. Etwa so:
sunside@aquitaine:~$ sudo cp JLink_OpenSDA.sda /mnt sunside@aquitaine:~$ ls -lisa /mnt insgesamt 164 1 16 drwxr-xr-x 2 root root 16384 Nov 22 01:42 . 2 4 drwxr-xr-x 23 root root 4096 Nov 21 02:12 .. 102 16 -r-xr-xr-x 1 root root 512 Aug 8 2012 FSL_WEB.HTM 104 80 -rwxr-xr-x 1 root root 70443 Nov 22 01:42 JLink_OpenSDA.sda 100 16 -r-xr-xr-x 1 root root 68 Aug 8 2012 LASTSTAT.TXT 101 16 -r-xr-xr-x 1 root root 1536 Aug 8 2012 SDA_INFO.HTM 103 16 -r-xr-xr-x 1 root root 512 Aug 8 2012 TOOLS.HTM
sowie der Überprüfung des Ergebnisses:
sunside@aquitaine:~$ cat /mnt/LASTSTAT.TXT Completed.
Schlussendlich das Laufwerk noch über umount
auswerfen
sunside@aquitaine:~$ sudo umount /mnt
und nach dem Neuverbinden (ohne Reset!) das Ergebnis (in diesem Fall 1366:0101 SEGGER J-Link ARM
bewundern:
sunside@aquitaine:~$ lsusb Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 011: ID 1366:0101 SEGGER J-Link ARM Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 002: ID 0483:2016 STMicroelectronics Fingerprint Reader Bus 003 Device 003: ID 0a5c:2110 Broadcom Corp. BCM2045B (BDC-2) [Bluetooth Controller] Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Analog dmesg
:
sunside@aquitaine:~$ dmesg [ 2637.380139] usb 5-2: USB disconnect, device number 10 [ 2638.312070] usb 5-2: new full-speed USB device number 11 using uhci_hcd [ 2638.479164] usb 5-2: New USB device found, idVendor=1366, idProduct=0101 [ 2638.479176] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2638.479183] usb 5-2: Product: J-Link [ 2638.479189] usb 5-2: Manufacturer: SEGGER [ 2638.479195] usb 5-2: SerialNumber: 000621000000
Alle glücklich.
Es bleibt anzumerken, dass die Segger J-LINK/OpenSDA-Nummer ein ganz vorzügliches Stückchen Software insbesondere unter Verwendung des unlimited breakpoints-Features ist. Diese funktionieren im Moment wohl mit CodeWarrior nicht, mit VisualGDB aber sehr wohl — sehr zu meiner Zufriedenheit.
Vom FTDI/UART/CDC-Gedaddel über OpenSDA mit der Segger-Variante darf man sich zur Zeit allerdings verabschieden, das funktioniert nicht. Für frisch verliebte wie mich: Regen -> Traufe.
Aber man war dabei.
Post scriptum
Wer die P&E Microcomputer Debug OpenSDA-Applikation (DEBUG-APP_Pemicro_v108.SDA
o.ä.) flasht, findet Ergebnisse wie
sunside@aquitaine:~$ lsusb Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 013: ID 1357:0089 P&E Microcomputer Systems Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 002: ID 0483:2016 STMicroelectronics Fingerprint Reader Bus 003 Device 003: ID 0a5c:2110 Broadcom Corp. BCM2045B (BDC-2) [Bluetooth Controller] Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
und
sunside@aquitaine:~$ dmesg | tail [ 3015.141218] sd 12:0:0:0: [sdb] Attached SCSI removable disk [ 3346.412156] usb 5-2: USB disconnect, device number 12 [ 3347.768119] usb 5-2: new full-speed USB device number 13 using uhci_hcd [ 3347.950185] usb 5-2: New USB device found, idVendor=1357, idProduct=0089 [ 3347.950195] usb 5-2: New USB device strings: Mfr=1, Product=3, SerialNumber=5 [ 3347.950202] usb 5-2: Product: OpenSDA Hardware [ 3347.950208] usb 5-2: Manufacturer: P&E Microcomputer Systems Inc. [ 3347.950214] usb 5-2: SerialNumber: SDADBB27E5D [ 3347.953292] cdc_acm 5-2:1.0: This device cannot do calls on its own. It is not a modem. [ 3347.953332] cdc_acm 5-2:1.0: ttyACM0: USB ACM device
… vor.