Beware that this post is related to an SDK in maintenance mode
More Info: Consider nRF Connect SDK for new designs
This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

NRFX error occur most of the time while taking examples from SDK15 and SDK17

I took the I2S example from SDK15 and while compiling I am getting the following errors. I tried but I am not able to solve it. The same happen when I have taken twi example from SDK15.

Their is a loot of confusion between NRF and NRFX is their any document which can help me solve this issue will be a great help.

compiling main.c...
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_SCK_PIN" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_LRCK_PIN" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_MCK_PIN" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_SDOUT_PIN" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_SDIN_PIN" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_IRQ_PRIORITY" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_MASTER" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_FORMAT" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_ALIGN" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_SWIDTH" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_CHANNELS" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_MCK_SETUP" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\..\..\..\integration\nrfx\legacy\nrf_drv_i2s.h(100): error:  #20: identifier "NRFX_I2S_CONFIG_RATIO" is undefined
          static nrfx_i2s_config_t const default_config = NRFX_I2S_DEFAULT_CONFIG;
..\..\..\main.c(240): error:  #20: identifier "NRF_LOG_TIMESTAMP_DEFAULT_FREQUENCY" is undefined
      err_code = NRF_LOG_INIT(NULL);
..\..\..\main.c(247): error:  #29: expected an expression
      nrf_drv_i2s_config_t config = NRF_DRV_I2S_DEFAULT_CONFIG;
..\..\..\main.c(253): error:  #20: identifier "I2S_SDIN_PIN" is undefined
      config.sdin_pin  = I2S_SDIN_PIN;
..\..\..\main.c(254): error:  #20: identifier "I2S_SDOUT_PIN" is undefined
      config.sdout_pin = I2S_SDOUT_PIN;
..\..\..\main.c: 0 warnings, 17 errors

  • I have solved the issue.

    On opening file location of the sdk_config.h file from the code i found that it was calling the sdk_config.h file which is located at

    C:\Keil_v5\ARM\ARMCC\include and this file doesn't include the terms that are undefined in the I2S example code.

    So I copied the sdk_config.h file from sdk15 and paste it at location C:\Keil_v5\ARM\ARMCC\include and then building the code all the errors were gone.

    The code was build successfully with zero errors.

    Que: What was the issue?

    Ans: The sdk_config.h file it was calling was the file of sdk8  which doesnot include the term in sdk15 (ofcourse sdk15 is updated version of sdk8).

    so just by calling the correct sdk_config.h file from sdk15 solved the issue.

  • I also observed that suppose in nrf_drv_i2s.h we have error which says that the term is undefined and by left clicking that term and by clicking go to the folder where it is defined, it is directed to sdk_config.h but still it is showing error of undefined term then try the below trick to solve the error.

    So for this also try this solution:

    Go to the folder where nrf_drv_i2s.h file is located and place the sdk_config.h file there it will solve the undefined error. Now try building the code it will work.

Related