diff --git a/include/sys.h b/include/sys.h index 1a9c7dd..55f1e85 100644 --- a/include/sys.h +++ b/include/sys.h @@ -24,6 +24,7 @@ #include "nrf_sdh_soc.h" // #include "version.h" +#define APP_BLE_CONN_CFG_TAG 1 /**< A tag identifying the SoftDevice BLE configuration. */ void zsys_init(); void zsys_loop(); @@ -35,4 +36,13 @@ void zsys_loop(); #define ZARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) -#define ZPIN(port, num) NRF_GPIO_PIN_MAP(port, num) \ No newline at end of file +#define ZPIN(port, num) NRF_GPIO_PIN_MAP(port, num) + +#define ZERROR_CHECK(err_code) \ + do { \ + const uint32_t LOCAL_ERR_CODE = (err_code); \ + if (LOCAL_ERR_CODE != NRF_SUCCESS) { \ + ZLOGI("%s:%d ZERROR_CHECK(%s) fail:%d", __FILE__, __LINE__, #err_code, LOCAL_ERR_CODE); \ + APP_ERROR_CHECK(LOCAL_ERR_CODE); \ + } \ + } while (0) diff --git a/src/sys.c b/src/sys.c index 725f095..436ce41 100644 --- a/src/sys.c +++ b/src/sys.c @@ -1,38 +1,51 @@ #include "sys.h" -static void timers_init(void) { - ret_code_t err_code = app_timer_init(); - APP_ERROR_CHECK(err_code); -} - -static void log_init(void) { - ret_code_t err_code = NRF_LOG_INIT(NULL); - APP_ERROR_CHECK(err_code); - - NRF_LOG_DEFAULT_BACKENDS_INIT(); -} +void zsys_init() { + { + /******************************************************************************* + * 日志系统初始化 * + *******************************************************************************/ + ret_code_t err_code = NRF_LOG_INIT(NULL); + APP_ERROR_CHECK(err_code); -/**@brief Function for initializing power management. - */ -static void power_management_init(void) { - ret_code_t err_code; - err_code = nrf_pwr_mgmt_init(); - APP_ERROR_CHECK(err_code); -} + NRF_LOG_DEFAULT_BACKENDS_INIT(); + } -static void idle_state_handle(void) { - if (NRF_LOG_PROCESS() == false) { - nrf_pwr_mgmt_run(); + { + /******************************************************************************* + * 定时器初始化 * + *******************************************************************************/ + ret_code_t err_code = app_timer_init(); + APP_ERROR_CHECK(err_code); } -} -void zsys_init() { - log_init(); - timers_init(); - power_management_init(); + { + /******************************************************************************* + * 电源管理初始化 * + *******************************************************************************/ + ret_code_t err_code; + err_code = nrf_pwr_mgmt_init(); + APP_ERROR_CHECK(err_code); + } + { + /******************************************************************************* + * 蓝牙协议栈使能 * + *******************************************************************************/ + ret_code_t err_code; + err_code = nrf_sdh_enable_request(); + APP_ERROR_CHECK(err_code); + uint32_t ram_start = 0; + err_code = nrf_sdh_ble_default_cfg_set(APP_BLE_CONN_CFG_TAG, &ram_start); + APP_ERROR_CHECK(err_code); + // Enable BLE stack. + err_code = nrf_sdh_ble_enable(&ram_start); + APP_ERROR_CHECK(err_code); + } } void zsys_loop() { while (true) { - idle_state_handle(); + if (NRF_LOG_PROCESS() == false) { + nrf_pwr_mgmt_run(); + } } }