Difference between revisions of "Keil MDK-ARM"

From SEGGER Wiki
Jump to: navigation, search
(Trace support)
Line 51: Line 51:
   
 
To trace other cores than the ones listed above and to be able to use streaming trace features it is recommended to use [https://www.segger.com/products/development-tools/ozone-j-link-debugger/ Ozone] instead.
 
To trace other cores than the ones listed above and to be able to use streaming trace features it is recommended to use [https://www.segger.com/products/development-tools/ozone-j-link-debugger/ Ozone] instead.
  +
  +
== RTT in uVision ==
  +
To enable RTT in uVision it is not sufficient to just add the RTT sources and syscalls file to your application.
  +
Additionally enable STDOUT retargeting via the "Manage Run-Time Environment" button:
  +
  +
[[File:Keil_Toolbox.PNG]]
  +
  +
Now select STDOUT and set it to Variant User:
  +
  +
[[File:Keil_Manage_Runtime.png]]

Revision as of 16:38, 13 January 2020

Keil MDK is a visual Studio style, commercial toolchain including a non-GCC compiler. We recommend to always install the latest J-Link software and documentation pack to make sure that Keil MDK uses the latest J-Link DLL.

Using J-Link with an existing project

  • Open the project to configure
  • Select Project --> Options for Target ... from the main menu
  • Click the Device tab and select the proper device
    IDE-Integr-Keil-Options-Device.png

  • Click on the Debug tab and make sure that Cortex-M/R J-LINK / J-Trace is selected
    IDE-Integr-Keil-Options-Debug.png

  • In order to modify J-Link specific settings click the Settings button in the debug menu and a new dialog will show up:
    IDE-Integr-Keil-Driver-Setup.gif

  • Now the project is ready to be debugged with J-Link / J-Trace.
    IDE-Integr-Keil-Driver-Debug-Session.png

Using J-Link Flashloader

First, choose the right device in the project settings if not already done:

  • Click Project | Options for Target from the main menu
  • Switch to the Device tab
  • Select the appropriate device, for example STM32F207IG
    IDE-Integr-Keil-Disable FlashLoader 00.png

Secondly, enable SEGGER flash loader:

  • Click Project | Options for Target from the main menu
  • Switch to the Utilities tab
  • Check Use Target Driver for Flash Programming
  • Select J-LINK / J-Trace Cortex in order to use the J-Link built-in flashloader
    IDE-Integr-Keil-Disable FlashLoader 01.png

Thirdly, configure flash loader:

  • Click Project | Options for Target from the main menu
  • Switch to the Debug tab
  • Select J-LINK / J-Trace Cortex
    IDE-Integr-Keil-Disable FlashLoader 02.png
  • Click Settings
  • Check Verify Code Download and Download to Flash as shown in the screenshot below
    IDE-Integr-Keil-Disable FlashLoader 03.png
Please note that flash download through the "Download" (F8) is not supported for J-Link right now.
Support may be added in future versions of Keil MDK.

Using J-Link Script Files

Keil MDK-ARM does not provide any native support for J-Link script files so usage of them cannot be configured from within the GUI of the IDE itself. Anyhow, it is possible to use a J-Link script file by making use of the auto-search feature of the DLL:

  • Navigate to the folder where the uVision project (*.uvproj, *.uvprojx) is located that shall use the script file.
    JLinkScriptFile Use MDK-ARM 0.png
  • Copy the J-Link script file to there
  • Rename the J-Link script to JLinkSettings.JLinkScript
    JLinkScriptFile Use MDK-ARM 1.png

The JLinkSettings.ini is a settings file created by the J-Link DLL on debug session start. If no script file is explicitly passed to the DLL, it will search in the directory of the JLinkSettings.ini for a script file named like the settings file only with a different file extension.

Trace support

Keil MDK supports various kinds of tracing features. A general overview of the different trace types can be found here.

  • SWO trace is fully supported with J-Link and J-Trace debug probes.
  • ETB/ETM trace is supported for Cortex-M0, M0+, M3 and M4.

To trace other cores than the ones listed above and to be able to use streaming trace features it is recommended to use Ozone instead.

RTT in uVision

To enable RTT in uVision it is not sufficient to just add the RTT sources and syscalls file to your application. Additionally enable STDOUT retargeting via the "Manage Run-Time Environment" button:

Keil Toolbox.PNG

Now select STDOUT and set it to Variant User:

Keil Manage Runtime.png