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

SDKV12 sdk_config.h "master" ?

Hello. I have a question and a request for Nordic developers.

It is really super-helpful that in SDKV12 you converted to having a master sdk_config.h that contains what seems to be 100% of all sdk config parameters. This is terrific.

What has been making conversion from SDK11 a bit more challenging for me, however, is the fact that I can't seem to find a "master" sdk_config.h that contains 100% of all parameters. It has been a trial and error process that involves scanning the sdk_config.h's contained within the various examples, which seem to have differing subsets of sdk_config.h.

Furthermore, in at least one case I was stumped by the fact that there were no sdk_config.h's at all, in any of the examples, that had a parameter that turned out to be necessary and should have been in there: APP_GPIOTE_ENABLED.

I don't know what other developers do, but what I would like to be able to do each time a new SDK is released is this:

  1. Go into a subfolder of /documentation that contains the "master" sdk_config.h for that release
  2. Diff it against the "master" sdk_config for the previous release.
  3. Manually upgrade my own sdk_config.h's based upon what I find.

I say this because given the number of parameters it can be tricky and error-prone to propagate an app's config parameters from one release to another. If the Nordic devs would maintain the sdk_config.h in a "readily diff-able" manner, it would really help 3rd party devs in sdk transitions.

Thanks for your consideration.

Parents
  • To nordic admin/developers:

    Please take this constructively from one dev to another; that's how it's intended.

    I don't know if you've taken any action on this item, but in followup let me just show again how having a "master" sdk_config.h that is diffable from release to release would be extremely helpful to devs.

    I just tried to upgrade my project from 12.1 to 12.2.

    Unlike in the past, I read the release notes and although I did see some interesting things, nothing stood out as "you've got a lot of work ahead of you". After all, it IS just a point release, right?

    Well, the first issues I ran into related to the GPIOTE expansion from 1 set of 32 bit masks to a vector of them, because this was a breaking API change. But it was honestly very easy to identify and fix because the compiler errors helped point me immediately to what had changed in the API.

    After that (and after hacking around a nasty circular reference bug related to the ASSERT definition), my project built fine, but it crashed randomly in the first 15 seconds or so after the device booted. For the life of me I couldn't figure it out. It started out great, and then wham.

    I will spare you how I figured this out, but ultimately the problem is that 12.2 made a breaking change for anyone who uses UART. I needed to add the following to my sdk_config as of 12.2. Without this, my app crashes.

    // <e> UART0_ENABLED - Enable UART0 instance                                                                                                
    //==========================================================                                                                                
    #ifndef UART0_ENABLED
    #define UART0_ENABLED 1
    #endif
    

    This was not present in 12.1, and presumably it was related to the change (in the doc) related to support for more than one uart. (yay!)

    I am merely trying to convey, respectfully to the Nordic devs, that if there were a straightforward way for devs to do a DIFF betweeen the "complete" version of sdk_config.h from one release to the next, it would save us potentially a lot of time.

    Your consideration would be greatly appreciated.

Reply
  • To nordic admin/developers:

    Please take this constructively from one dev to another; that's how it's intended.

    I don't know if you've taken any action on this item, but in followup let me just show again how having a "master" sdk_config.h that is diffable from release to release would be extremely helpful to devs.

    I just tried to upgrade my project from 12.1 to 12.2.

    Unlike in the past, I read the release notes and although I did see some interesting things, nothing stood out as "you've got a lot of work ahead of you". After all, it IS just a point release, right?

    Well, the first issues I ran into related to the GPIOTE expansion from 1 set of 32 bit masks to a vector of them, because this was a breaking API change. But it was honestly very easy to identify and fix because the compiler errors helped point me immediately to what had changed in the API.

    After that (and after hacking around a nasty circular reference bug related to the ASSERT definition), my project built fine, but it crashed randomly in the first 15 seconds or so after the device booted. For the life of me I couldn't figure it out. It started out great, and then wham.

    I will spare you how I figured this out, but ultimately the problem is that 12.2 made a breaking change for anyone who uses UART. I needed to add the following to my sdk_config as of 12.2. Without this, my app crashes.

    // <e> UART0_ENABLED - Enable UART0 instance                                                                                                
    //==========================================================                                                                                
    #ifndef UART0_ENABLED
    #define UART0_ENABLED 1
    #endif
    

    This was not present in 12.1, and presumably it was related to the change (in the doc) related to support for more than one uart. (yay!)

    I am merely trying to convey, respectfully to the Nordic devs, that if there were a straightforward way for devs to do a DIFF betweeen the "complete" version of sdk_config.h from one release to the next, it would save us potentially a lot of time.

    Your consideration would be greatly appreciated.

Children
Related