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 #ifndef _NRF_DELAY_H
yihui 1:a607cd9655d7 2 #define _NRF_DELAY_H
yihui 1:a607cd9655d7 3
yihui 1:a607cd9655d7 4 // #include "nrf.h"
yihui 1:a607cd9655d7 5
yihui 1:a607cd9655d7 6 /*lint --e{438, 522} "Variable not used" "Function lacks side-effects" */
yihui 1:a607cd9655d7 7 #if defined ( __CC_ARM )
yihui 1:a607cd9655d7 8 static __ASM void __INLINE nrf_delay_us(uint32_t volatile number_of_us)
yihui 1:a607cd9655d7 9 {
yihui 1:a607cd9655d7 10 loop
yihui 1:a607cd9655d7 11 SUBS R0, R0, #1
yihui 1:a607cd9655d7 12 NOP
yihui 1:a607cd9655d7 13 NOP
yihui 1:a607cd9655d7 14 NOP
yihui 1:a607cd9655d7 15 NOP
yihui 1:a607cd9655d7 16 NOP
yihui 1:a607cd9655d7 17 NOP
yihui 1:a607cd9655d7 18 NOP
yihui 1:a607cd9655d7 19 NOP
yihui 1:a607cd9655d7 20 NOP
yihui 1:a607cd9655d7 21 NOP
yihui 1:a607cd9655d7 22 NOP
yihui 1:a607cd9655d7 23 NOP
yihui 1:a607cd9655d7 24 BNE loop
yihui 1:a607cd9655d7 25 BX LR
yihui 1:a607cd9655d7 26 }
yihui 1:a607cd9655d7 27 #elif defined ( __ICCARM__ )
yihui 1:a607cd9655d7 28 static void __INLINE nrf_delay_us(uint32_t volatile number_of_us)
yihui 1:a607cd9655d7 29 {
yihui 1:a607cd9655d7 30 __ASM (
yihui 1:a607cd9655d7 31 "loop:\n\t"
yihui 1:a607cd9655d7 32 " SUBS R0, R0, #1\n\t"
yihui 1:a607cd9655d7 33 " NOP\n\t"
yihui 1:a607cd9655d7 34 " NOP\n\t"
yihui 1:a607cd9655d7 35 " NOP\n\t"
yihui 1:a607cd9655d7 36 " NOP\n\t"
yihui 1:a607cd9655d7 37 " NOP\n\t"
yihui 1:a607cd9655d7 38 " NOP\n\t"
yihui 1:a607cd9655d7 39 " NOP\n\t"
yihui 1:a607cd9655d7 40 " NOP\n\t"
yihui 1:a607cd9655d7 41 " NOP\n\t"
yihui 1:a607cd9655d7 42 " NOP\n\t"
yihui 1:a607cd9655d7 43 " NOP\n\t"
yihui 1:a607cd9655d7 44 " NOP\n\t"
yihui 1:a607cd9655d7 45 " BNE loop\n\t");
yihui 1:a607cd9655d7 46 }
yihui 1:a607cd9655d7 47 #elif defined ( __GNUC__ )
yihui 1:a607cd9655d7 48 static void __INLINE nrf_delay_us(uint32_t volatile number_of_us)
yihui 1:a607cd9655d7 49 {
yihui 1:a607cd9655d7 50 do
yihui 1:a607cd9655d7 51 {
yihui 1:a607cd9655d7 52 __ASM volatile (
yihui 1:a607cd9655d7 53 "NOP\n\t"
yihui 1:a607cd9655d7 54 "NOP\n\t"
yihui 1:a607cd9655d7 55 "NOP\n\t"
yihui 1:a607cd9655d7 56 "NOP\n\t"
yihui 1:a607cd9655d7 57 "NOP\n\t"
yihui 1:a607cd9655d7 58 "NOP\n\t"
yihui 1:a607cd9655d7 59 "NOP\n\t"
yihui 1:a607cd9655d7 60 "NOP\n\t"
yihui 1:a607cd9655d7 61 "NOP\n\t"
yihui 1:a607cd9655d7 62 "NOP\n\t"
yihui 1:a607cd9655d7 63 "NOP\n\t"
yihui 1:a607cd9655d7 64 "NOP\n\t"
yihui 1:a607cd9655d7 65 "NOP\n\t"
yihui 1:a607cd9655d7 66 "NOP\n\t"
yihui 1:a607cd9655d7 67 );
yihui 1:a607cd9655d7 68 } while (--number_of_us);
yihui 1:a607cd9655d7 69 }
yihui 1:a607cd9655d7 70 #endif
yihui 1:a607cd9655d7 71
yihui 1:a607cd9655d7 72 void nrf_delay_ms(uint32_t volatile number_of_ms);
yihui 1:a607cd9655d7 73
yihui 1:a607cd9655d7 74 #endif