Port modifications made to noridc files
parent
22c7454f7e
commit
c63391e05c
|
@ -34,17 +34,25 @@
|
|||
#include <stdlib.h>
|
||||
#include "nordic_common.h"
|
||||
#include "ble_hci.h"
|
||||
#include "app_timer.h"
|
||||
#include "ble_srv_common.h"
|
||||
#include "app_util.h"
|
||||
|
||||
#ifdef USE_APP_TIMER
|
||||
#include "app_timer.h"
|
||||
#else
|
||||
#include "mbed.h"
|
||||
#endif
|
||||
|
||||
static ble_conn_params_init_t m_conn_params_config; /**< Configuration as specified by the application. */
|
||||
static ble_gap_conn_params_t m_preferred_conn_params; /**< Connection parameters preferred by the application. */
|
||||
static uint8_t m_update_count; /**< Number of Connection Parameter Update messages that has currently been sent. */
|
||||
static uint16_t m_conn_handle; /**< Current connection handle. */
|
||||
static ble_gap_conn_params_t m_current_conn_params; /**< Connection parameters received in the most recent Connect event. */
|
||||
APP_TIMER_DEF(m_conn_params_timer_id); /**< Connection parameters timer. */
|
||||
#ifdef USE_APP_TIMER
|
||||
static app_timer_id_t m_conn_params_timer_id; /**< Connection parameters timer. */
|
||||
#else
|
||||
static Ticker m_conn_params_timer;
|
||||
#endif
|
||||
|
||||
static bool m_change_param = false;
|
||||
|
||||
|
@ -68,10 +76,16 @@ static bool is_conn_params_ok(ble_gap_conn_params_t * p_conn_params)
|
|||
}
|
||||
|
||||
|
||||
#ifdef USE_APP_TIMER
|
||||
static void update_timeout_handler(void * p_context)
|
||||
{
|
||||
UNUSED_PARAMETER(p_context);
|
||||
|
||||
#else /* #if !USE_APP_TIMER */
|
||||
static void update_timeout_handler(void)
|
||||
{
|
||||
m_conn_params_timer.detach(); /* this is supposed to be a single-shot timer callback */
|
||||
#endif /* #if !USE_APP_TIMER */
|
||||
if (m_conn_handle != BLE_CONN_HANDLE_INVALID)
|
||||
{
|
||||
// Check if we have reached the maximum number of attempts
|
||||
|
@ -146,15 +160,24 @@ uint32_t ble_conn_params_init(const ble_conn_params_init_t * p_init)
|
|||
m_conn_handle = BLE_CONN_HANDLE_INVALID;
|
||||
m_update_count = 0;
|
||||
|
||||
#ifdef USE_APP_TIMER
|
||||
return app_timer_create(&m_conn_params_timer_id,
|
||||
APP_TIMER_MODE_SINGLE_SHOT,
|
||||
update_timeout_handler);
|
||||
#else
|
||||
return NRF_SUCCESS;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
uint32_t ble_conn_params_stop(void)
|
||||
{
|
||||
#ifdef USE_APP_TIMER
|
||||
return app_timer_stop(m_conn_params_timer_id);
|
||||
#else /* #if !USE_APP_TIMER */
|
||||
m_conn_params_timer.detach();
|
||||
return NRF_SUCCESS;
|
||||
#endif /* #if !USE_APP_TIMER */
|
||||
}
|
||||
|
||||
|
||||
|
@ -163,7 +186,9 @@ static void conn_params_negotiation(void)
|
|||
// Start negotiation if the received connection parameters are not acceptable
|
||||
if (!is_conn_params_ok(&m_current_conn_params))
|
||||
{
|
||||
#ifdef USE_APP_TIMER
|
||||
uint32_t err_code;
|
||||
#endif
|
||||
uint32_t timeout_ticks;
|
||||
|
||||
if (m_change_param)
|
||||
|
@ -189,11 +214,15 @@ static void conn_params_negotiation(void)
|
|||
timeout_ticks = m_conn_params_config.next_conn_params_update_delay;
|
||||
}
|
||||
|
||||
#ifdef USE_APP_TIMER
|
||||
err_code = app_timer_start(m_conn_params_timer_id, timeout_ticks, NULL);
|
||||
if ((err_code != NRF_SUCCESS) && (m_conn_params_config.error_handler != NULL))
|
||||
{
|
||||
m_conn_params_config.error_handler(err_code);
|
||||
}
|
||||
#else
|
||||
m_conn_params_timer.attach(update_timeout_handler, timeout_ticks / 32768);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -228,18 +257,24 @@ static void on_connect(ble_evt_t * p_ble_evt)
|
|||
|
||||
static void on_disconnect(ble_evt_t * p_ble_evt)
|
||||
{
|
||||
#ifdef USE_APP_TIMER
|
||||
uint32_t err_code;
|
||||
#endif
|
||||
|
||||
m_conn_handle = BLE_CONN_HANDLE_INVALID;
|
||||
|
||||
// Stop timer if running
|
||||
m_update_count = 0; // Connection parameters updates should happen during every connection
|
||||
|
||||
#ifdef USE_APP_TIMER
|
||||
err_code = app_timer_stop(m_conn_params_timer_id);
|
||||
if ((err_code != NRF_SUCCESS) && (m_conn_params_config.error_handler != NULL))
|
||||
{
|
||||
m_conn_params_config.error_handler(err_code);
|
||||
}
|
||||
#else
|
||||
m_conn_params_timer.detach();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
@ -262,6 +297,7 @@ static void on_write(ble_evt_t * p_ble_evt)
|
|||
}
|
||||
else
|
||||
{
|
||||
#ifdef USE_APP_TIMER
|
||||
uint32_t err_code;
|
||||
|
||||
// Stop timer if running
|
||||
|
@ -270,6 +306,9 @@ static void on_write(ble_evt_t * p_ble_evt)
|
|||
{
|
||||
m_conn_params_config.error_handler(err_code);
|
||||
}
|
||||
#else /* #if !USE_APP_TIMER */
|
||||
m_conn_params_timer.detach();
|
||||
#endif /* #if !USE_APP_TIMER */
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,7 +85,7 @@
|
|||
* be stored. In such cases, application will be notified with DM_DEVICE_CONTEXT_FULL
|
||||
* as event result at the completion of the security procedure.
|
||||
*/
|
||||
#define DEVICE_MANAGER_MAX_BONDS 7
|
||||
#define DEVICE_MANAGER_MAX_BONDS 2
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
*/
|
||||
|
||||
#include "device_manager.h"
|
||||
#include "app_trace.h"
|
||||
#include "pstorage.h"
|
||||
#include "ble_hci.h"
|
||||
#include "app_error.h"
|
||||
|
@ -162,7 +161,7 @@ typedef enum
|
|||
* @note That if ENABLE_DEBUG_LOG_SUPPORT is disabled, having DM_DISABLE_LOGS has no effect.
|
||||
* @{
|
||||
*/
|
||||
#define nDM_DISABLE_LOGS /**< Enable this macro to disable any logs from this module. */
|
||||
#define DM_DISABLE_LOGS /**< Enable this macro to disable any logs from this module. */
|
||||
|
||||
#ifndef DM_DISABLE_LOGS
|
||||
#define DM_LOG app_trace_log /**< Used for logging details. */
|
||||
|
|
|
@ -30,60 +30,6 @@
|
|||
*
|
||||
*/
|
||||
|
||||
|
||||
/****************************************************************************************************//**
|
||||
* @file nrf51.h
|
||||
*
|
||||
* @brief CMSIS Cortex-M0 Peripheral Access Layer Header File for
|
||||
* nrf51 from Nordic Semiconductor.
|
||||
*
|
||||
* @version V522
|
||||
* @date 20. October 2015
|
||||
*
|
||||
* @note Generated with SVDConv V2.81d
|
||||
* from CMSIS SVD File 'nrf51.svd' Version 522,
|
||||
*
|
||||
* @par Copyright (c) 2013, 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:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice, this
|
||||
* list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form 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.
|
||||
*
|
||||
* * 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.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.
|
||||
*
|
||||
*
|
||||
*******************************************************************************************************/
|
||||
|
||||
|
||||
|
||||
/** @addtogroup Nordic Semiconductor
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @addtogroup nrf51
|
||||
* @{
|
||||
*/
|
||||
|
||||
#ifndef NRF51_H
|
||||
#define NRF51_H
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ static __INLINE uint32_t pstorage_flash_page_end()
|
|||
#define PSTORAGE_SWAP_ADDR PSTORAGE_DATA_END_ADDR /**< Top-most page is used as swap area for clear and update. */
|
||||
|
||||
#define PSTORAGE_MAX_BLOCK_SIZE PSTORAGE_FLASH_PAGE_SIZE /**< Maximum size of block that can be registered with the module. Should be configured based on system requirements. And should be greater than or equal to the minimum size. */
|
||||
#define PSTORAGE_CMD_QUEUE_SIZE 10 /**< Maximum number of flash access commands that can be maintained by the module for all applications. Configurable. */
|
||||
#define PSTORAGE_CMD_QUEUE_SIZE 2 /**< Maximum number of flash access commands that can be maintained by the module for all applications. Configurable. */
|
||||
|
||||
|
||||
/** Abstracts persistently memory block identifier. */
|
||||
|
|
|
@ -151,6 +151,7 @@ uint32_t dfu_init_prevalidate(uint8_t * p_init_data, uint32_t init_data_len)
|
|||
|
||||
uint32_t dfu_init_postvalidate(uint8_t * p_image, uint32_t image_len)
|
||||
{
|
||||
#if NEED_CRC_CHECK /* disabled for now */
|
||||
uint16_t image_crc;
|
||||
uint16_t received_crc;
|
||||
|
||||
|
@ -169,6 +170,7 @@ uint32_t dfu_init_postvalidate(uint8_t * p_image, uint32_t image_len)
|
|||
{
|
||||
return NRF_ERROR_INVALID_DATA;
|
||||
}
|
||||
#endif /* NEED_CRC_CHECK */
|
||||
|
||||
return NRF_SUCCESS;
|
||||
}
|
||||
|
|
|
@ -42,10 +42,10 @@
|
|||
#ifndef MEM_POOL_INTERNAL_H__
|
||||
#define MEM_POOL_INTERNAL_H__
|
||||
|
||||
#define TX_BUF_SIZE 32u /**< TX buffer size in bytes. */
|
||||
#define RX_BUF_SIZE 600u /**< RX buffer size in bytes. */
|
||||
#define TX_BUF_SIZE 4u /**< TX buffer size in bytes. */
|
||||
#define RX_BUF_SIZE 32u /**< RX buffer size in bytes. */
|
||||
|
||||
#define RX_BUF_QUEUE_SIZE 2u /**< RX buffer element size. */
|
||||
#define RX_BUF_QUEUE_SIZE 8u /**< RX buffer element size. */
|
||||
|
||||
#endif // MEM_POOL_INTERNAL_H__
|
||||
|
||||
|
|
|
@ -42,6 +42,7 @@
|
|||
#ifndef BLE_STACK_HANDLER_TYPES_H__
|
||||
#define BLE_STACK_HANDLER_TYPES_H__
|
||||
|
||||
#define BLE_STACK_SUPPORT_REQD
|
||||
#ifdef BLE_STACK_SUPPORT_REQD
|
||||
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -547,7 +547,9 @@ typedef struct
|
|||
{
|
||||
ble_gap_addr_t peer_addr; /**< Bluetooth address of the peer device. */
|
||||
ble_gap_addr_t own_addr; /**< Bluetooth address of the local device used during connection setup. */
|
||||
#if !defined(TARGET_MCU_NRF51_16K_S110) && !defined(TARGET_MCU_NRF51_32K_S110)
|
||||
uint8_t role; /**< BLE role for this connection, see @ref BLE_GAP_ROLES */
|
||||
#endif
|
||||
uint8_t irk_match :1; /**< If 1, peer device's address resolved using an IRK. */
|
||||
uint8_t irk_match_idx :7; /**< Index in IRK list where the address was matched. */
|
||||
ble_gap_conn_params_t conn_params; /**< GAP Connection Parameters. */
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
/** @} */
|
||||
|
||||
|
||||
#if 0 /* The following have been duplicated in blecommon.h */
|
||||
/** @defgroup BLE_UUID_VALUES Assigned Values for BLE UUIDs
|
||||
* @{ */
|
||||
/* Generic UUIDs, applicable to all services */
|
||||
|
@ -79,6 +80,7 @@
|
|||
#define BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR 0x2A03 /**< Reconnection Address Characteristic. */
|
||||
#define BLE_UUID_GAP_CHARACTERISTIC_PPCP 0x2A04 /**< Peripheral Preferred Connection Parameters Characteristic. */
|
||||
/** @} */
|
||||
#endif /* The following have been duplicated in blecommon.h */
|
||||
|
||||
|
||||
/** @defgroup BLE_UUID_TYPES Types of UUID
|
||||
|
@ -89,6 +91,7 @@
|
|||
/** @} */
|
||||
|
||||
|
||||
#if 0 /* The following have been duplicated in blecommon.h */
|
||||
/** @defgroup BLE_APPEARANCES Bluetooth Appearance values
|
||||
* @note Retrieved from http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml
|
||||
* @{ */
|
||||
|
@ -142,6 +145,7 @@
|
|||
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_POD 5187 /**< Location Pod (Outdoor Sports Activity subtype). */
|
||||
#define BLE_APPEARANCE_OUTDOOR_SPORTS_ACT_LOC_AND_NAV_POD 5188 /**< Location and Navigation Pod (Outdoor Sports Activity subtype). */
|
||||
/** @} */
|
||||
#endif /* The following have been duplicated in blecommon.h */
|
||||
|
||||
/** @brief Set .type and .uuid fields of ble_uuid_struct to specified uuid value. */
|
||||
#define BLE_UUID_BLE_ASSIGN(instance, value) do {\
|
||||
|
|
|
@ -43,13 +43,14 @@
|
|||
#elif defined (__GNUC__)
|
||||
#define SVCALL(number, return_type, signature) \
|
||||
_Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
|
||||
_Pragma("GCC diagnostic ignored \"-Wunused-parameter\"") \
|
||||
_Pragma("GCC diagnostic push") \
|
||||
_Pragma("GCC diagnostic ignored \"-Wreturn-type\"") \
|
||||
__attribute__((naked)) static return_type signature \
|
||||
{ \
|
||||
__asm( \
|
||||
"svc %0\n" \
|
||||
"bx r14" : : "I" (number) : "r0" \
|
||||
"bx r14" : : "I" ((uint32_t) number) : "r0" \
|
||||
); \
|
||||
} \
|
||||
_Pragma("GCC diagnostic pop")
|
||||
|
|
|
@ -55,6 +55,10 @@ static bool is_disabled_in_debug_needed(void);
|
|||
uint32_t SystemCoreClock __attribute__((used)) = __SYSTEM_CLOCK;
|
||||
#endif
|
||||
|
||||
#ifndef YOTTA_CFG_HARDWARE_CLOCKS_NRF_LFCLK_SRC
|
||||
# define YOTTA_CFG_HARDWARE_CLOCKS_NRF_LFCLK_SRC 1UL /* The default is to wait for LFLCK to start */
|
||||
#endif
|
||||
|
||||
void SystemCoreClockUpdate(void)
|
||||
{
|
||||
SystemCoreClock = __SYSTEM_CLOCK;
|
||||
|
@ -82,6 +86,16 @@ void SystemInit(void)
|
|||
if (is_disabled_in_debug_needed())
|
||||
{
|
||||
NRF_MPU->DISABLEINDEBUG = MPU_DISABLEINDEBUG_DISABLEINDEBUG_Disabled << MPU_DISABLEINDEBUG_DISABLEINDEBUG_Pos;
|
||||
}
|
||||
|
||||
// Start the external 32khz crystal oscillator.
|
||||
NRF_CLOCK->LFCLKSRC = (YOTTA_CFG_HARDWARE_CLOCKS_NRF_LFCLK_SRC << CLOCK_LFCLKSRC_SRC_Pos);
|
||||
NRF_CLOCK->EVENTS_LFCLKSTARTED = 0;
|
||||
NRF_CLOCK->TASKS_LFCLKSTART = 1;
|
||||
|
||||
// Wait for the external oscillator to start up.
|
||||
while (NRF_CLOCK->EVENTS_LFCLKSTARTED == 0) {
|
||||
// Do nothing.
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue