mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-01-01 00:28:18 +00:00
145 lines
7.2 KiB
C
145 lines
7.2 KiB
C
/**
|
|
******************************************************************************
|
|
* File Name : hw_conf.h
|
|
* Description : Hardware configuration file for BLE
|
|
* middleWare.
|
|
******************************************************************************
|
|
* This notice applies to any and all portions of this file
|
|
* that are not between comment pairs USER CODE BEGIN and
|
|
* USER CODE END. Other portions of this file, whether
|
|
* inserted by the user or by software development tools
|
|
* are owned by their respective copyright owners.
|
|
*
|
|
* Copyright (c) 2018 STMicroelectronics International N.V.
|
|
* 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. Redistribution of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
* 2. 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.
|
|
* 3. Neither the name of STMicroelectronics nor the names of other
|
|
* contributors to this software may be used to endorse or promote products
|
|
* derived from this software without specific written permission.
|
|
* 4. This software, including modifications and/or derivative works of this
|
|
* software, must execute solely and exclusively on microcontroller or
|
|
* microprocessor devices manufactured by or for STMicroelectronics.
|
|
* 5. Redistribution and use of this software other than as permitted under
|
|
* this license is void and will automatically terminate your rights under
|
|
* this license.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
|
|
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
* PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
|
|
* RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
|
|
* SHALL STMICROELECTRONICS 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.
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __HW_CONF_H
|
|
#define __HW_CONF_H
|
|
|
|
/******************************************************************************
|
|
* Semaphores
|
|
* THIS SHALL NO BE CHANGED AS THESE SEMAPHORES ARE USED AS WELL ON THE CM0+
|
|
*****************************************************************************/
|
|
/* Index of the semaphore used to manage the entry Stop Mode procedure */
|
|
#define CFG_HW_ENTRY_STOP_MODE_SEMID 4
|
|
|
|
/* Index of the semaphore used to access the RCC */
|
|
#define CFG_HW_RCC_SEMID 3
|
|
|
|
/* Index of the semaphore used to access the FLASH */
|
|
#define CFG_HW_FLASH_SEMID 2
|
|
|
|
/* Index of the semaphore used to access the PKA */
|
|
#define CFG_HW_PKA_SEMID 1
|
|
|
|
/* Index of the semaphore used to access the RNG */
|
|
#define CFG_HW_RNG_SEMID 0
|
|
|
|
/******************************************************************************
|
|
* HW TIMER SERVER
|
|
*****************************************************************************/
|
|
/**
|
|
* The user may define the maximum number of virtual timers supported.
|
|
* It shall not exceed 255
|
|
*/
|
|
#define CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER 6
|
|
|
|
/**
|
|
* The user may define the priority in the NVIC of the RTC_WKUP interrupt handler that is used to manage the
|
|
* wakeup timer.
|
|
* This setting is the preemptpriority part of the NVIC.
|
|
*/
|
|
#define CFG_HW_TS_NVIC_RTC_WAKEUP_IT_PREEMPTPRIO 3
|
|
|
|
/**
|
|
* The user may define the priority in the NVIC of the RTC_WKUP interrupt handler that is used to manage the
|
|
* wakeup timer.
|
|
* This setting is the subpriority part of the NVIC. It does not exist on all processors. When it is not supported
|
|
* on the CPU, the setting is ignored
|
|
*/
|
|
#define CFG_HW_TS_NVIC_RTC_WAKEUP_IT_SUBPRIO 0
|
|
|
|
/**
|
|
* Define a critical section in the Timer server
|
|
* The Timer server does not support the API to be nested
|
|
* The Application shall either:
|
|
* a) Ensure this will never happen
|
|
* b) Define the critical section
|
|
* The default implementations is masking all interrupts using the PRIMASK bit
|
|
* The TimerServer driver uses critical sections to avoid context corruption. This is achieved with the macro
|
|
* TIMER_ENTER_CRITICAL_SECTION and TIMER_EXIT_CRITICAL_SECTION. When CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION is set
|
|
* to 1, all STM32 interrupts are masked with the PRIMASK bit of the CortexM CPU. It is possible to use the BASEPRI
|
|
* register of the CortexM CPU to keep allowed some interrupts with high priority. In that case, the user shall
|
|
* re-implement TIMER_ENTER_CRITICAL_SECTION and TIMER_EXIT_CRITICAL_SECTION and shall make sure that no TimerServer
|
|
* API are called when the TIMER critical section is entered
|
|
*/
|
|
#define CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION 1
|
|
|
|
/**
|
|
* This value shall reflect the maximum delay there could be in the application between the time the RTC interrupt
|
|
* is generated by the Hardware and the time when the RTC interrupt handler is called. This time is measured in
|
|
* number of RTCCLK ticks.
|
|
* A relaxed timing would be 10ms
|
|
* When the value is too short, the timerserver will not be able to count properly and all timeout may be random.
|
|
* When the value is too long, the device may wake up more often than the most optimal configuration. However, the
|
|
* impact on power consumption would be marginal (unless the value selected is extremely too long). It is strongly
|
|
* recommended to select a value large enough to make sure it is not too short to ensure reliability of the system
|
|
* as this will have marginal impact on low power mode
|
|
*/
|
|
#define CFG_HW_TS_RTC_HANDLER_MAX_DELAY ( 10 * (LSI_VALUE/1000) )
|
|
|
|
/**
|
|
* Interrupt ID in the NVIC of the RTC Wakeup interrupt handler
|
|
* It shall be type of IRQn_Type
|
|
*/
|
|
#define CFG_HW_TS_RTC_WAKEUP_HANDLER_ID RTC_WKUP_IRQn
|
|
|
|
/******************************************************************************
|
|
* HW UART
|
|
*****************************************************************************/
|
|
|
|
#define CFG_HW_LPUART1_ENABLED 0
|
|
#define CFG_HW_LPUART1_DMA_TX_SUPPORTED 0
|
|
|
|
#define CFG_HW_USART1_ENABLED 0
|
|
#define CFG_HW_USART1_DMA_TX_SUPPORTED 0
|
|
|
|
#endif /*__HW_CONF_H */
|
|
|
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|