Disabling Watchdog for 'Bare' Projects

Document created by Erich Styger Employee on May 2, 2014Last modified by ebiz_ws_prod on Dec 13, 2017
Version 6Show Document
  • View in full screen mode

'Bare' (no PEx, no SDK) projects created with KDS V1.0.1 beta have the issue that the watchdog is not disabled (see KDS V1.0.1beta release notes).

This document explains how to disable the watchdog for the FRDM-KL25Z (steps are similar to other boards).


1. Add Derivative Header file

Add the derivative header file to your project. The header files are located in


Copy the matching header into the Startup_Code folder:


2. Disable Watchdog

Open startup.c and locate the function __init_hardware().

Include the derivative header file and the code to disable the watchdog:


This will disable the watchdog during startup. The above project is attached as a reference.


Code for the K64F

#define STARTUP_WDOG_STCTRLH_VALUE                     0x01D2U   /* WDOG_STCTRLH value */
#define STARTUP_WDOG_KEY_1                             0xC520U   /* Watchdog unlock key 1 */
#define STARTUP_WDOG_KEY_2                             0xD928U   /* Watchdog unlock key 2 */


void __attribute__ ((weak)) __init_hardware(void)


  /* Disable the WDOG module */

  WDOG_UNLOCK = (uint16_t)STARTUP_WDOG_KEY_1; /* Key 1 */

  WDOG_UNLOCK = (uint16_t)STARTUP_WDOG_KEY_2; /* Key 2 */



Original Attachment has been moved to: FRDM-KL25Z_bare.zip

1 person found this helpful