<?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>Project file-system structure - best practice.</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/58856/project-file-system-structure---best-practice</link><description>I have recently switched to using SEGGER embedded studio (SES) which seems to be advocated by Nordic. I have arrived from Eclipse which though extremely flexible is complex in the extreme. So I greeted SES with joyful anticipation. I should mention here</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 11 Mar 2020 07:26:35 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/58856/project-file-system-structure---best-practice" /><item><title>RE: Project file-system structure - best practice.</title><link>https://devzone.nordicsemi.com/thread/239254?ContentTypeID=1</link><pubDate>Wed, 11 Mar 2020 07:26:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:69731420-9cd1-43b7-9c98-85ca2a7ac095</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Sorry, I thought I linked to the blog post in my last reply. Here you go!&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/segger-embedded-studio-a-cross-platform-ide"&gt;https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/segger-embedded-studio-a-cross-platform-ide&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best of luck and regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Project file-system structure - best practice.</title><link>https://devzone.nordicsemi.com/thread/239192?ContentTypeID=1</link><pubDate>Tue, 10 Mar 2020 16:26:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2523adf1-4a83-4854-b97d-c9fb393a7070</guid><dc:creator>Michael Lamming</dc:creator><description>&lt;p&gt;Hi Simon,&amp;nbsp; Yes it is a bit of a challenge, but if you have a project that uses more than one manufacturers uC. Then it&amp;#39;s a tug-of-way between who get&amp;#39;s &amp;quot;embedded&amp;quot; in whom.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve probably read the SEGGER document, but point me at it again please, in case I missed a trick.&lt;/p&gt;
&lt;p&gt;Thanks for your help. I hope I was able to &amp;quot;illuminate the opportunity&amp;quot; :-)&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll consider my suggestion &amp;quot;solved&amp;quot;,&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;pre class="tw-data-text tw-text-large tw-ta" id="tw-target-text" dir="ltr"&gt;&lt;span lang="no"&gt;Takk&lt;br /&gt;&lt;/span&gt;Mik&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Project file-system structure - best practice.</title><link>https://devzone.nordicsemi.com/thread/239040?ContentTypeID=1</link><pubDate>Tue, 10 Mar 2020 10:09:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:54f63e2f-b27d-4d0f-9fe2-24ca90c0c0e0</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Generally, we don&amp;#39;t suggest moving the project out of the SDK due to all the extra work it causes (like you&amp;#39;re describing), but I see why one would want to have a project in &amp;quot;its own&amp;quot; folder, and see the use of a guide on how you would do this. I will forward your suggestion for this kind of a guide/blog post to be made, but I can&amp;#39;t promise it will be made any time soon.&lt;/p&gt;
&lt;p&gt;What we do have, is the intro blog post to Segger Embedded Studios, which explains how to add user includes, preprocessor definitions, etc.&lt;/p&gt;
&lt;p&gt;You will have to decide whether it is worth moving projects out of the SDK or not. As far as I can see, the suggestions you have looks like a good place to start. We&amp;#39;re glad to receive suggestions for new blog posts, tutorials, and constructive criticism like this. It helps us as a company to provide a better product, so don&amp;#39;t feel bad for letting us know what we can do better.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Project file-system structure - best practice.</title><link>https://devzone.nordicsemi.com/thread/238935?ContentTypeID=1</link><pubDate>Mon, 09 Mar 2020 18:26:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8c3b85a3-9ad5-45fb-af1f-1f8a63649341</guid><dc:creator>Michael Lamming</dc:creator><description>&lt;p&gt;Thanks Simon.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I can see that my question/suggestion was not well-phrased.&lt;/p&gt;
&lt;p&gt;I&amp;nbsp;was trying to clarify a process to share with some other developers.&amp;nbsp;Imagine trying to coach/kick-start some &lt;span&gt;reasonably experienced&amp;nbsp;&lt;/span&gt;people who have used a different IDE, or micro-controller.&amp;nbsp; They understand what&amp;#39;s needed in theory, but there are a lot of approaches - some of which are sub-optimal.&amp;nbsp; It seems to me that a very useful tutorial/video would explain how to make your &amp;quot;first-base&amp;quot; novel program, so that you can get down to writing actual code.&amp;nbsp; Let me have a naive attempt at explaining the steps.&amp;nbsp; I&amp;#39;m following what I think is Nordic&amp;#39;s suggested acceptable practice.&amp;nbsp; Please try&amp;nbsp;to&amp;nbsp;actually do this and see how many tiny/puzzling/time-consuming gotchas you encounter?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Find an example program that most closely resembles the program you are intending to build. &lt;br /&gt;e.g. C:\nRF_SDK\nRF5_SDK_16.0.0_98a08e2\examples\ble_peripheral\ble_app_beacon&lt;/li&gt;
&lt;li&gt;Copy the ble_app_beacon directory to your chosen development location. e.g.&amp;nbsp;C:\Users\lamming\Documents\SES_Projects2\nRF_Projects\MyStuff&lt;/li&gt;
&lt;li&gt;Open the appropriate EMPROJECT, e.g. ble_app_beacon_pca10056_s140&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Clearly&amp;nbsp;it won&amp;#39;t build for a bunch of reasons.&amp;nbsp; For example the import and source references in &lt;span&gt;EMPROJECT&amp;nbsp;&lt;/span&gt;are now relative to the wrong place.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So now the new user should open the&amp;nbsp;Options dialog&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Edit every relative reference to replace all those pesky &amp;quot;../../../../../..&amp;quot; with the correct path&amp;nbsp; (since this is tedious - copy all the references to a text editor and do a global replace, then paste them back?)&lt;/li&gt;
&lt;li&gt;Perhaps even create&amp;nbsp;&lt;span&gt;a new symbol definition&amp;nbsp;&lt;/span&gt;&lt;span&gt;SDK_ROOT=&lt;/span&gt;&lt;span&gt;C:\nRF_SDK\nRF5_SDK_16.0.0_98a08e2\ and replace&amp;nbsp;the &amp;quot;&amp;quot;../../../../../..&amp;quot;&amp;nbsp; stuff with a symbol, to make the code marginally more relocatable.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now for example, add a line of code that uses some facility that requires a module-DEF that is not in the current sdk.config file. Hunt down the file, perhaps in a different application with the relevant DEFS in it.&amp;nbsp; Now there are multiple approaches.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create a&amp;nbsp;new app.config and figure out how to include it in a general way, and add the definitions required by the new module.&lt;br /&gt;&lt;br /&gt;or&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;Learn the format used by the CMSIS wizard&lt;/li&gt;
&lt;li&gt;Figure out how/where to add a new section to sdk_config, so it all works correctly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Obviously there&amp;#39;s more trivial stuff...&lt;/p&gt;
&lt;p&gt;Please understand that I&amp;#39;m not trying to throw rocks.&amp;nbsp; I&amp;#39;m an ardent Nordic supporter and want to see more people adopting this platform.&amp;nbsp; I&amp;#39;m suggesting that a tutorial, or document of the form I describe could be very helpful.&amp;nbsp; If there is such a thing out there, I would be relieved, though appropriately embarrassed to be shown it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Project file-system structure - best practice.</title><link>https://devzone.nordicsemi.com/thread/238829?ContentTypeID=1</link><pubDate>Mon, 09 Mar 2020 13:27:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e269135a-0336-43f9-a790-7e37816ce617</guid><dc:creator>Simonr</dc:creator><description>&lt;p&gt;Hi Michael&lt;/p&gt;
&lt;p&gt;1. It is indeed recommended to place the SDK folder close to the file-system root to avoid build issues due to the length of the paths. We also generally recommend to start out with one of our examples when beginning a project, as you usually will use the peripherals/services of at least one of the already existing examples, and then adding additional functionalities to that project. This will generally save you the time of setting up a project from scratch.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. In existing projects, most of these defines are defined in the sdk_config.h file, which is why there are so many&amp;nbsp;_ENABLED defines. I suggest you make one configuration file like this for your custom projects as well.&lt;/p&gt;
&lt;p&gt;3. When adding .h files to your SES project, we recommend adding &lt;strong&gt;user include directorie&lt;/strong&gt;s in the preprocessor options of your project (see picture below).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-8e2c0f1c761c4408a543293904078a8b/User_5F00_include_5F00_directories.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;4. For preprocessor definitions, this comes down to your personal preference. I for one, prefer using the preprocessor definitions from the options for setting definitions in my project, but this is entirely up to you.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Simon&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Project file-system structure - best practice.</title><link>https://devzone.nordicsemi.com/thread/238682?ContentTypeID=1</link><pubDate>Sun, 08 Mar 2020 18:18:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf254f03-4631-452b-87c3-3dde7fda9b5b</guid><dc:creator>Michael Lamming</dc:creator><description>&lt;p&gt;I wish I could correct spelling errors in thsi!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>