<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SDKV12 sdk_config.h &amp;quot;master&amp;quot; ?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/16188/sdkv12-sdk_config-h-master</link><description>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</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 02 Feb 2017 22:46:23 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/16188/sdkv12-sdk_config-h-master" /><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61799?ContentTypeID=1</link><pubDate>Thu, 02 Feb 2017 22:46:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ff99d722-a5f0-49db-8107-b47c0ab84886</guid><dc:creator>Paul</dc:creator><description>&lt;p&gt;I agree with Krzysztof, pin assignment shouldn&amp;#39;t be in sdk_config.h. For example TWI pins, pin numbers are part of nrf_drv_twi_config_t being passed into nrf_drv_twi_init. Different developer has different opinion for where the pin definition needs to be.
I think there could be a &amp;quot;master/example&amp;quot; sdk_config.h, but not a &amp;quot;standard&amp;quot; one.
Different applications will require different project structuring. Different developers also have their unique &amp;quot;habits&amp;quot; for organizing defines.
And I do agree that I spend some time every time upgrading into a new SDK revision, and got caused many times because the code did pass compiler/linker.
I understand that this is probably the most efficient way for Nordic to upgrade their SDK without considering too much about backwards compatibility.
But thanks to this forum, luckily most of the traps have been reported here.
Bookmark the devzone and move on :-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61801?ContentTypeID=1</link><pubDate>Sat, 21 Jan 2017 12:53:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:34286c9c-bb4a-405c-9635-d5f253c24038</guid><dc:creator>Eliot Stock</dc:creator><description>&lt;p&gt;Totally agree. This has caught me out more than once and wasted a lot of time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61800?ContentTypeID=1</link><pubDate>Fri, 23 Dec 2016 20:38:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5a3301fa-017a-4d58-b02e-e57fe3881746</guid><dc:creator>Ray</dc:creator><description>&lt;p&gt;To nordic admin/developers:&lt;/p&gt;
&lt;p&gt;Please take this constructively from one dev to another; that&amp;#39;s how it&amp;#39;s intended.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know if you&amp;#39;ve taken any action on this item, but in followup let me just show again how having a &amp;quot;master&amp;quot; sdk_config.h that is diffable from release to release would be extremely helpful to devs.&lt;/p&gt;
&lt;p&gt;I just tried to upgrade my project from 12.1 to 12.2.&lt;/p&gt;
&lt;p&gt;Unlike in the past, I read the release notes and although I did see some interesting things, nothing stood out as &amp;quot;you&amp;#39;ve got a lot of work ahead of you&amp;quot;.  After all, it IS just a point release, right?&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;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&amp;#39;t figure it out.  It started out great, and then wham.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// &amp;lt;e&amp;gt; UART0_ENABLED - Enable UART0 instance                                                                                                
//==========================================================                                                                                
#ifndef UART0_ENABLED
#define UART0_ENABLED 1
#endif
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;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!)&lt;/p&gt;
&lt;p&gt;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 &amp;quot;complete&amp;quot; version of sdk_config.h from one release to the next, it would save us potentially a lot of time.&lt;/p&gt;
&lt;p&gt;Your consideration would be greatly appreciated.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61791?ContentTypeID=1</link><pubDate>Wed, 07 Sep 2016 07:27:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3e5c3cf7-3850-41eb-98a0-0e39f6238d7b</guid><dc:creator>pcbreflux</dc:creator><description>&lt;p&gt;Good point, there is a need for a &amp;quot;master&amp;quot; sdk_config.h with all possible configurations for the current SDK Version.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61798?ContentTypeID=1</link><pubDate>Mon, 05 Sep 2016 15:05:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7aa6144f-e6a7-4391-a0a9-e85905c49ee2</guid><dc:creator>Keton</dc:creator><description>&lt;p&gt;In case of pins current &lt;code&gt;sdk_config.h&lt;/code&gt; is inconsistent as it contains pin definitions for UART (in nRF_log config), PWM and QDEC but omits them for TWI, SPI and the rest. Additionally it contains clock configuration which makes it platform (nRF51/nRF52) dependent. Ideally there would be single platform independent config file containing as many SDK options as possible and other file containing everything closely related to hardware (clock, pins, platform dependent flags, etc.). Also it still would be very helpful to have official list of SDK defines along with explanation. Of course with some time and effort we could grep out all #ifdefs form SDK code but at least some of them aren&amp;#39;t meant to be set by user.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61797?ContentTypeID=1</link><pubDate>Mon, 05 Sep 2016 13:17:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1964c7dd-d6ef-45ad-b89d-150c4e8b0288</guid><dc:creator>Krzysztof Chruscinski</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m glad you like moving toward single sdk_config.h. We wanted to make sdk_config.h maintainable between releases and at least all ble_peripheral examples should contain same sdk_config.h (with different modules enabled). Sections and modules in sdk_config.h are sorted in alphabetical order so changes between releases should be visible. It&amp;#39;s a first release with common config file so we expect to get feedback and adjust.&lt;/p&gt;
&lt;p&gt;Regarding pins configuration it was intentionally left out because sdk_config.h contains static configuration only and in case of drivers it&amp;#39;s a default configuration (something that should help user start quickly with the driver) and it&amp;#39;s hard to determine default pin configuration, that would be useless. Another thing is that same peripheral might have different run time configuration and then having pin configuration in sdk_config.h would be confusing.&lt;/p&gt;
&lt;p&gt;There is a way to extend sdk_config.h with application configuration since sdk_config.h optionally includes &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v12.0.0/sdk_config.html?cp=4_0_0_1_5_3#sdk_config_overriding"&gt;&amp;quot;app_config.h&amp;quot;&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61796?ContentTypeID=1</link><pubDate>Mon, 05 Sep 2016 13:03:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d8a741c7-a5c4-4a75-9fc3-6432474acba4</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;you will soon get an answer from Krzysztof, who have better hold on this topic.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61795?ContentTypeID=1</link><pubDate>Mon, 05 Sep 2016 11:59:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30cca810-514b-4ebe-836d-f836f50f0043</guid><dc:creator>Ray</dc:creator><description>&lt;p&gt;I am not talking about any Nordic example here, Aryan.  Rather, to be clear, I&amp;#39;m talking about what I found when trying to convert my own app.&lt;/p&gt;
&lt;p&gt;What I did (and likely most developers would do) is to first browse the Nordic examples to get some idea of changes that will need to be made to a) makefile, b) .ld file, c) config files.  And that&amp;#39;s what I did.&lt;/p&gt;
&lt;p&gt;I copied/modified and assembled parameters from various Nordic example sdk_config.h&amp;#39;s, trying to put one together that would match my app&amp;#39;s needs.&lt;/p&gt;
&lt;p&gt;By the time I did the first builds of my app, things compiled cleanly however there were a number of things that couldn&amp;#39;t be found at link time.&lt;/p&gt;
&lt;p&gt;At that point, I eventually figured out that I&amp;#39;d negledted to set some variables in sdk_config to 1 - like APP_SCHEDULER_ENABLED.&lt;/p&gt;
&lt;p&gt;For one set of unresolved references in my app (GPIOTE), I couldn&amp;#39;t find any #define in any of the Nordic-supplied sdk_config.h&amp;#39;s that related to GPIOTE.  However, when I finally looked at the app_gpiote.c source code, I saw that APP_GPIOTE_ENABLED is required.&lt;/p&gt;
&lt;p&gt;The fact that Nordic engineers neglected to put APP_GPIOTE_ENABLED into any of the sdk_config.h&amp;#39;s was likely an oversight, which is no big deal but it just cost a bit of time.&lt;/p&gt;
&lt;p&gt;And so again, to help other developers, I was suggesting a /documentation/config/sdk_config.h or somesuch that would serve as the &amp;quot;truth&amp;quot; that would be easily diff-able by developers from one version of the SDK to the next, that would be the master aggregation of #definess controlling all SDK functionality.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61794?ContentTypeID=1</link><pubDate>Mon, 05 Sep 2016 11:17:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5654ad02-df27-4825-ace7-16bb53b0e9b6</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;blockquote&gt;
&lt;p&gt;Furthermore, in at least one case I
was stumped by the fact that there
were no sdk_config.h&amp;#39;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.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I am bit confused here Ray, are you saying that the needed flag was not enabled causing the example to not work?&lt;/p&gt;
&lt;p&gt;@Keton, Ifyou go to SPI example you can see that the pins are added in sdk_config.h file. So to answer your question, pin configuration goes into sdk_config.h file for configurable peripherals like TWI, SPI etc, similar to what it was before in SDK11-&amp;gt;nrf_drv_config.h&lt;/p&gt;
&lt;p&gt;I will talk to the team of what they think about the master_config.h file.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61793?ContentTypeID=1</link><pubDate>Sun, 04 Sep 2016 15:09:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ba44fc35-5256-4c41-b7ff-14e56920b8e5</guid><dc:creator>Ray</dc:creator><description>&lt;p&gt;@keton this is a very good point.  I&amp;#39;m actually a bit confused about &amp;quot;officially&amp;quot; whether Nordic is suggesting that we put our pin definitions into sdk_config.h, or into custom_board.h (via boards.h &amp;amp;&amp;amp; -DBOARD_CUSTOM).&lt;/p&gt;
&lt;p&gt;Right now I am maintaining pins in custom_board.h and stripped out the handful of spurious pin definitions from sdk_config.h.&lt;/p&gt;
&lt;p&gt;I think it would be helpful for Nordic to give us some definitive guardrails here - such as &amp;quot;put all SDK config parameters into sdk_config.h, and put all your board/pin definitions into custom_board.h&amp;quot;, and put all your app and peripheral definitions into your own header files&amp;quot;.&lt;/p&gt;
&lt;p&gt;If on the other hand we are moving to put all custom board/bsp information into sdk_custom.h, that&amp;#39;s also fine.  I just think the dev community could use some prescriptive guidance here.&lt;/p&gt;
&lt;p&gt;thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SDKV12 sdk_config.h "master" ?</title><link>https://devzone.nordicsemi.com/thread/61792?ContentTypeID=1</link><pubDate>Sun, 04 Sep 2016 14:53:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:caaea691-606d-45ff-84c6-cf7415efbb01</guid><dc:creator>Keton</dc:creator><description>&lt;p&gt;+1 for this also I&amp;#39;ve so far noticed that not all options of given module are included in example configuration. For example NRF_LOG module has option to define log output colors only for some levels only whereas code of that module allows to configure them for all levels. Another thing is pin definitions for TWI, SPI, etc. Those used to be defined in nrf_drv_config.h but are absent from sdk_config.h&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>