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?

Parents
  • Hi,

    You are right, this is a bug and is now reported to our SDK team. Thank you for your input.

    PS: I'll recommend using the zipped folder structure and Softdevice from here. The pack system is great when it works, but is a very common source of complicated file and source errors like this.

  • 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 */
    
Reply
  • 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 */
    
Children
No Data
Related