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

error!!! i have got error in undefined reference in nRF52810....

Hello all,

I am using nRF52810 programming in segger embedded studio in windows 7. I am refer SDK nRF5 v5.2.0. I am trying to do i2c communication between sensor and nRF52810. I am create custom service for data reading and writing from device(phone).

I create new project in this i add all needed .c and .h file.when i build the program i got a error regarding undefined reference as shown below

1) Output/cuffee_sleeve Debug/Obj/nrfx_twim.o: In function `nrfx_twim_init':

undefined reference to `nrfx_prs_acquire'

2) Output/cuffee_sleeve Debug/Obj/nrfx_uarte.o: In function `nrfx_uarte_init':

undefined reference to `nrfx_prs_acquire'

3) Output/cuffee_sleeve Debug/Obj/nrfx_uarte.o: In function `nrfx_uarte_uninit':

undefined reference to `nrfx_prs_release'

I am add all file and also change in sdk.config.h . in that i change twi uarte enable.

So please solve my problem as soon as possible.

Thanks & regard

Urvisha Andani

Parents
  • You're missing some #defines in your sdk_config.h

    Because it is not enough for you to compile and link code from the SDK into your project.

    You also have to recite magical incantations with regarding #define in your 'sdk_config.h'

    For example: check to see if NRFX_TWIM_ENABLED is #defined somewhere. That likely will resolve your first issue.

    Do you like the linux command line?

    $ find $(SDK_ROOT) \( -name '*.h' -or -name '*.c' \) -exec grep <that symbol you are missing> {} \;

    Where SDK_ROOT is the path to your installed SDK.

    You are going to be using that. A lot.

Reply
  • You're missing some #defines in your sdk_config.h

    Because it is not enough for you to compile and link code from the SDK into your project.

    You also have to recite magical incantations with regarding #define in your 'sdk_config.h'

    For example: check to see if NRFX_TWIM_ENABLED is #defined somewhere. That likely will resolve your first issue.

    Do you like the linux command line?

    $ find $(SDK_ROOT) \( -name '*.h' -or -name '*.c' \) -exec grep <that symbol you are missing> {} \;

    Where SDK_ROOT is the path to your installed SDK.

    You are going to be using that. A lot.

Children
Related