Sort by » date activity comments

10 blog posts tagged with keil

by Kristian Skordal

Creating a Keil project for a Bluetooth Mesh example (Updated for 0.10.0)


The recently released nRF5 SDK for Bluetooth Mesh does not provide Keil project files for its example projects. Fortunately, it's relatively easy to set up your own project from scratch. This guide will show you how.

While the list of steps below might seem overwhelming, most of the settings used here, such as the linker settings and defines, can be copied from the Segger Embedded Studio project provided with the mesh SDK. The SES project can be used as a template for which files to include and which settings to use when creating Keil projects for other mesh...

by Hung Bui

Segger Embedded Studio - A Cross Platform IDE

Download and Setup

Note: It is recommended, but not necessary, to use the most recent releases of the above software.

Importing a Keil uVision project

Note: From nRF5 SDK v14.1, Segger Embedded studio projects are officially supported. If using v14.1 or newer, please use the native SES-projects instead of the "import" function.

  • Open SEGGER Embedded Studio 3.10e
  • Select Tools -> Package Manager... and install the CMSIS-CORE Support Package

image description

  • Select File -> Import IAR...
by Michael Dietz

Debugging nRF52 series devices using Trace

Why use trace

"Embedded Trace Macrocell (ETM) allows to capture information on the processor’s state without affecting the processor’s performance. Microcontrollers that include an ETM allow detailed program execution to be recorded and saved in real time. This information can be used to analyze program flow and execution time, perform profiling and locate software bugs that are otherwise very hard to locate. A typical situation in which code trace is extremely valuable, is to find out how and why a "program crash" occurred in case of a runaway program count." J-Link/J-Trace User Guide.


Debugging features can...

by Michael Dietz

Monitor Mode Debugging - Revolutionize the way you debug BLE applications


Monitor Mode Debugging solves the biggest problem when debugging nRF5 devices. It allows BLE applications to be debugged without crashing after setting breakpoints/pausing execution, and is an order of magnitude better than the default 'halt mode' debugging in these situations. The IDE does not notice any difference between halt and monitor mode debug so this will work with whatever IDE you are using (will work in GDB as well). This post will serve as a step by step guide to set up and use Monitor Mode Debugging with each major IDE Nordic supports (Keil, IAR, SEGGER Embedded Studio...

by Øyvind Karlsen

Keil + nrfjprog = true

In this blogpost we will demonstrate the usage of Keils integrated command line functionality. We will start nrfjprog through Keil bindings in order to erase our chip and program SoftDevices.

nrfjprog is a command line tool that Nordic provides, which allows for easy flashing and erasing of firmware onto our chips. This command line tool is automatically installed as part of installing the MDK for each version of the SoftDevice.

Installing the command line tools

Start off by downloading and installing the command line tools executable. I will base this blogpost on SDK 11, if you are using a different...

by Michael Dietz

Segger Embedded Studio blog post rev2 DEPRECATED


see new blog post for new version of embedded studio here:


This post is an introductory tutorial to SEGGER Embedded Studio. If you haven't already please skim through this post but don't follow along with it. This is the new and improved tutorial using the nRF device pack and assumes no prior knowledge on Embedded Studio.

After following this tutorial you will be able to build, debug and run a BLE project on nRF5x devices! You will also be able to load...

by Michael Dietz

Comparing compilers/IDEs for development with nRF5x series devices


All compilers ARE NOT created equal. Given the same c code, different compilers will generate machine code with varying performance & size. Generally the more efficient machine code (uses less CPU cycles/machine instructions to perform the same high level functionality) will use less power as it completes processing faster and can enter low power states for longer. It will also enable more complex algorithms to run within your timing constraints. In resource constrained devices more compressed machine code can eliminate the need for external flash, or provide more 'room' to work with. It can also eliminate the need to...

by Krzysztof Loska

Native support for nRF51 SDK in Keil IDE

Recently we introduced support for CMSIS-Pack into our nRF51 SDK. The nRF51 SDK is natively supported in the Keil IDE. This means that nRF51 SDK latest version and example software for nRF51 are easily found in the Keil IDE. To do this install the Keil IDE and use the build-in “Pack Installer” (it is important to use Keil 5.12 or later). This tool also informs you of newest released versions of the SDK. It also has a nice browser to look through available examples.

Here is a short tutorial on using these features.

1.Install Keil IDE 5.12...

by scytulip

Keil in-line program through DFU BLE

I am investigating Master Emulator API and found something interesting that can help you program your device through BLE DFU in Keil. This method calls the python script used in MCP. If you can use MCP DFU to program your device, it will also works for your Keil. BTW, this method emulates the exact BLE DFU procedure and the application is available just after a successful upload. No modification on bootloader or application code is required.


A device (like PCA10000) running Master Emulator.


  1. Download and install the newest IronPython (Python with .Net support) from

by Håkon Alseth

Using nRF51 SDK with the nRF51822 MBED Kit


This blog post will not take installation of above dependencies into consideration.

Configuring a project for CMSIS-DAP debugger:

  1. Open a project in Keil, and go to Options for Target, and select CMSIS-DAP Debugger under the debug tab: image description

  2. Check that the "Use Debug Driver" is checked under Utilities tab: image description

  3. Now go into the debugger settings and verify that the nRF51xxx programming algorithm is chosen: image description

  4. Go to tab "debug" and see that the debugger and device...