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

sdk 8.1.0 compilation fails due to redefinition

Hey Nordic--

I updated my Keil project from SDK v8.0.0 to v8.1.0 and immediately get some compilation errors due to redefinition of symbols.

In nrf_sd_def.h, I think you meant for:

#define NRF_PPI_RESTRICTED              0                        /**< 1 if PPI peripheral is restricted, 0 otherwise. */

to be:

#define SD_PPI_RESTRICTED              0                        /**< 1 if PPI peripheral is restricted, 0 otherwise. */

and similarly for the rest of the #defines in that file.

Then I run into another error about SD_PPI_CHANNELS_USED not being defined anywhere, and it's not, since in my project SOFTDEVICE_PRESENT is switched on and nrf_sd_def.h doesn't contain that symbol.

So what gives? Where should I put the missing SD_PPI_CHANNELS_USED definition? Why wasn't it included in the SDK release?

  • Same issue in SDK 9.0

    Im using a softdevice 110, Now my question;

    #define NRF_PPI_RESTRICTED    0  /**< 1 if PPI peripheral is restricted, 0 otherwise. */
    

    should be

    #define SD_PPI_RESTRICTED	 1uL /**< 1 if PPI peripheral is restricted, 0 otherwise. */
    

    or

    #define SD_PPI_RESTRICTED	  0uL /**< 1 if PPI peripheral is restricted, 0 otherwise. */
    

    in nrf_sd_def.h???

  • Seems like you are right. I have reported it to the SDK team. SD_PPI_RESTRICTED should be 0UL as the PPI is no longer a restricted resource in S110.

    These are the defines in the S110 nrf_sd_def.h files in SDK 9:

    #define SD_PPI_RESTRICTED               0            /**< 1 if PPI peripheral is restricted, 0 otherwise. */
    #define SD_PPI_CHANNELS_USED       		0xFFF0C000uL /**< PPI channels utilized by SotfDevice (not available to th spplication). */
    #define SD_PPI_GROUPS_USED              0x0000000CuL /**< PPI groups utilized by SoftDevice (not available to the application). */
    #define SD_TIMERS_USED                  0x00000001uL /**< Timers used by SoftDevice. */
    #define SD_SWI_USED                     0x0000003CuL /**< Software interrupts used by SoftDevice */
    
Related