1
Plug It In2
Get Software3
Build, RunSign in to save your progress. Don't have an account? Create one.
Board Information
OpenSDA is a serial and debug adapter circuit that runs on a Kinetis K20 device built into many NXP development boards.
It allows users to download and debug programs onto the target K64F chip using only a USB cable.
Some FRDM-K64F boards may contain older OpenSDA firmware that is incompatible with Windows 10 due to changes made in how Windows handles Mass Storage Devices. This can potentially corrupt older versions of the OpenSDA firmware found on those FRDM-K64F boards.
The vast majority of FRDM-K64F boards currently being shipped from distributors will already have updated firmware that is not affected, but some older inventory may still contain the outdated firmware.
To ensure proper operation of the FRDM-K64F with Windows 10, disable Storage Services on your Windows 10 computer before plugging it in the first time and update the OpenSDA firmware if needed:
If you do not see any drive enumerate at all when plugging in the board in Step #6, the OpenSDA firmware may have been corrupted by Windows. The only way to fix this is to reprogram the K20 chip that the OpenSDA firmware runs on using an external debug tool. Instructions for this process can be found in this OpenSDA Community post.
Something went wrong! Please try again.
Let's take your FRDM-K64F for a test drive! You have the choice of watching the sequence in a short video or following the detailed actions list below.
Diagnostic Test Release 201909XX
CPU: NXP S32G
Board: S32G274A Board
MC_CGM_0 Clock Mux 0 -> XBAR_CLK (Core Clock)
CORE_DFS_1 Clock -> MC_CGM_0 Clock Mux 0
CORE_VCO Clock -> CORE_DFS_1 Clock
FXOSC -> CORE_VCO Clock
FXOSC: 40000000Hz
CORE_VCO Clock: 2000000000Hz
CORE_DFS Clock: 1000000000Hz
XBAR_CLK: 500000000Hz
Something went wrong! Please try again.
Diagnostic Test Release 201909XX
CPU: NXP S32G
Board: S32G274A Board
MC_CGM_0 Clock Mux 0 -> XBAR_CLK (Core Clock)
CORE_DFS_1 Clock -> MC_CGM_0 Clock Mux 0
CORE_VCO Clock -> CORE_DFS_1 Clock
FXOSC -> CORE_VCO Clock
FXOSC: 40000000Hz
CORE_VCO Clock: 2000000000Hz
CORE_DFS Clock: 1000000000Hz
XBAR_CLK: 500000000Hz
Something went wrong! Please try again.
Your FRDM-K64F comes loaded with a "bubble level" demo that leverages the onboard accelerometer. When the board is flat, the RGB LED is turned off and when the board is tilted, the red or blue LEDs gradually illuminate based on the degree of tilt on the X- and Y-axis.
Something went wrong! Please try again.
Choose a Development Path
Something went wrong! Please try again.
Click below to download a preconfigured SDK release for the FRDM-K64F. Learn about SDK.
The MCUXpresso SDK is complimentary and includes full source code under a permissive open source license for all hardware abstraction and peripheral driver software.
Something went wrong! Please try again.
Build and Run SDK Demos on the FRDM-K64F
The MCUXpresso SDK comes with a long list of example applications code. To see what's available, browse to the SDK boards folder of your SDK installation and select your board, the FRDM-K64F <SDK_Install_Directory>/boards/frdmk64f.
To learn more about specific example code, open the readme.txt file in an example's directory.
Something went wrong! Please try again.
If one or more of the demo applications or driver examples sounds interesting, you're probably wanting to know how you can build and debug yourself. The Getting Started with MCUXpresso SDK guide provides easy, step-by-step instructions on how to configure, build and debug demos for all toolchains supported by the SDK.
Use the guide below to learn how to open, build and debug an example application using the MCUXpresso IDE.



The following steps will guide you through opening the hello_world example.
Find the Quickstart Panel in the lower left-hand corner
Then click on Import SDK examples(s)…
Click on the frdmk64f board to select that you want to import an example that can run on that board and then click on Next
Use the arrow button to expand the demo_apps category and then click the checkbox next to hello_world to select that project. To use the UART for printing (instead of the default semihosting), clear the “Enable semihost” checkbox under the project options. Then, click on Next
On the Advanced Settings wizard, clear the checkbox “Redirect SDK “PRINTF” to C library “printf”“ in order to use the MCUXpresso SDK console functions for printing instead of generic C library ones. Then click on Finish
Now build the project by clicking on the project name and then click on the Build icon
You can see the status of the build in the Console tab
frdmk64f_demo_apps_hello_world' [Debug] 
MCUXpresso IDE will probe for connected boards and should find the MBED CMSIS-DAP debug probe that is part of the integrated OpenSDA circuit on the FRDM-K64F. Click on OK to continue
The firmware will be downloaded to the board and the debugger started
Open up a terminal program and connect to the COM port the board counted as. Use 115,200 baud 8 data bits, no parity and 1 stop bit
Start the application by clicking the "Resume" button:
The hello_world application is now running and a banner is displayed on the terminal. If this is not the case, check your terminal settings and connections
Use the controls in the menu bar to pause, step into and step over instructions and then stop the debugging session by click on the Terminate icon:
The following steps will guide you through opening the hello_world application. These steps may change slightly for other example applications as some of these applications may have additional layers of folders in their path.
If not already done, open the desired example application workspace. Most example application workspace files can be located using the following path:
<install_dir>/boards/<sdk_board_name>/<example_type>/<application_name>/iar Using the hello_world demo as an example, the path is:
<install_dir>/boards/frdmk64f/demo_apps/hello_world/iar Select the desired build target from the drop-down. For this example, select the “hello_world - Debug” target
To build the application, click the “Make” button, highlighted in red below
The build will complete without errors:
The FRDM-K64F board comes loaded with the mbed/CMSIS-DAP debug interface from the factory. If you have changed the debug OpenSDA application on your board, visit Open SDA for information on updating or restoring your board to the factory state.
Connect the development platform to your PC via USB cable between the "SDAUSB" USB port on the board and the PC USB connector
Click the "Download and Debug" button to download the application to the target
The application is then downloaded to the target and automatically runs to the main() function
Run the code by clicking the "Go" button to start the application
hello_world application is now running and a banner is displayed on the terminal. If this is not the case, check your terminal settings and connections 
After the MDK tools are installed, Cortex® Microcontroller Software Interface Standard (CMSIS) device packs must be installed to fully support the device from a debug perspective. These packs include things such as memory map information, register definitions and flash programming algorithms. Follow these steps to install the appropriate CMSIS pack.


The following steps will guide you through opening the hello_world application. These steps may change slightly for other example applications as some of these applications may have additional layers of folders in their path.
If not already done, open the desired demo application workspace in:
<install_dir>/boards/<sdk_board_name>/<example_type>/<application_name>/mdk The workspace file is named <application_name>.uvmpw, so for this specific example, the actual path is:
<install_dir>/boards/frdmk64f/demo_apps/hello_world/mdk/hello_world.uvmpw 
The FRDM-K64F board comes loaded with the mbed/CMSIS-DAP debug interface from the factory. If you have changed the debug OpenSDA application on your board, visit OpenSDA for information on updating or restoring your board to the factory state.



hello_world application is now running and a banner is displayed on the terminal. If this is not the case, check your terminal settings and connections 
This section contains the steps to install the necessary components required to build and run a KSDK demo application with the Arm GCC toolchain, as supported by the Kinetis SDK. There are many ways to use Arm GCC tools, but this example focuses on a Windows environment. Though not discussed here, GCC tools can also be used with both Linux OS and Mac OSX.
Download and run the installer from GNU Arm Embedded Toolchain . This is the actual toolchain (i.e., compiler, linker, etc.). The GCC toolchain should correspond to the latest supported version, as described in the Kinetis SDK Release Notes.
The Minimalist GNU for Windows (MinGW) development tools provide a set of tools that are not dependent on third-party C-Runtime DLLs (such as Cygwin). The build environment used by the KSDK does not use the MinGW build tools, but does leverage the base install of both MinGW and MSYS. MSYS provides a basic shell with a Unix-like interface and tools.
C:\MinGW, however, you may install to any locationNote: The installation path cannot contain any spaces.
mingw32-base" and "msys-base" are selected under Basic Setup 

Add the appropriate item to the Windows operating system Path environment variable. It can be found under Control Panel → System and Security → System → Advanced System Settings in the "Environment Variables..." section. The path is:
<mingw_install_dir>\bin
Assuming the default installation path, C:\MinGW, an example is shown below. If the path is not set correctly, the toolchain does not work.
Note: If you have "C:\MinGW\msys\x.x\bin" in your PATH variable (as required by KSDK 1.0.0), remove it to ensure that the new GCC build system works correctly.
Create a new system environment variable and name it ARMGCC_DIR. The value of this variable should point to the Arm GCC Embedded tool chain installation path, which, for this example, is:
C:\Program Files (x86)\GNU Tools Arm Embedded\4.9 2015q3
Reference the installation folder of the GNU Arm GCC Embedded tools for the exact pathname of your installation.
Download CMake 3.0.x from CMake
Install CMake, ensuring that the option "Add CMake to system PATH" is selected when installing. It's up to the user to select whether it's installed into the PATH for all users or just the current user. In this example, the assumption is that it's installed for all users
Follow the remaining instructions of the installer
You may need to reboot your system for the PATH changes to take effect
To build an example application, follow these steps.

Change the directory to the example application project directory, which has a path like this:
<install_dir>/boards/<board_name>/<example_type>/<application_name>/armgcc For this guide, the exact path is:
<install_dir>/boards/frdmk64f/demo_apps/hello_world/armgcc build_debug.bat” on the command line or double click on the "build_debug.bat" file in Windows operating system Explorer to perform the build. The output is shown in this figure: 
The GCC tools require a J-Link debug interface. To update the OpenSDA firmware on your board to the latest J-Link app, visit OpenSDA. After installing the J-Link OpenSDA application, download the J-Link driver and software package from Segger



Change to the directory that contains the demo application output. The output can be found in using one of these paths, depending on the build target selected:
<install_dir>/boards/<board_name>/<example_type>/<application_name>/armgcc/debug <install_dir>/boards/<board_name>/<example_type>/<application_name>/armgcc/release For this guide, the path is:
<install_dir>/boards/frdmk64f/demo_apps/hello_world/armgcc/debug arm-none-eabi-gdb.exe <demo_name>.elf". For this example, it is "arm-none-eabi-gdb.exe hello_world.elf" 
Run these commands:
The application is now downloaded and halted at the reset vector. Execute the "monitor go" command to start the example application
The hello_world application is now running and a banner is displayed in the terminal window
Something went wrong! Please try again.