This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Call to nrf_sdh_enable_request fails in SDK v16.0.0 (works in SDK v15.3.0)

I am porting our firmware from SDK v15.3.0 to 16.0.0. I believe I have most of the changes in place
as I am able to build the boot loader and get it to execute without any catastrophic errors.

However, when I try to port a basic advertisement project to this newer SDK, the call to 'nrf_sdh_enable_request()'
triggers a fault. The issue is triggered by this call inside that function:

    sdh_state_observer_notify(NRF_SDH_EVT_STATE_ENABLED);

It appears that handler eventually in the file 'nrf_drv_power.c' checks to see if the local module
(i.e. m_initialized) is set to TRUE/1.

For reasons that I cannot currently triage, the combination of using SDK v16.0.0 and the preprocessor symbol DEBUG_NRF
triggers this failure. This issue disappears if I DO NOT define DEBUG_NRF in the build.

RMV

Parents
  • Hi Hung,

    Thanks for your response, and it certainly confirms my suspicions too as to why I am seeing this behavior.
    Below is the stack trace when the assert traps the error

    And further down is a screen shot of the firmware that fails the assertion.

    In SDK v16.0.0, one of the only places I see that the variable 'm_initialized' is set to true
    with my specific SDK configuration is in this function below:

    I call 'nrf_pwr_mgmt_init()' before 'nrf_sdh_enable_request()' but do I also have to call 'nrf_drv_power_init()'  ?

    Cheers
    RMV

Reply
  • Hi Hung,

    Thanks for your response, and it certainly confirms my suspicions too as to why I am seeing this behavior.
    Below is the stack trace when the assert traps the error

    And further down is a screen shot of the firmware that fails the assertion.

    In SDK v16.0.0, one of the only places I see that the variable 'm_initialized' is set to true
    with my specific SDK configuration is in this function below:

    I call 'nrf_pwr_mgmt_init()' before 'nrf_sdh_enable_request()' but do I also have to call 'nrf_drv_power_init()'  ?

    Cheers
    RMV

Children
No Data
Related