colin 发表于 2019-3-18 15:33:06

NRF_LOG_INFO(),NRFX_LOG_INFO()打印函数在一些文件无效

NRF_LOG_INFO(),NRFX_LOG_INFO()两个函数怎么在一些文件中无效,打印不出信息。

1.在nrfx_gpiote.c文件,nrfx_gpiote_in_init()函数两个打印语句编译通过,但都没打印出信息

nrfx_err_t nrfx_err_tnrfx_gpiote_in_init(nrfx_gpiote_pin_t               pin,
                               nrfx_gpiote_in_config_t const * p_config,
                               nrfx_gpiote_evt_handler_t       evt_handler)
{
    NRFX_ASSERT(pin < NUMBER_OF_PINS);
    nrfx_err_t err_code = NRFX_SUCCESS;

        NRF_LOG_INFO("nrfx_gpiote_in_init.");

    /* Only one GPIOTE channel can be assigned to one physical pin. */
    if (pin_in_use_by_gpiote(pin))
    {
      err_code = NRFX_ERROR_INVALID_STATE;
    }
    else
    {
      int8_t channel = channel_port_alloc(pin, evt_handler, p_config->hi_accuracy);
      if (channel != NO_CHANNELS)
      {
            if (!p_config->skip_gpio_setup)
            {
                if (p_config->is_watcher)
                {
                  nrf_gpio_cfg_watcher(pin);
                }
                else
                {
                  nrf_gpio_cfg_input(pin, p_config->pull);
                }
                pin_configured_set(pin);
            }

            if (p_config->hi_accuracy)
            {
                nrf_gpiote_event_configure((uint32_t)channel, pin, p_config->sense);
            }
            else
            {
                m_cb.port_handlers_pins[channel -
                                        GPIOTE_CH_NUM] |= (p_config->sense) << SENSE_FIELD_POS;
            }
      }
      else
      {
            err_code = NRFX_ERROR_NO_MEM;
      }
    }

    NRFX_LOG_INFO("Function: %s, error code: %s.", __func__, NRFX_LOG_ERROR_STRING_GET(err_code));
    return err_code;
}

2.在nrf_pwr_mgmt.c文件nrf_pwr_mgmt_run(void)函数,我故意漏掉NRF_LOG_INFO("nrf_pwr_mgmt_run.")语句“;”
号,编译也不会出错,但打一些乱字符会出错。

void nrf_pwr_mgmt_run(void)
{
    PWR_MGMT_FPU_SLEEP_PREPARE();
    PWR_MGMT_SLEEP_LOCK_ACQUIRE();
    PWR_MGMT_CPU_USAGE_MONITOR_SECTION_ENTER();
    PWR_MGMT_DEBUG_PIN_SET();

        NRF_LOG_INFO("nrf_pwr_mgmt_run.")
       
    // Wait for an event.
#ifdef SOFTDEVICE_PRESENT
    if (nrf_sdh_is_enabled())
    {
      ret_code_t ret_code = sd_app_evt_wait();
      ASSERT((ret_code == NRF_SUCCESS) || (ret_code == NRF_ERROR_SOFTDEVICE_NOT_ENABLED));
      UNUSED_VARIABLE(ret_code);
    }
    else
#endif // SOFTDEVICE_PRESENT
    {
      // Wait for an event.
      __WFE();
      // Clear the internal event register.
      __SEV();
      __WFE();
    }

    PWR_MGMT_DEBUG_PIN_CLEAR();
    PWR_MGMT_CPU_USAGE_MONITOR_SECTION_EXIT();
    PWR_MGMT_SLEEP_LOCK_RELEASE();
}

colin 发表于 2019-3-18 17:19:36

第2个问题我已找到原因;
是sdk_config.h文件#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED0
没有置1,开关没打开。
漏掉“;”号编译不出错,是因打印语句是的#define,也没有“;”号
#define NRF_LOG_INFO(...)               NRF_LOG_INTERNAL_INFO( __VA_ARGS__)

admin 发表于 2019-3-18 19:32:15

colin 发表于 2019-3-18 17:19
第2个问题我已找到原因;
是sdk_config.h文件#define NRF_PWR_MGMT_CONFIG_LOG_ENABLED0
没有置1,开关 ...

勾选这个试试
页: [1]
查看完整版本: NRF_LOG_INFO(),NRFX_LOG_INFO()打印函数在一些文件无效