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

Unresolved symbol issue with Eclipse

I have a couple of "cannot-be-resolved" issue with Eclipse.

Issue 1:

Sometime when I set up a project in Eclipse, it runs into an issue where types like uint32_t or uint8_t is unresolved.

I looked into it a little and it seems to be due lines like these:

    __STATIC_INLINE uint8_t nrf_balloc_max_utilization_get(nrf_balloc_t const * p_pool);

It seems that Eclipse cannot parse __STATIC_INLINE and therefore understood that part as declaring uint8_t type.

Is this the reason? If so, or if not so, how could I fix this?

Issue 2:

Symbols like NRF_PWM0 or TIMER1_CC_NUM could not be resolved. I have no clue about how to fix this.

Please advice me.

For reference, I have set up Eclipse according to this guide: https://devzone.nordicsemi.com/tutorials/b/getting-started/posts/development-with-gcc-and-eclipse. All of these issue have occurred during my development with SDK v10.0.0, v12.3.0 and v14.x.x.

Other than this little annoyance, most other things work just fine.

Update: I should have mentioned, I have include <stdint.h> in the case of Issue 1, and I have also set up peripherals properly in sdk_config.h in the case of Issue 2. In both case, the compiler doesn't have any complaints, the firmware generated run as intended. The issues only present in Eclipse editor.

Parents
  • Issue 1:

    You should be able to solve it by including stdint.h in your main.c file. That’s what did the trick for me. 

    Issue 2:

    When you use modules such as the PWM or the TIMER, you need to go to the sdk_config.h file for the project, located in the config folder, and enable the modules over there. That’ll make sure that the definitions for such things are present. 

    Hope this helps!

Reply
  • Issue 1:

    You should be able to solve it by including stdint.h in your main.c file. That’s what did the trick for me. 

    Issue 2:

    When you use modules such as the PWM or the TIMER, you need to go to the sdk_config.h file for the project, located in the config folder, and enable the modules over there. That’ll make sure that the definitions for such things are present. 

    Hope this helps!

Children
Related