#ifndef SDK_CONFIG_H
#define SDK_CONFIG_H
//*** <<< Use Configuration Wizard in Context Menu >>> ***
// ==========================================================
// SoC Platform
// Chip Power Mode
// <0=> LDO
// <1=> DCDC
#define CONFIG_SOC_DCDC_PAN1070 1
// System Clock
// <48=> 48 MHz (DPLL)
// <32=> 32 MHz (DPLL)
// System main frequency, Unit MHz
#define CONFIG_SYSTEM_CLOCK 32
// APB1 Clock Divisor
// <0=> No Divider
// <2=> 2
// <4=> 4
// <6=> 6
// <8=> 8
// <10=> 10
// <12=> 12
// <14=> 14
// <16=> 16
// Divisor of peripheral clocks on APB1, It can only be even numbers.
#define CONFIG_APB1_CLOCK_DIVISOR 2
// APB2 Clock Divisor
// <0=> No Divider
// <2=> 2
// <4=> 4
// <6=> 6
// <8=> 8
// <10=> 10
// <12=> 12
// <14=> 14
// <16=> 16
// Divisor of peripheral clocks on APB2, It can only be even numbers.
#define CONFIG_APB2_CLOCK_DIVISOR 2
// 32K Low-Speed Clock Source
// <0=> RCL (32000 Hz)
// <1=> XTL (32768 Hz)
// <2=> ACT32K (32000 Hz)
// Select a low-speed clock source
#define CONFIG_LOW_SPEED_CLOCK_SRC 1
// Force Calib RCL Clock
// Force calibrate the 32K RCL clock at system init stage.
// NOTE this only take effect when the Low-Speed Clock Source is seleted to RCL.
#define CONFIG_FORCE_CALIB_RCL_CLK 0
// Enable UART Log
#define CONFIG_UART_LOG_ENABLE 1
// Log UART Tx Pin
// <0=> P05 (UART0)
// <1=> P11 (UART0)
// <2=> P16 (UART0)
// <3=> P01 (UART1)
// <4=> P10 (UART1)
// <5=> P12 (UART1)
// <6=> P25 (UART1)
// <7=> P31 (UART1)
// Select a UART Tx pin for logging output.
#define CONFIG_LOG_UART_PIN 2
// Log UART Baudrate
// <115200=> 115200
// <230400=> 230400
// <460800=> 460800
// <921600=> 921600
// <1000000=> 1M
// <2000000=> 2M
#define CONFIG_LOG_UART_BAUDRATE 921600
//
// Enable RTT Log
// Note that the Low Power Mode (CONFIG_PM) should be disabled
// while using RTT log, since the Jlink SWD connnection would be lost
// at SoC DeepSleep or Standby Mode.
#define CONFIG_RTT_LOG_ENABLE 0
// RTT Log Buffer Size (Bytes)
// Configure Log RTT Up Buffer Size in Bytes (Channel 0).
#define CONFIG_LOG_RTT_UP_BUFFER_SIZE 512
//
// Enable RAM Function
// Adding essential code to SRAM could improve running performance.
#define CONFIG_RAM_FUNCTION 1
// Enable Flash LDO
// Enable the internal 1.8v flash LDO for flash power supply
// instead of the default flash power from SoC VBAT.
#define CONFIG_FLASH_LDO_EN 1
// Remap Vector Table to SRAM
#define CONFIG_VECTOR_REMAP_TO_RAM 1
// Enable Auto Power Optimization
// Several power configurations could be updated due to temperature change.
#define CONFIG_AUTO_OPTIMIZE_POWER_PARAM 0
// Temperature Sample Interval (in Seconds)
#define CONFIG_TEMP_SAMPLE_INTERVAL_S 300
// Enable DVDD Voltage Optimization
#define CONFIG_DVDD_VOL_OPTIMIZE_EN 1
//
// Enable Low Power Mode
#define CONFIG_PM 0
// Enable System Watchdog
#define CONFIG_SYSTEM_WATCH_DOG_ENABLE 0
// Keep Flash Power in Low Power Mode
// Select this means flash power would be retained in Low Power Mode, and
// there would be a little avg-current increase (about 1uA). The benefit is that
// the large peak current (>15mA) would not occur.
#define CONFIG_KEEP_FLASH_POWER_IN_LP_MODE 1
// Enable DeepSleep Mode 2
// Enable DeepSleep Mode 2 (Only LPLDOH in use), and the HW APB Timer Wakeup
// and PWM waveform output can be use in this mode.
#define CONFIG_DEEPSLEEP_MODE_2 0
// Increase LPLDOH trim value
// <0=> +0
// <1=> +1
// <2=> +2
// <3=> +3
// <4=> +4
// <5=> +5
// <6=> +6
// <7=> +7
// <8=> +8
// Increase LPLDOH voltage for specific LowPower scenario use.
#define CONFIG_SOC_INCREASE_LPLDOH_CALIB_CODE 0
// Continue Run After Standby M1 Wakeup
// Check this configuration to let CPU continue run after standby M1 waking up,
// or CPU would reset after waking up from standby M1.
#define CONFIG_PM_STANDBY_M1_WAKEUP_WITHOUT_RESET 0
// Enable AHB Clock Optimization
#define CONFIG_HCLK_OPTIMIZE_EN 1
//
//
// ========================================================== SoC Platform
// ==========================================================
// RTOS
// ******************************
// Timer Thread
// Use freeretos software timer
#define configUSE_TIMERS 1
// Timer thread priority
#define configTIMER_TASK_PRIORITY 2
// Support maximun number of timer queue length
#define configTIMER_QUEUE_LENGTH 12
// Timer thread stack size
#define configTIMER_TASK_STACK_DEPTH 128
//
// ****************************** Timer Thread
// ******************************
// BLE Host Thread
// Host thread stack size
#define MYNEWT_VAL_BLE_HOST_THREAD_STACK_SIZE 256
// Host thread prioirty
#define MYNEWT_VAL_BLE_HOST_THREAD_PRIORITY 6
//
// ****************************** BLE Host Thread
// Total Heap Size
#define configTOTAL_HEAP_SIZE 7000
// Print Current Heap Usage
#define CONFIG_FREERTOS_HEAP_PRINT 0
// Enable OS Idle Hook
#define configUSE_IDLE_HOOK 0
// Enable OS Tick Hook
#define configUSE_TICK_HOOK 0
// Enable OS Malloc Fail Hook
#define configUSE_MALLOC_FAILED_HOOK 1
//
// ========================================================== RTOS
// ==========================================================
// BLE Resource
// Support maximun number of BLE Master Link
#define CONFIG_BT_MAX_NUM_OF_CENTRAL 1
// Support maximun number of BLE Slave Link
#define CONFIG_BT_MAX_NUM_OF_PERIPHERAL 0
// Support gap broadcaster role
#define MYNEWT_VAL_BLE_ROLE_BROADCASTER 0
// Support gap central role
#define MYNEWT_VAL_BLE_ROLE_CENTRAL 1
// Support gap observser role
#define MYNEWT_VAL_BLE_ROLE_OBSERVER 1
// Support gap peripheral role
#define MYNEWT_VAL_BLE_ROLE_PERIPHERAL 0
// Support acl buffer counts receiving data from controller
#define MYNEWT_VAL_BLE_TRANSPORT_ACL_FROM_LL_COUNT 5
// Support acl buffer receiving data from controller
#define MYNEWT_VAL_BLE_TRANSPORT_ACL_SIZE 27
// Support hci events counts
#define MYNEWT_VAL_BLE_TRANSPORT_EVT_COUNT 4
// Support hci discardable events counts
#define MYNEWT_VAL_BLE_TRANSPORT_EVT_DISCARDABLE_COUNT 6
// Support l2cap buffer counts
#define MYNEWT_VAL_MSYS_1_BLOCK_COUNT 4
// Support l2cap buffer size
#define MYNEWT_VAL_MSYS_1_BLOCK_SIZE 120
// BLE Controller RF RX Buffer Number (must be a power of 2)
#define CONFIG_BLE_CONTROLLER_RF_RX_BUF_NUM 16
// BLE Controller RF TX Buffer Number (must be a power of 2)
#define CONFIG_BLE_CONTROLLER_RF_TX_BUF_NUM 16
// BLE Controller Packet Encrypt Time (unit:us)
#define CONFIG_BLE_CONTROLLER_LL_ENC_TIME 100
// BLE Controller More Data Number
#define CONFIG_BLE_CONTROLLER_MORE_DATA_NUM 6
// BLE Controller WhiteList Number
#define CONFIG_BLE_CONTROLLER_WIHTELIST_NUM 1
// BLE Controller Resolving List Number
#define CONFIG_BLE_CONTROLLER_RESOLVELIST_NUM 0
// BLE Controller Master Link Margin (unit:0.625ms)
#define CONFIG_BLE_CONTROLLER_MASTER_LINK_MARGIN 6
// Use Chip unique Mac Address
#define CONFIG_USER_CHIP_MAC_ADDR 1
// TX power
// <0=> 0dBm
// <1=> 1dBm
// <2=> 2dBm
// <3=> 3dBm
// <4=> 4dBm
// <5=> 5dBm
// <6=> 6dBm
// <7=> 7dBm
// <8=> 8dBm
// <9=> 9dBm
#define CONFIG_BT_CTLR_TX_POWER_DFT 0
// BLE Timing Debug
#define CONFIG_BT_CTLR_LINK_LAYER_DEBUG 0
//
// ========================================================== BLE Resource
// ==========================================================
// BLE Security Manager
// Security level selection
#define MYNEWT_VAL_BLE_SM_SC_LVL 0
// Support SM legacy pair
#define MYNEWT_VAL_BLE_SM_LEGACY 0
// Support SM security pair
#define MYNEWT_VAL_BLE_SM_SC 0
// IO capability
// <0=> DisplayOnly
// <1=> DisplayYesN
// <2=> KeyboardOnly
// <3=> NoInputNoOutput
// <4=> KeyboardDisplay Only
#define CONFIG_HS_IO_CAPABILITY 3
// Support SM Bonding
#define MYNEWT_VAL_BLE_SM_BONDING 0
// Support SM MITM
#define MYNEWT_VAL_BLE_SM_MITM 0
// Support SM oob
#define MYNEWT_VAL_BLE_SM_OOB_DATA_FLAG 0
// Support persist store key
#define MYNEWT_VAL_BLE_STORE_CONFIG_PERSIST 0
// Support maximun store bonded devices
#define MYNEWT_VAL_BLE_STORE_MAX_BONDS 1
// Support maximun store bonded device's cccd
#define MYNEWT_VAL_BLE_STORE_MAX_CCCDS 8
// Support host software rpa feature
#define MYNEWT_VAL_HOST_SOFTWARE_RPA 0
//
// ========================================================== BLE Security Manager
// ==========================================================
// BLE Services
//
// ========================================================== BLE Services
// Flash KVStore Area
// ==========================================================
// Configure Key-Value-Store (kvstore) Area on Flash
// Start Address
#define CONFIG_SETTINGS_START_ADDR 0x78000
// Number of Flash Sectors (>=2)
// 1 flash sector means 4096 Bytes
#define CONFIG_SETTINGS_SECTOR_NUM 4
//
// ========================================================== Flash KVStore Area
// Flash Map
// ==========================================================
// Support BootLoader
#define CONFIG_BOOT_ENABLE 0
// Flash Image Size
// <0xFF000=> 1M
// <0x7F000=> 512K
// <0x3F000=> 256K
#define CONFIG_FLASH_MAP_SIZE 520192
// Support Back-up area in OTA model
#define CONFIG_OTA_IN_APP 0
//
// ========================================================== Flash Map
//*** <<< end of configuration section >>> ***
#endif /* SDK_CONFIG_H */