“This tutorial was extracted from Erich Styger blog https://community.freescale.com/docs/DOC-101790 with his agreement.”
This document explains how you can debug the FRDM-K22FFRDM-K22F board with the Segger J-Link OpenSDAv2.1 Firmware and the Kinetis Design Studio V1.1.0.
Applicable to:
- OpenSDAv2.1 boards (FRDM-K22FFRDM-K22F for now)
- Kinetis Design Studio V1.1.0
(Download link: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KDS_IDE&fpsp=1&tab=Design_Tools_Tab)
Outline
The FRDM-K22FFRDM-K22F board (FRDM-K22F|Freedom Development Board|Kinetis|Freescale) comes with OpenSDAv2.1 programmed on it, and has the CMSIS-DAP debug firmware on it by default.(see 'Technical Details' at the end about the OpenSDA differences)
OpenOCD with CMSIS-DAP for FRDM-K22F is not supported in KDS V1.1.0. Trying to debug the FRDM-K22F board with KDS V1.1.0 and OpenOCD/CMSIS-DAP results in an error in the Console View and is currently not possible, until OpenSDA gets updated (see Kinetis Design Studio V1.1.0: Release Notes and News).
One solution is to use the Segger J-Link OpenSDAv2.1 firmware to debug the board.(Another solution is to use the P&E Multilink OpenSDAv2.1 firmware, see FRDM-K22F: Debugging with P&E OpenSDAv2.1 Firmware)
Installation of Segger J-Link OpenSDA V2.1 Firmware
You need to install the Segger J-Link OpenSDAv2.1 firmware on the board, and you only need to do this once (unless you change the firmware again).
- Go to SEGGER - The Embedded Experts - OpenSDA / OpenSDA V2 and download the OpenSDA V2.1 firmware (zip file)
- Unzip the firmware file (JLink-OpenSDA_v2_1.bin) in the zip file to your harddisk.
- Power the board/Plug in the USB cable with the OpenSDA USB port, while having the Reset/SW1 pressed.
- The device should enumerate BOOTLOADER: device on your host. You are now in bootloader mode.
2. Copy the Segger .bin file to that BOOTLOADER device. Wait a few seconds to complete the operation.
3. Unplug the board, and now power it normally (without SW1 pressed)
4. The board should now show up as J-Link device and with a virtual COM port:
5. You are ready to use to debug the FRDM-K22F as if you would do with a Segger J-Link
Debugging with Segger J-Link OpenSDAv2.1
Create a new debug/launch configuration: Select your project, then use the menu Run > Debug Configurations.Use the 'new' Icon to create a new configuration for your application and project (Main tab):
Specify MK22FN512xxx12MK22FN512xxx12 as your device name, and make sure 'SWD' is selected:
Have SWO disabled:
That's it. Now you can debug your application with Segger J-Link OpenSDA V2.1 firmware on the board.You can use the 'Debug' button in the launch configuration:
Or use the debug icon drop-down list:
Technical Details
There are so far three versions of the OpenSDA available:
- OpenSDAv1.0: this one is on all the FRDM boards like FRDM-KL25Z, FRDM-KL26Z, FRDM-KL46Z, FRDM-K20, ... (prior FRDM-K64F). The bootloader on these boards is protected and cannot be erased and supports P&E, Segger and CMSIS-DAP debug applications (*.sda).
- OpenSDAv2.0: This version was released at FTF 2014 with the FRDM-K64F board. This is an open source bootloader, and the bootloader can be replaced by the user. It supports *.bin files and P&E, Segger and CMSIS-DAP debug applications.
- OpenSDAv2.1: This version is released with the FRDM-K22F board. It is the same as
The debug circuit on the board is the same for all OpenSDA versions (Kinetis K20 microcontroller): the difference is what bootloader is programmed on the K20: the bootloader on the OpenSDAv1.0 cannot be erased/changed. The bootloader on OpenSDAv2.x can be erased/changed, and the difference between the OpenSDAv2.0 and v2.1 is the address where the debug application starts: for OpenSDAv2.0 it expects the application at address 0x5000, while OpenSDAv2.1 expects the application to start at address 0x8000.