diff --git a/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/wdt/nrf_drv_wdt.c b/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/wdt/nrf_drv_wdt.c deleted file mode 100644 index 8c05a2e..0000000 --- a/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/wdt/nrf_drv_wdt.c +++ /dev/null @@ -1,173 +0,0 @@ -/** - * Copyright (c) 2015 - 2017, Nordic Semiconductor ASA - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form, except as embedded into a Nordic - * Semiconductor ASA integrated circuit in a product or a software update for - * such product, must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. - * - * 3. Neither the name of Nordic Semiconductor ASA nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * 4. This software, with or without modification, must only be used with a - * Nordic Semiconductor ASA integrated circuit. - * - * 5. Any software provided in binary form under this license must not be reverse - * engineered, decompiled, modified and/or disassembled. - * - * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ -#include "sdk_common.h" -#if NRF_MODULE_ENABLED(WDT) -#include "nrf_drv_wdt.h" -#include "nrf_drv_common.h" -#include "nrf_error.h" -#include "nrf_assert.h" -#include "nrf_wdt.h" -#include "app_util_platform.h" -#include -#include - -#define NRF_LOG_MODULE_NAME wdt - -#if WDT_CONFIG_LOG_ENABLED -#define NRF_LOG_LEVEL WDT_CONFIG_LOG_LEVEL -#define NRF_LOG_INFO_COLOR WDT_CONFIG_INFO_COLOR -#define NRF_LOG_DEBUG_COLOR WDT_CONFIG_DEBUG_COLOR -#else //WDT_CONFIG_LOG_ENABLED -#define NRF_LOG_LEVEL 0 -#endif //WDT_CONFIG_LOG_ENABLED -#include "nrf_log.h" -NRF_LOG_MODULE_REGISTER(); - - -/**@brief WDT event handler. */ -static nrf_wdt_event_handler_t m_wdt_event_handler; - -/**@brief WDT state. */ -static nrf_drv_state_t m_state; - -/**@brief WDT alloc table. */ -static uint32_t m_alloc_index; - -static const nrf_drv_wdt_config_t m_default_config = NRF_DRV_WDT_DEAFULT_CONFIG; - -/**@brief WDT interrupt handler. */ -void WDT_IRQHandler(void) -{ - if (nrf_wdt_int_enable_check(NRF_WDT_INT_TIMEOUT_MASK) == true) - { - nrf_wdt_event_clear(NRF_WDT_EVENT_TIMEOUT); - m_wdt_event_handler(); - } -} - - -ret_code_t nrf_drv_wdt_init(nrf_drv_wdt_config_t const * p_config, - nrf_wdt_event_handler_t wdt_event_handler) -{ - ASSERT(wdt_event_handler != NULL); - ret_code_t err_code; - m_wdt_event_handler = wdt_event_handler; - - if (m_state == NRF_DRV_STATE_UNINITIALIZED) - { - m_state = NRF_DRV_STATE_INITIALIZED; - } - else - { - err_code = NRF_ERROR_INVALID_STATE; - NRF_LOG_WARNING("Function: %s, error code: %s.", (uint32_t)__func__, (uint32_t)NRF_LOG_ERROR_STRING_GET(err_code)); - return err_code; - } - - if (p_config == NULL) - { - p_config = &m_default_config; - } - - nrf_wdt_behaviour_set(p_config->behaviour); - - if ((((uint64_t) p_config->reload_value * 32768) / 1000) > UINT32_MAX) // Check for overflow - { - return NRF_ERROR_INVALID_PARAM; - } - nrf_wdt_reload_value_set(((uint64_t) p_config->reload_value * 32768) / 1000); - - nrf_drv_common_irq_enable(WDT_IRQn, p_config->interrupt_priority); - - err_code = NRF_SUCCESS; - NRF_LOG_INFO("Function: %s, error code: %s.", (uint32_t)__func__, (uint32_t)NRF_LOG_ERROR_STRING_GET(err_code)); - return err_code; -} - - -void nrf_drv_wdt_enable(void) -{ - ASSERT(m_alloc_index != 0); - ASSERT(m_state == NRF_DRV_STATE_INITIALIZED); - nrf_wdt_int_enable(NRF_WDT_INT_TIMEOUT_MASK); - nrf_wdt_task_trigger(NRF_WDT_TASK_START); - m_state = NRF_DRV_STATE_POWERED_ON; - NRF_LOG_INFO("Enabled."); -} - - -void nrf_drv_wdt_feed(void) -{ - ASSERT(m_state == NRF_DRV_STATE_POWERED_ON); - for (uint32_t i = 0; i < m_alloc_index; i++) - { - nrf_wdt_reload_request_set((nrf_wdt_rr_register_t)(NRF_WDT_RR0 + i)); - } -} - -ret_code_t nrf_drv_wdt_channel_alloc(nrf_drv_wdt_channel_id * p_channel_id) -{ - ret_code_t result; - ASSERT(p_channel_id); - ASSERT(m_state == NRF_DRV_STATE_INITIALIZED); - - CRITICAL_REGION_ENTER(); - if (m_alloc_index < NRF_WDT_CHANNEL_NUMBER) - { - *p_channel_id = (nrf_drv_wdt_channel_id)(NRF_WDT_RR0 + m_alloc_index); - m_alloc_index++; - nrf_wdt_reload_request_enable(*p_channel_id); - result = NRF_SUCCESS; - } - else - { - result = NRF_ERROR_NO_MEM; - } - CRITICAL_REGION_EXIT(); - NRF_LOG_INFO("Function: %s, error code: %s.", (uint32_t)__func__, (uint32_t)NRF_LOG_ERROR_STRING_GET(result)); - return result; -} - -void nrf_drv_wdt_channel_feed(nrf_drv_wdt_channel_id channel_id) -{ - ASSERT(m_state == NRF_DRV_STATE_POWERED_ON); - nrf_wdt_reload_request_set(channel_id); -} -#endif //NRF_MODULE_ENABLED(WDT) diff --git a/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/wdt/nrf_drv_wdt.h b/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/wdt/nrf_drv_wdt.h deleted file mode 100644 index ec0936b..0000000 --- a/nRF5_SDK_11.0.0_89a8197/components/drivers_nrf/wdt/nrf_drv_wdt.h +++ /dev/null @@ -1,160 +0,0 @@ -/** - * Copyright (c) 2014 - 2017, Nordic Semiconductor ASA - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form, except as embedded into a Nordic - * Semiconductor ASA integrated circuit in a product or a software update for - * such product, must reproduce the above copyright notice, this list of - * conditions and the following disclaimer in the documentation and/or other - * materials provided with the distribution. - * - * 3. Neither the name of Nordic Semiconductor ASA nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * 4. This software, with or without modification, must only be used with a - * Nordic Semiconductor ASA integrated circuit. - * - * 5. Any software provided in binary form under this license must not be reverse - * engineered, decompiled, modified and/or disassembled. - * - * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS - * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE - * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ -/**@file - * @addtogroup nrf_wdt WDT HAL and driver - * @ingroup nrf_drivers - * @brief Watchdog timer (WDT) APIs. - * @details The WDT HAL provides basic APIs for accessing the registers of the watchdog timer. - * The WDT driver provides APIs on a higher level. - * @defgroup nrf_drv_wdt WDT driver - * @{ - * @ingroup nrf_wdt - * - * @brief Driver for managing the watchdog timer (WDT). - */ - -#ifndef NRF_DRV_WDT_H__ -#define NRF_DRV_WDT_H__ - -#include -#include -#include "sdk_errors.h" -#include "nrf_wdt.h" -#include "sdk_config.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/**@brief Struct for WDT initialization. */ -typedef struct -{ - nrf_wdt_behaviour_t behaviour; /**< WDT behaviour when CPU in sleep/halt mode. */ - uint32_t reload_value; /**< WDT reload value in ms. */ - uint8_t interrupt_priority; /**< WDT interrupt priority */ -} nrf_drv_wdt_config_t; - -/**@brief WDT event handler function type. */ -typedef void (*nrf_wdt_event_handler_t)(void); - -/**@brief WDT channel id type. */ -typedef nrf_wdt_rr_register_t nrf_drv_wdt_channel_id; - -#define NRF_DRV_WDT_DEAFULT_CONFIG \ - { \ - .behaviour = (nrf_wdt_behaviour_t)WDT_CONFIG_BEHAVIOUR, \ - .reload_value = WDT_CONFIG_RELOAD_VALUE, \ - .interrupt_priority = WDT_CONFIG_IRQ_PRIORITY, \ - } -/** - * @brief This function initializes watchdog. - * - * @param[in] p_config Initial configuration. Default configuration used if NULL. - * @param[in] wdt_event_handler specifies event handler provided by user. - * - * @note Function asserts if wdt_event_handler is NULL. - * - * @return NRF_SUCCESS on success, otherwise an error code. - */ -ret_code_t nrf_drv_wdt_init(nrf_drv_wdt_config_t const * p_config, - nrf_wdt_event_handler_t wdt_event_handler); - -/** - * @brief This function allocate watchdog channel. - * - * @note This function can not be called after nrf_drv_wdt_start(void). - * - * @param[out] p_channel_id ID of granted channel. - * - * @return NRF_SUCCESS on success, otherwise an error code. - */ -ret_code_t nrf_drv_wdt_channel_alloc(nrf_drv_wdt_channel_id * p_channel_id); - -/** - * @brief This function starts watchdog. - * - * @note After calling this function the watchdog is started, so the user needs to feed all allocated - * watchdog channels to avoid reset. At least one watchdog channel has to be allocated. - */ -void nrf_drv_wdt_enable(void); - -/** - * @brief This function feeds the watchdog. - * - * @details Function feeds all allocated watchdog channels. - */ -void nrf_drv_wdt_feed(void); - -/** - * @brief This function feeds the invidual watchdog channel. - * - * @param[in] channel_id ID of watchdog channel. - */ -void nrf_drv_wdt_channel_feed(nrf_drv_wdt_channel_id channel_id); - -/**@brief Function for returning a requested task address for the wdt driver module. - * - * @param[in] task One of the peripheral tasks. - * - * @retval Task address. - */ -__STATIC_INLINE uint32_t nrf_drv_wdt_ppi_task_addr(nrf_wdt_task_t task) -{ - return nrf_wdt_task_address_get(task); -} - -/**@brief Function for returning a requested event address for the wdt driver module. - * - * @param[in] event One of the peripheral events. - * - * @retval Event address - */ -__STATIC_INLINE uint32_t nrf_drv_wdt_ppi_event_addr(nrf_wdt_event_t event) -{ - return nrf_wdt_event_address_get(event); -} - -#ifdef __cplusplus -} -#endif - -#endif - -/** @} */ diff --git a/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/hardfault.h b/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/hardfault.h deleted file mode 100644 index 3cb099a..0000000 --- a/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/hardfault.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved. - * - * The information contained herein is property of Nordic Semiconductor ASA. - * Terms and conditions of usage are described in detail in NORDIC - * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. - * - * Licensees are granted free, non-transferable use of the information. NO - * WARRANTY of ANY KIND is provided. This heading must NOT be removed from - * the file. - * - */ -#ifndef HARFAULT_H__ -#define HARFAULT_H__ -#include -#include -/** - * @defgroup hardfault_default HardFault exception - * @{ - * @brief Default HardFault exception implementation. - * @ingroup app_common - */ - -/** - * @brief Contents of the stack. - * - * This structure is used to re-create the stack layout after a HardFault exception was raised. - */ -typedef struct HardFault_stack -{ - uint32_t r0; ///< R0 register. - uint32_t r1; ///< R1 register. - uint32_t r2; ///< R2 register. - uint32_t r3; ///< R3 register. - uint32_t r12; ///< R12 register. - uint32_t lr; ///< Link register. - uint32_t pc; ///< Program counter. - uint32_t psr; ///< Program status register. -}HardFault_stack_t; - -/** - * @brief Function for processing HardFault exceptions. - * - * An application that needs to process HardFault exceptions should provide an implementation of this function. - * It will be called from the HardFault handler. - * If no implementation is provided, the library uses a default one, which just restarts the MCU. - * - * @note If the DEBUG_NRF macro is defined, the software breakpoint is set just before the call - * to this function. - * - * @param p_stack Pointer to the stack bottom. - * This pointer might be NULL if the HardFault was called when the main stack was - * the active stack and a stack overrun is detected. - * In such a situation, the stack pointer is reinitialized to the default position, - * and the stack content is lost. - */ -void HardFault_process(HardFault_stack_t *p_stack); - -/** @} */ -#endif /* HARFAULT_H__ */ - diff --git a/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/hardfault_implementation.c b/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/hardfault_implementation.c deleted file mode 100644 index 0a5fee8..0000000 --- a/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/hardfault_implementation.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved. - * - * The information contained herein is property of Nordic Semiconductor ASA. - * Terms and conditions of usage are described in detail in NORDIC - * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. - * - * Licensees are granted free, non-transferable use of the information. NO - * WARRANTY of ANY KIND is provided. This heading must NOT be removed from - * the file. - * - */ -#include "hardfault.h" -#include "nrf.h" -#include "compiler_abstraction.h" -#include "nordic_common.h" -#ifdef SOFTDEVICE_PRESENT -#include "nrf_soc.h" -#endif - -#if defined(DEBUG_NRF) -/** - * @brief Pointer to the last received stack pointer. - * - * This pointer is set in the debug version of the HardFault handler. - * It helps to debug HardFault reasons. - */ -volatile HardFault_stack_t *HardFault_p_stack; -#endif - -/*lint -save -e14 */ -__WEAK void HardFault_process(HardFault_stack_t *p_stack) -{ - // Restart the system by default - NVIC_SystemReset(); -} -/*lint -restore */ - -void HardFault_c_handler( uint32_t *p_stack_address ) -{ -#if defined(DEBUG_NRF) - HardFault_p_stack = (HardFault_stack_t*)p_stack_address; - /* Generate breakpoint if debugger is connected */ - __BKPT(0); -#endif - - HardFault_process((HardFault_stack_t*)p_stack_address); -} diff --git a/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/nrf52/handler/hardfault_handler_gcc.c b/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/nrf52/handler/hardfault_handler_gcc.c deleted file mode 100644 index 8d2bb99..0000000 --- a/nRF5_SDK_11.0.0_89a8197/components/libraries/hardfault/nrf52/handler/hardfault_handler_gcc.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright (c) 2015 Nordic Semiconductor. All Rights Reserved. - * - * The information contained herein is property of Nordic Semiconductor ASA. - * Terms and conditions of usage are described in detail in NORDIC - * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. - * - * Licensees are granted free, non-transferable use of the information. NO - * WARRANTY of ANY KIND is provided. This heading must NOT be removed from - * the file. - * - */ -#include - -void HardFault_Handler(void) __attribute__(( naked )); - -void HardFault_Handler(void) -{ - __asm volatile( - " ldr r3, =HardFault_c_handler \n" - " tst lr, #4 \n" - - /* PSP is quite simple and does not require additional handler */ - " itt ne \n" - " mrsne r0, psp \n" - /* Jump to the handler, do not store LR - returning from handler just exits exception */ - " bxne r3 \n" - - /* Processing MSP requires stack checking */ - " mrs r0, msp \n" - - " ldr r1, =__StackTop \n" - " ldr r2, =__StackLimit \n" - - /* MSP is in the range of <__StackTop, __StackLimit) */ - " cmp r0, r1 \n" - " bhi HardFault_MoveSP \n" - " cmp r0, r2 \n" - " bhi HardFault_Handler_Continue \n" - - "HardFault_MoveSP: \n" - " mov sp, r1 \n" - " mov r0, #0 \n" - - "HardFault_Handler_Continue: \n" - " bx r3 \n" - - " .align \n" - ); -}