BLE FOTA APP

Dependencies:   BLE_API mbed

It doesn't work with the default FOTA bootloader. It use NVIC_SystemReset() to enter a bootloader.

Committer:
yihui
Date:
Fri Oct 10 03:36:28 2014 +0000
Revision:
1:a607cd9655d7
use NVIC_SystemReset() to run bootloader

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yihui 1:a607cd9655d7 1 /*
yihui 1:a607cd9655d7 2 * Copyright (c) 2006 Nordic Semiconductor. All Rights Reserved.
yihui 1:a607cd9655d7 3 *
yihui 1:a607cd9655d7 4 * The information contained herein is confidential property of Nordic Semiconductor. The use,
yihui 1:a607cd9655d7 5 * copying, transfer or disclosure of such information is prohibited except by express written
yihui 1:a607cd9655d7 6 * agreement with Nordic Semiconductor.
yihui 1:a607cd9655d7 7 *
yihui 1:a607cd9655d7 8 */
yihui 1:a607cd9655d7 9
yihui 1:a607cd9655d7 10 /** @file
yihui 1:a607cd9655d7 11 * @brief Utilities for verifying program logic
yihui 1:a607cd9655d7 12 */
yihui 1:a607cd9655d7 13
yihui 1:a607cd9655d7 14 #ifndef NRF_ASSERT_H_
yihui 1:a607cd9655d7 15 #define NRF_ASSERT_H_
yihui 1:a607cd9655d7 16
yihui 1:a607cd9655d7 17 #include <stdint.h>
yihui 1:a607cd9655d7 18
yihui 1:a607cd9655d7 19 #ifdef __cplusplus
yihui 1:a607cd9655d7 20 extern "C" {
yihui 1:a607cd9655d7 21 #endif
yihui 1:a607cd9655d7 22
yihui 1:a607cd9655d7 23 #if defined(DEBUG_NRF) || defined(DEBUG_NRF_USER)
yihui 1:a607cd9655d7 24
yihui 1:a607cd9655d7 25 /** @brief Function for handling assertions.
yihui 1:a607cd9655d7 26 *
yihui 1:a607cd9655d7 27 *
yihui 1:a607cd9655d7 28 * @note
yihui 1:a607cd9655d7 29 * This function is called when an assertion has triggered.
yihui 1:a607cd9655d7 30 *
yihui 1:a607cd9655d7 31 *
yihui 1:a607cd9655d7 32 * @post
yihui 1:a607cd9655d7 33 * All hardware is put into an idle non-emitting state (in particular the radio is highly
yihui 1:a607cd9655d7 34 * important to switch off since the radio might be in a state that makes it send
yihui 1:a607cd9655d7 35 * packets continiously while a typical final infinit ASSERT loop is executing).
yihui 1:a607cd9655d7 36 *
yihui 1:a607cd9655d7 37 *
yihui 1:a607cd9655d7 38 * @param line_num The line number where the assertion is called
yihui 1:a607cd9655d7 39 * @param file_name Pointer to the file name
yihui 1:a607cd9655d7 40 */
yihui 1:a607cd9655d7 41 void assert_nrf_callback(uint16_t line_num, const uint8_t *file_name);
yihui 1:a607cd9655d7 42
yihui 1:a607cd9655d7 43 /*lint -emacro(506, ASSERT) */ /* Suppress "Constant value Boolean */
yihui 1:a607cd9655d7 44 /*lint -emacro(774, ASSERT) */ /* Suppress "Boolean within 'if' always evaluates to True" */ \
yihui 1:a607cd9655d7 45
yihui 1:a607cd9655d7 46 /** @brief Function for checking intended for production code.
yihui 1:a607cd9655d7 47 *
yihui 1:a607cd9655d7 48 * Check passes if "expr" evaluates to true. */
yihui 1:a607cd9655d7 49 #define ASSERT(expr) \
yihui 1:a607cd9655d7 50 if (expr) \
yihui 1:a607cd9655d7 51 { \
yihui 1:a607cd9655d7 52 } \
yihui 1:a607cd9655d7 53 else \
yihui 1:a607cd9655d7 54 { \
yihui 1:a607cd9655d7 55 assert_nrf_callback((uint16_t)__LINE__, (uint8_t *)__FILE__); \
yihui 1:a607cd9655d7 56 }
yihui 1:a607cd9655d7 57 #else
yihui 1:a607cd9655d7 58 #define ASSERT(expr) //!< Assert empty when disabled
yihui 1:a607cd9655d7 59 void assert_nrf_callback(uint16_t line_num, const uint8_t *file_name);
yihui 1:a607cd9655d7 60 #endif /* defined(DEBUG_NRF) || defined(DEBUG_NRF_USER) */
yihui 1:a607cd9655d7 61
yihui 1:a607cd9655d7 62 #ifdef __cplusplus
yihui 1:a607cd9655d7 63 }
yihui 1:a607cd9655d7 64 #endif
yihui 1:a607cd9655d7 65
yihui 1:a607cd9655d7 66 #endif /* NRF_ASSERT_H_ */