<?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>softdevice update</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/5675/softdevice-update</link><description>First, many thanks for the great DFU recipe in the latest SDK! 
 I&amp;#39;ve ported OTA DFU to the IAR tool chain for both s110 and s310. I can flip back and forth between the two softdevices by updating from a .zip file with softdevice, bootloader and init</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 03 Mar 2015 22:07:55 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/5675/softdevice-update" /><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19887?ContentTypeID=1</link><pubDate>Tue, 03 Mar 2015 22:07:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:53cbc744-a177-4e0d-8159-3a8b8577849a</guid><dc:creator>Matt Barr</dc:creator><description>&lt;p&gt;Many thanks to colton for &lt;a href="https://devzone.nordicsemi.com/question/15947/build-with-optimization-does-not-work-with-dfu/"&gt;this&lt;/a&gt; insight. These IAR projects (bootloader and app) both work if you change the optimization level to high (balanced) and disable static clustering. The code shrinks and the bootloader can be located at 0x3C000, changed from 0x3A000 in the .icf and in dfu_types.h. Very nice.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19886?ContentTypeID=1</link><pubDate>Tue, 03 Mar 2015 17:40:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08c6bb01-d727-42df-b066-9a8ef8dea439</guid><dc:creator>Jeff Wormsley</dc:creator><description>&lt;p&gt;Thank you Matt!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19882?ContentTypeID=1</link><pubDate>Tue, 03 Mar 2015 17:13:30 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1961eae6-abf3-43b5-b4c7-aaeb3ef8ecf2</guid><dc:creator>Matt Barr</dc:creator><description>&lt;p&gt;Hi Jeff, I just added an &amp;quot;answer&amp;quot; that contains the dual bank BLE bootloader port to IAR, along with a ported application for testing. Hope this helps you and others, IAR support in the 7.x.x SDKs is sparse.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19885?ContentTypeID=1</link><pubDate>Tue, 03 Mar 2015 16:53:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:09e3b228-dd8f-495d-8818-71d5505a611d</guid><dc:creator>Matt Barr</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nRF51_5F00_SDK_5F00_7.2.0_5F00_cf547b5.zip"&gt;Here&lt;/a&gt; is an IAR port of the dual bank BLE bootloader. It is based on the 7.2.0 SDK. Don&amp;#39;t let the name fool you, it is NOT a complete SDK! It is a zip file that contains just the new and modified files for the bootloader IAR port, a related IAR project, and an IAR project for the experimental ble_app_hrs application with DFU support. You&amp;#39;ll find:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;components/libraries/bootloader_dfu/&lt;/li&gt;
&lt;li&gt;examples/dfu/bootloader/pca10028/dual_bank_ble_s110/iar/&lt;/li&gt;
&lt;li&gt;examples/ble_peripheral/ble_app_hrs/pca10028/experimental_s110_with_dfu/iar/&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also included is examples/iar_hexfiles/ which contains hex file output from the IAR builds along with other relevant hex files (app_valid_setting_apply.hex, 7.1.0 S110 softdevice, and merged bootloader/softdevice.)&lt;/p&gt;
&lt;p&gt;The original versions of modified SDK files are renamed by adding a .orig suffix. The bootloader and application DFU have been tested as described in examples/iar_hexfiles/README. The bootloader_dfu sources are tweaked so that you can eliminate bsp.c and the related definitions BSP_DEFINES_ONLY and BOARD_PCA10028 from the project, removing hardware platform dependence.&lt;/p&gt;
&lt;p&gt;The IAR build is slightly larger than the Keil build, the bootloader is located at 0x3A000. It fits at 0x3C000 if higher optimizations are enabled, but my experience (using IAR EWARM 7.2.0) is that something is optimized away that breaks DFU. I have not yet taken the time to track this down, and am living with extra 8k code space for now.&lt;/p&gt;
&lt;p&gt;There are no real changes to the bootloader code, modifications are primarily related to compiler directives and assembly code inclusion for the IAR platform. This works to the best of my knowledge, use at your own risk!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19879?ContentTypeID=1</link><pubDate>Fri, 27 Feb 2015 16:27:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ff9e392b-a41b-49be-a6ef-b48b8f733fb2</guid><dc:creator>Jeff Wormsley</dc:creator><description>&lt;p&gt;Hopefully, considering how small this particular item is,  and the fact it was derived from existing functionality, it will be ok to share.  If not, I understand, maybe someone else will be able to help me out.  I&amp;#39;ve got enough to actually compile the code, but I don&amp;#39;t think things are being put into the right places.  I used the GCC version as a start, since it had far less assembly, and used the ICF file to create the memory regions, but after reading your message it looks like you took a better approach.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19878?ContentTypeID=1</link><pubDate>Fri, 27 Feb 2015 16:23:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:23a9c3ce-2506-450d-ab39-f1ec315e16dc</guid><dc:creator>Matt Barr</dc:creator><description>&lt;p&gt;After thinking more about this and the SDK license agreement, I&amp;#39;m not sure what the legalities are here. The source code is property of Nordic, we&amp;#39;ve made changes, but I don&amp;#39;t believe that means we own it. I am out of town this week, I will ask my employer how he feels and will talk to Nordic about my obligations here, I certainly want to do the right thing. I have a couple engineering degrees but no law degree...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19881?ContentTypeID=1</link><pubDate>Fri, 27 Feb 2015 14:37:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:41135292-5501-4880-8f14-473f93a6a600</guid><dc:creator>Matt Barr</dc:creator><description>&lt;p&gt;Hi Jeff, I&amp;#39;m sorry but my employer paid me to make these changes and I don&amp;#39;t believe I&amp;#39;m free to share it. The good news is that you don&amp;#39;t have to re-write things, just make the compiler directives and assembler input IAR friendly. Assembler functions generally need to be #ifdef&amp;#39;d out and placed in a separate .s file, IAR doesn&amp;#39;t handle the block .asm directive.&lt;/p&gt;
&lt;p&gt;In the IAR documentation see __no_init to bypass variable zero-init at startup. Also see #pragma required=xxx to keep the compiler from discarding apparently unused variable and constant data definitions, and look at the @ ADDR = VALUE construct to locate and initialize data.&lt;/p&gt;
&lt;p&gt;Finally, ICC optimization seems to break bootloader DFU functionality. The unoptimized bootloader won&amp;#39;t fit at 0x3C000, so allow a bit more code space in the .icf and make the corresponding change to dfu_types.h.&lt;/p&gt;
&lt;p&gt;Hope this helps, Matt&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19880?ContentTypeID=1</link><pubDate>Thu, 26 Feb 2015 21:02:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4d6fa1b4-b9c5-4d10-8c26-8b63ccbdc92e</guid><dc:creator>Jeff Wormsley</dc:creator><description>&lt;p&gt;Could you post your port for other IAR users?  I&amp;#39;ve looked at the bootloader_util_arm.c and bootloader_util_gcc.c files, but am not up to porting that to IAR.  Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19884?ContentTypeID=1</link><pubDate>Mon, 23 Feb 2015 15:38:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6103e22-b6cb-4b83-8b69-9f11c82a9b82</guid><dc:creator>Matt Barr</dc:creator><description>&lt;p&gt;Thanks very much for the confirmation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19877?ContentTypeID=1</link><pubDate>Mon, 23 Feb 2015 12:31:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:298d9a9b-f492-4201-9bf4-788f4ec61221</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Yes, we are aware of that, and it&amp;#39;s a bigger issue with S130 and S120 where there is not enough room for bootloader+softdevice update. We will try to find a solution for that.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19883?ContentTypeID=1</link><pubDate>Mon, 23 Feb 2015 12:29:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:65b1f100-9bd0-4a8b-8041-39efbe18ed36</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@Matt: Correct. Address 0x800 is the flash page where the MBR uses to store some information when doing softdevice&amp;amp;bootloader swapping.
It&amp;#39;s fine to have something there when you do a bootloader/softdevice update.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: softdevice update</title><link>https://devzone.nordicsemi.com/thread/19876?ContentTypeID=1</link><pubDate>Fri, 20 Feb 2015 16:43:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1b193be3-9e2c-45f4-97db-14ba5b19ca6d</guid><dc:creator>Matt Barr</dc:creator><description>&lt;p&gt;It is probably worth noting that with the s310 there are 0x1f000 bytes available between softdevice and bootloader located at 0x38000. This is sufficient to support a combined bootloader+softdevice update with the s310, but there is not much room for bootloader expansion.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>