<?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>S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/5965/s110-v8-0-0-softdevice-size-and-dfu-update</link><description>With S110 v8.0.0&amp;#39;s size increased to 96K, I&amp;#39;m concerned that my current memory layout is going to prevent me from upgrading to a future softdevice. 
 It seems that the only safe way to do a major softdevice version update is to upgrade both the softdevice</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 14 Mar 2015 23:55:16 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/5965/s110-v8-0-0-softdevice-size-and-dfu-update" /><item><title>RE: S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/thread/20800?ContentTypeID=1</link><pubDate>Sat, 14 Mar 2015 23:55:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0696e7bb-2340-4a42-b5aa-db480831214b</guid><dc:creator>Clem Taylor</dc:creator><description>&lt;p&gt;Yes, we rolled our own bootloader and are just using ble_dfu.c for protocol compatibility.&lt;/p&gt;
&lt;p&gt;I have an external SPI flash on the device and I strongly considered using it for scratch space for the a firmware upgrade or storing a backup copy of the device firmware. The idea is the bootloader would not depend on the softdevice and just validate CRCs and copy data from the SPI flash to the onchip flash. If it was kept simple enough we wouldn&amp;#39;t have any need to upgrade the bootloader. However, I ended up spending the effort to get a working BLE DFU bootloader. If I had it to do over I would have gone down this path.&lt;/p&gt;
&lt;p&gt;Initially I reserved 32K for the bootloader which was a mistake, After a bit of a diet I got the bootloader down to 24K. I could easily make it a bit smaller, but I needed to leave some of the uart debug data in to make it easier for the application application side.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/thread/20799?ContentTypeID=1</link><pubDate>Fri, 13 Mar 2015 16:59:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a937fb75-4577-4762-abff-5a790b5ebdce</guid><dc:creator>Asbj&amp;#248;rn S&amp;#230;b&amp;#248;</dc:creator><description>&lt;p&gt;Clem (and others),&lt;/p&gt;
&lt;p&gt;you are right, for an upgrade of the SoftDevice to a new major version (or to a different SoftDevice) you should assume that a bootloader update is also needed.  SoftDevice major revisions will typically (always, so far) be due to API changes.  Those API changes may affect the parts of the SoftDevice used by the bootloader, in which case the bootloader must be updated at the same time.&lt;/p&gt;
&lt;p&gt;The maximum SoftDevice size that can be updated is :
(FLASH_SIZE - MBR_SIZE - 2&lt;em&gt;BOOTLOADER_SIZE)/2 + MBR_SIZE.  That is (numbers in kBs):
(256 - 4 - 2&lt;/em&gt;BL_SIZE)/2 + 4 kB.  (Other data stored in flash during the update will also subtract from this.)&lt;/p&gt;
&lt;p&gt;DFU is an important feature to us, we believe it is of great value both to you (our customers) and to ourselves.  And we are very aware of the limitation this imposes on the size of the SoftDevice.  The bootloader delivered with the SDK is around 13 kB (reserves 16 kB, I believe).  Using that bootloader, a SoftDevice of 114 kB would be the largest that could be updated.&lt;/p&gt;
&lt;p&gt;As for the SoftDevice size, we are trying to strike a balance here.  We are adding new functionality (many of these requests come from customers), and that adds to the code size.  We do want to keep the code small, but there are costs associated with this.  Effort spent on optimizing code size is effort not spent on feature development and maintenance.  Optimized code may also be harder to maintain and more prone to bugs.  So far, we think we have a balance between code size, memory size, feature set and feature development speed, bug fixes and maintenance cost that seems to serve our customers well.  Customers have different needs, though, so if you have input to how we prioritize this, we appreciate your feedback and will take it into account.  (Concrete feedback through technical support or sales is what we prefer.)&lt;/p&gt;
&lt;p&gt;As for future plans, I will (at lest for now) refer you to official communication from our sales department.  They should be able to give you the most up-to-date roadmap on planned products and versions.  (Sorry for being vague here, but that is how responsibility is split.)&lt;/p&gt;
&lt;p&gt;A concrete question: Since you have rolled your own bootloader (or at least are capable of modifiying it heavily) and also have an external flash available - would it be possible to use that external flash for temporary storage of new bootloader/SoftDevice?&lt;/p&gt;
&lt;p&gt;With kind regards
Asbjørn S. (SoftDevice project leader)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; (2015-03-16)
I can say a bit more about our future plans.  In the S110 verson 8.0.0, we have managed to add some often-requested features and we have also aligned the API with the S120.  We are committed to maintain the S110 8.x series, with bugfix releases and possibly minor releases as required.  Any such versions will have the same size as the version 8.0.0.  But we do not currently have plans for new major versions of the S110 SoftDevice.  That is, we have no plans for the S110 that will require a size change.  (A size change will require a new major version, as it breaks backwards compatibility.)  I hope this helps to address your concerns regarding update to future versions.&lt;/p&gt;
&lt;p&gt;With kind regards
Asbjørn S.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/thread/20798?ContentTypeID=1</link><pubDate>Fri, 13 Mar 2015 10:09:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1397451d-c03c-4159-97da-5ec484a19cd5</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Marcel: I guess the suggestion was from the case with EDIV and DIV. I believe the issue you were facing was something similar to &lt;a href="https://devzone.nordicsemi.com/blogs/12/nrf51-sdk-v600-bug-report-and-temporary-workaround/"&gt;this bug #2 in SDK v6.0&lt;/a&gt; that we fixed in SDK v6.1 and above. If you OK with that then S110 v7.1 is still a good option.
I have reported your comment to our R&amp;amp;D for consideration and improvement.&lt;/p&gt;
&lt;p&gt;@Clem: I have reported your comment to our R&amp;amp;D for consideration and improvement. The information I got from R&amp;amp;D is that v8.0 could be the final version of S110. There could be some minor revision releases for bug fix, but it will be pretty much stable as it is at v8.0.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/thread/20797?ContentTypeID=1</link><pubDate>Wed, 11 Mar 2015 18:50:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:848b6e07-f370-4f7c-8ef2-6ed34be595b5</guid><dc:creator>Clem Taylor</dc:creator><description>&lt;p&gt;My reason for asking this question was to find out how much of a diet I need to give my bootloader if I want to be able to support the next few major releases. I sent an email off to my sales rep.&lt;/p&gt;
&lt;p&gt;Part of the reason my bootloader is larger is because it has quite a bit of additional functionality (RSA/SHA1  signed and AES encrypted firmware, OLED display support for user feedback, upgrade of an external SPI flash, no performance problems with 7.5ms connection interval, etc.)&lt;/p&gt;
&lt;p&gt;I know need to put my bootloader on a diet, but many of the big size offenders are the SDK code. For example  SWI0_IRQHandler() from app_timer is 1000 bytes. For comparison this is larger then the libc printf() I&amp;#39;m using. It is also larger then my rsa_decrypt+sha1+crc-32 code combined,&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/thread/20796?ContentTypeID=1</link><pubDate>Wed, 11 Mar 2015 16:16:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:049a9bb7-6b87-470a-9f14-2e048454137f</guid><dc:creator>Marcel Mulder</dc:creator><description>&lt;p&gt;Funny, a colleague of you just ask me if I could upgrade to s110 v8 for another problem.
I do not know the code of the softdevice off course but it will be similar to what I see in the SDK. What I notice is that a lot is checked runtime. This is a huge part of the code. Ok, some parameters should be checked but most of them can be checked with static asserts or only in a debug mode. And sometimes it beter to just crash when something is not ok. You see it directly and the bug can be fixed. Almost all code is static. You (as far as I known) don&amp;#39;t use the heap. Most of us don&amp;#39;t I think. So instance should just exist. If not a hard fault is ok.
In my (humble) opinion most of the Nordic code is quite &amp;quot;big&amp;quot;. I move more and more away from the SDK because there is to much overhead in there. It hard to point this out in this piece of text. I have only 21 characters left ;-)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/thread/20795?ContentTypeID=1</link><pubDate>Wed, 11 Mar 2015 15:05:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5adb59dd-5d6c-4f36-b97e-60a5f154766c</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Marcel: Thanks for your suggestion. If you can send me here or via private support portal case on your ideas it would be great.
Regarding your concern for the side, I guess you can think of moving back to S110 v7.1 which occupies 8kB less. So you will have 20kB left for your application. There are some bug fixes and new features on S110 v8.0 but it&amp;#39;s not a very big deal.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/thread/20794?ContentTypeID=1</link><pubDate>Wed, 11 Mar 2015 06:45:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd93318f-1570-4402-aed3-e2c76ff9c12c</guid><dc:creator>Marcel Mulder</dc:creator><description>&lt;p&gt;I am concerned also. We targeted for the 128 kB Flash devices because of the price. We can&amp;#39;t afford 256 kB devices. Having only 128 kB of flash minus the SD of 96 kB leaves 32 kB. Lowering it with 16 kB for the bootloader and an additional 4 kB for storing data I have only 12 kB left. There is not much what I can do with this. Even the bootloader is bigger! The 128 kB devices are almost useless except for small dedicated solutions which don&amp;#39;t need (or able to) update and only needs S110. Other softdevices are not possible at all for real applications. May be Nordic can think about doing a statement about future sizes or make some effort in downsizing (I will have some tips ;-) the SD.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: S110 v8.0.0 softdevice size and DFU update</title><link>https://devzone.nordicsemi.com/thread/20793?ContentTypeID=1</link><pubDate>Tue, 10 Mar 2015 14:10:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5a4331de-9ccc-4723-a0ca-7387d3048f75</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Clem: It&amp;#39;s hard to tell about the future product. You can contact our sale staff in your area for more information. Please pm me your location I can send you the contact.&lt;/p&gt;
&lt;p&gt;But what you can do for now is to reduce the size of the bootloader. Have you used any optimization when compiling the code ? Our bootloader only takes about 14KB of code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>