.. _nxp_opensda:

NXP OpenSDA
###########

Overview
********

`OpenSDA`_ is a serial and debug adapter that is built into several NXP
evaluation boards. It provides a bridge between your computer (or other USB
host) and the embedded target processor, which can be used for debugging, flash
programming, and serial communication, all over a simple USB cable.

The OpenSDA hardware features a Kinetis K2x microcontroller with an integrated
USB controller. On the software side, it implements a mass storage device
bootloader which offers a quick and easy way to load OpenSDA applications such
as flash programmers, run-control debug interfaces, serial to USB converters,
and more.

Zephyr supports the following debug tools through OpenSDA:

* :ref:`nxp_opensda_pyocd`
* :ref:`nxp_opensda_jlink`

.. _nxp_opensda_firmware:

Program the Firmware
====================

Once you've selected which debug tool you wish to use, you need to program the
associated OpenSDA firmware application to the OpenSDA adapter.

Put the OpenSDA adapter into bootloader mode by holding the reset button while
you power on the board. After you power on the board, release the reset button
and a USB mass storage device called **BOOTLOADER** or **MAINTENANCE** will
enumerate. Copy the OpenSDA firmware application binary to the USB mass storage
device. Power cycle the board, this time without holding the reset button.


.. _nxp_opensda_pyocd:

pyOCD
*****

pyOCD is an Open Source python 2.7 based library for programming and debugging
ARM Cortex-M microcontrollers using CMSIS-DAP.

Host Tools and Firmware
=======================

Follow the instructions in `pyOCD Installation`_ to install the pyOCD flash
tool and GDB server for your host computer.

Select your board in `OpenSDA`_ and download the latest DAPLink firmware
application binary. :ref:`nxp_opensda_firmware` with this application.

Flashing
========

Use the ``make flash`` build target to build your Zephyr application, invoke
the pyOCD flash tool and program your Zephyr application to flash.

  .. code-block:: console

     $ make FLASH_SCRIPT=pyocd.sh flash
     Using /home/maureen/zephyr/boards/arm/frdm_k64f/frdm_k64f_defconfig as base
     Merging /home/maureen/zephyr/tests/include/test.config
     Merging /home/maureen/zephyr/kernel/configs/kernel.config
     Merging prj.conf
     #
     # configuration written to .config
     #
     make[1]: Entering directory '/home/maureen/zephyr'
     make[2]: Entering directory '/home/maureen/zephyr/samples/hello_world/outdir/frdm_k64f'
       GEN     ./Makefile
     scripts/kconfig/conf --silentoldconfig Kconfig
       Using /home/maureen/zephyr as source for kernel
       GEN     ./Makefile
       CHK     include/generated/version.h
       UPD     include/generated/version.h
       DTC     dts/arm/frdm_k64f.dts_compiled
       CHK     include/generated/generated_dts_board.h
       UPD     include/generated/generated_dts_board.h
       CHK     misc/generated/configs.c
       UPD     misc/generated/configs.c
       CHK     include/generated/offsets.h
       UPD     include/generated/offsets.h
       CC      lib/libc/minimal/source/stdlib/strtol.o

     <snip>

       CC      kernel/work_q.o
       AR      kernel/lib.a
       CC      src/main.o
       LD      src/built-in.o
       AR      libzephyr.a
       LINK    zephyr.lnk
       IRQ     isr_tables.c
       CC      isr_tables.o
       LINK    zephyr.elf
       BIN     zephyr.bin
     Flashing frdm_k64f
     Flashing Target Device
     INFO:root:DAP SWD MODE initialised
     INFO:root:K64F not in secure state
     INFO:root:ROM table #0 @ 0xe00ff000 cidr=b105100d pidr=4000bb4c4
     INFO:root:[0]<e000e000:SCS-M4 cidr=b105e00d, pidr=4000bb00c, class=14>
     WARNING:root:Invalid coresight component, cidr=0x0
     INFO:root:[1]<e0001000: cidr=0, pidr=0, component invalid>
     INFO:root:[2]<e0002000:FPB cidr=b105e00d, pidr=4002bb003, class=14>
     WARNING:root:Invalid coresight component, cidr=0x1010101
     INFO:root:[3]<e0000000: cidr=1010101, pidr=101010101010101, component invalid>
     WARNING:root:Invalid coresight component, cidr=0x0
     INFO:root:[4]<e0040000: cidr=0, pidr=0, component invalid>
     INFO:root:[5]<e0041000:ETM-M4 cidr=b105900d, pidr=4000bb925, class=9, devtype=13, devid=0>
     INFO:root:[6]<e0042000:ETB cidr=b105900d, pidr=4003bb907, class=9, devtype=21, devid=0>
     INFO:root:[7]<e0043000:CSTF cidr=b105900d, pidr=4001bb908, class=9, devtype=12, devid=28>
     INFO:root:CPU core is Cortex-M4
     INFO:root:FPU present
     INFO:root:6 hardware breakpoints, 4 literal comparators
     INFO:root:4 hardware watchpoints
     [====================] 100%
     INFO:root:Programmed 12288 bytes (3 pages) at 10.57 kB/s
     make[2]: Leaving directory '/home/maureen/zephyr/samples/hello_world/outdir/frdm_k64f'
     make[1]: Leaving directory '/home/maureen/zephyr'


Debugging
=========

Use the ``make debug`` build target to build your Zephyr application, invoke
the pyOCD GDB server, attach a GDB client, and program your Zephyr application
to flash. It will leave you at a gdb prompt.

  .. code-block:: console

     $ make DEBUG_SCRIPT=pyocd.sh debug
     Using /home/maureen/zephyr/boards/arm/frdm_k64f/frdm_k64f_defconfig as base
     Merging /home/maureen/zephyr/tests/include/test.config
     Merging /home/maureen/zephyr/kernel/configs/kernel.config
     Merging prj.conf
     #
     # configuration written to .config
     #
     make[1]: Entering directory '/home/maureen/zephyr'
     make[2]: Entering directory '/home/maureen/zephyr/samples/hello_world/outdir/frdm_k64f'
       GEN     ./Makefile
     scripts/kconfig/conf --silentoldconfig Kconfig
       Using /home/maureen/zephyr as source for kernel
       GEN     ./Makefile
       CHK     include/generated/version.h
       UPD     include/generated/version.h
       DTC     dts/arm/frdm_k64f.dts_compiled
       CHK     include/generated/generated_dts_board.h
       UPD     include/generated/generated_dts_board.h
       CHK     misc/generated/configs.c
       UPD     misc/generated/configs.c
       CHK     include/generated/offsets.h
       UPD     include/generated/offsets.h
       CC      lib/libc/minimal/source/stdlib/strtol.o

     <snip>

       CC      kernel/work_q.o
       AR      kernel/lib.a
       CC      src/main.o
       LD      src/built-in.o
       AR      libzephyr.a
       LINK    zephyr.lnk
       IRQ     isr_tables.c
       CC      isr_tables.o
       LINK    zephyr.elf
       BIN     zephyr.bin
     pyOCD GDB server running on port 3333
     GNU gdb (GDB) 7.11.0.20160511-git
     Copyright (C) 2016 Free Software Foundation, Inc.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     This is free software: you are free to change and redistribute it.
     There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
     and "show warranty" for details.
     This GDB was configured as "--host=x86_64-pokysdk-linux --target=arm-zephyr-eabi".
     Type "show configuration" for configuration details.
     For bug reporting instructions, please see:
     <http://www.gnu.org/software/gdb/bugs/>.
     Find the GDB manual and other documentation resources online at:
     <http://www.gnu.org/software/gdb/documentation/>.
     For help, type "help".
     Type "apropos word" to search for commands related to "word"...
     Reading symbols from /home/maureen/zephyr/samples/hello_world/outdir/frdm_k64f/zephyr.elf...done.
     INFO:root:DAP SWD MODE initialised
     INFO:root:K64F not in secure state
     INFO:root:ROM table #0 @ 0xe00ff000 cidr=b105100d pidr=4000bb4c4
     INFO:root:[0]<e000e000:SCS-M4 cidr=b105e00d, pidr=4000bb00c, class=14>
     WARNING:root:Invalid coresight component, cidr=0x0
     INFO:root:[1]<e0001000: cidr=0, pidr=0, component invalid>
     INFO:root:[2]<e0002000:FPB cidr=b105e00d, pidr=4002bb003, class=14>
     WARNING:root:Invalid coresight component, cidr=0x1010101
     INFO:root:[3]<e0000000: cidr=1010101, pidr=101010101010101, component invalid>
     WARNING:root:Invalid coresight component, cidr=0x0
     INFO:root:[4]<e0040000: cidr=0, pidr=0, component invalid>
     INFO:root:[5]<e0041000:ETM-M4 cidr=b105900d, pidr=4000bb925, class=9, devtype=13, devid=0>
     INFO:root:[6]<e0042000:ETB cidr=b105900d, pidr=4003bb907, class=9, devtype=21, devid=0>
     INFO:root:[7]<e0043000:CSTF cidr=b105900d, pidr=4001bb908, class=9, devtype=12, devid=28>
     INFO:root:CPU core is Cortex-M4
     INFO:root:FPU present
     INFO:root:6 hardware breakpoints, 4 literal comparators
     INFO:root:4 hardware watchpoints
     INFO:root:Telnet: server started on port 4444
     INFO:root:GDB server started at port:3333
     Remote debugging using :3333
     INFO:root:One client connected!
     k_cpu_idle () at /home/maureen/zephyr/arch/arm/core/cpu_idle.S:135
     135		bx lr
     Loading section text, size 0x233e lma 0x0
     Loading section devconfig, size 0xa8 lma 0x2340
     Loading section rodata, size 0x5d4 lma 0x23e8
     Loading section datas, size 0x14 lma 0x29bc
     Loading section initlevel, size 0xa8 lma 0x29d0
     [====================] 100%
     INFO:root:Programmed 45056 bytes (3 pages) at 38.21 kB/s
     Start address 0x1b64, load size 10870
     Transfer rate: 9 KB/sec, 1207 bytes/write.
     (gdb)


.. _nxp_opensda_jlink:

Segger J-Link
*************

Segger offers firmware running on the OpenSDA platform which makes OpenSDA
compatible to J-Link Lite, allowing users to take advantage of most J-Link
features like the ultra fast flash download and debugging speed or the
free-to-use GDB Server, by using a low-cost OpenSDA platform for developing on
evaluation boards.

Host Tools and Firmware
=======================

Download and install the `Segger J-Link Software and Documentation Pack`_ to
get the J-Link GDB server for your host computer.

Select your board in `OpenSDA`_ and download the Segger J-Link firmware
application binary. :ref:`nxp_opensda_firmware` with this application.

Flashing
========

The Segger J-Link firmware does not support command line flashing, therefore
the ``make flash`` build target is not supported.

Debugging
=========

Use the ``make debug`` build target to build your Zephyr application, invoke
the J-Link GDB server, attach a GDB client, and program your Zephyr application
to flash. It will leave you at a gdb prompt.

  .. code-block:: console

     $ make DEBUG_SCRIPT=jlink.sh debug
     Using /home/maureen/zephyr/boards/arm/frdm_k64f/frdm_k64f_defconfig as base
     Merging /home/maureen/zephyr/tests/include/test.config
     Merging /home/maureen/zephyr/kernel/configs/kernel.config
     Merging prj.conf
     #
     # configuration written to .config
     #
     make[1]: Entering directory '/home/maureen/zephyr'
     make[2]: Entering directory '/home/maureen/zephyr/samples/hello_world/outdir/frdm_k64f'
       GEN     ./Makefile
     scripts/kconfig/conf --silentoldconfig Kconfig
       Using /home/maureen/zephyr as source for kernel
       GEN     ./Makefile
       CHK     include/generated/version.h
       UPD     include/generated/version.h
       DTC     dts/arm/frdm_k64f.dts_compiled
       CHK     include/generated/generated_dts_board.h
       UPD     include/generated/generated_dts_board.h
       CHK     misc/generated/configs.c
       UPD     misc/generated/configs.c
       CHK     include/generated/offsets.h
       UPD     include/generated/offsets.h
       CC      lib/libc/minimal/source/stdlib/strtol.o

     <snip>

       CC      kernel/work_q.o
       AR      kernel/lib.a
       CC      src/main.o
       LD      src/built-in.o
       AR      libzephyr.a
       LINK    zephyr.lnk
       IRQ     isr_tables.c
       CC      isr_tables.o
       LINK    zephyr.elf
       BIN     zephyr.bin
     JLink GDB server running on port 2331
     SEGGER J-Link GDB Server V6.14b Command Line Version

     JLinkARM.dll V6.14b (DLL compiled Mar  9 2017 08:48:20)

     -----GDB Server start settings-----
     GDBInit file:                  none
     GDB Server Listening port:     2331
     SWO raw output listening port: 2332
     Terminal I/O port:             2333
     Accept remote connection:      yes
     Generate logfile:              off
     Verify download:               off
     Init regs on start:            off
     Silent mode:                   off
     Single run mode:               on
     Target connection timeout:     0 ms
     ------J-Link related settings------
     J-Link Host interface:         USB
     J-Link script:                 none
     J-Link settings file:          none
     ------Target related settings------
     Target device:                 MK64FN1M0xxx12
     Target interface:              SWD
     Target interface speed:        1000kHz
     Target endian:                 little

     Connecting to J-Link...
     GNU gdb (GDB) 7.11.0.20160511-git
     Copyright (C) 2016 Free Software Foundation, Inc.
     License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
     This is free software: you are free to change and redistribute it.
     There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
     and "show warranty" for details.
     This GDB was configured as "--host=x86_64-pokysdk-linux --target=arm-zephyr-eabi".
     Type "show configuration" for configuration details.
     For bug reporting instructions, please see:
     <http://www.gnu.org/software/gdb/bugs/>.
     Find the GDB manual and other documentation resources online at:
     <http://www.gnu.org/software/gdb/documentation/>.
     For help, type "help".
     Type "apropos word" to search for commands related to "word"...
     Reading symbols from /home/maureen/zephyr/samples/hello_world/outdir/frdm_k64f/zephyr.elf...done.
     J-Link is connected.
     Firmware: J-Link OpenSDA 2 compiled Feb 28 2017 19:27:57
     Hardware: V1.00
     S/N: 621000000
     Checking target voltage...
     Target voltage: 3.30 V
     Listening on TCP/IP port 2331
     Connecting to target...Connected to target
     Waiting for GDB connection...Remote debugging using :2331
     Connected to 127.0.0.1
     Reading all registers
     Read 4 bytes @ address 0x00001A04 (Data = 0xBF004770)
     Read 2 bytes @ address 0x000019FC (Data = 0x4040)
     Read 2 bytes @ address 0x000019FE (Data = 0xF380)
     Read 2 bytes @ address 0x00001A00 (Data = 0x8811)
     Read 2 bytes @ address 0x00001A02 (Data = 0xBF30)
     k_cpu_idle () at /home/maureen/zephyr/arch/arm/core/cpu_idle.S:135
     135		bx lr
     Halting target CPU...
     ...Target halted (PC = 0x00001A04)
     Loading section text, size 0x233e lma 0x0
     Downloading 4096 bytes @ address 0x00000000
     Downloading 4096 bytes @ address 0x00001000
     Downloading 830 bytes @ address 0x00002000
     Loading section devconfig, size 0xa8 lma 0x2340
     Downloading 168 bytes @ address 0x00002340
     Loading section rodata, size 0x5d4 lma 0x23e8
     Downloading 1492 bytes @ address 0x000023E8
     Loading section datas, size 0x14 lma 0x29bc
     Downloading 20 bytes @ address 0x000029BC
     Loading section initlevel, size 0xa8 lma 0x29d0
     Downloading 168 bytes @ address 0x000029D0
     Start address 0x1b64, load size 10870
     Writing register (PC = 0x641b0000)
     Transfer rate: 5307 KB/sec, 1552 bytes/write.
     Read 4 bytes @ address 0x00001B64 (Data = 0xF3802010)
     Resetting target
     Resetting target
     (gdb)


Console
=======

If you configured your Zephyr application to use a UART console (most boards
enable this by default), open a serial terminal (minicom, putty, etc.) with the
following settings:

   - Speed: 115200
   - Data: 8 bits
   - Parity: None
   - Stop bits: 1

If you configured your Zephyr application to use `Segger RTT`_ console instead,
open telnet:

  .. code-block:: console

     $ telnet localhost 19021
     Trying 127.0.0.1...
     Connected to localhost.
     Escape character is '^]'.
     SEGGER J-Link V6.14b - Real time terminal output
     J-Link OpenSDA 2 compiled Feb 28 2017 19:27:57 V1.0, SN=621000000
     Process: JLinkGDBServer


.. _OpenSDA:
   http://www.nxp.com/opensda

.. _Segger J-Link OpenSDA:
   https://www.segger.com/opensda.html

.. _Segger J-Link Software and Documentation Pack:
   https://www.segger.com/downloads/jlink

.. _Segger RTT:
    https://www.segger.com/jlink-rtt.html

.. _pyOCD Installation:
   https://github.com/mbedmicro/pyOCD#installation
