<?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>How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/11907/how-to-get-bluetooth-bootloader-up-and-running</link><description>Hi, 
 I am having BIG problems getting the Bluetooth Dual Bank Bootloader sample to work! 
 I am using Keil 5.18 and using SDK version 9.0.0 and also tried 10.0.0. I have S310 working together with a application using both ANT+ and BT. No problems what</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 17 Feb 2016 20:33:34 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/11907/how-to-get-bluetooth-bootloader-up-and-running" /><item><title>RE: How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/thread/45119?ContentTypeID=1</link><pubDate>Wed, 17 Feb 2016 20:33:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3f8701b2-ecff-4eeb-87fd-ec54781e7e21</guid><dc:creator>Flemming Jensen</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;Actually you were spot on... The issues I was facing was because our prototype boards now only have 16Ks of ram.&lt;/p&gt;
&lt;p&gt;So I ended up installing Keil 5.18 and SDK10 clean, then created a new Bootloader project dualbank S310.&lt;/p&gt;
&lt;p&gt;Edited the memory configuration, build the bootloader and uploaded S310 and the bootloader&lt;/p&gt;
&lt;p&gt;And guess what?! Now the bootloader jumped into action and is now working just fine!&lt;/p&gt;
&lt;p&gt;(I tried configuring my old project just before without success)&lt;/p&gt;
&lt;p&gt;So now I have a working hex file with a bootloader :)&lt;/p&gt;
&lt;p&gt;So thank you very much for you help / support - very much appriciated!&lt;/p&gt;
&lt;p&gt;BR Flemming&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/thread/45118?ContentTypeID=1</link><pubDate>Wed, 17 Feb 2016 11:58:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f0b772c4-315a-4a28-8533-10f002d51b20</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Strange, you should get an error at link time if there were not enough RAM allocated, is it possible that the set RAM size you had did not correspond with the address range? Also, the RAM allocation in the bootloader doesn&amp;#39;t need to be aligned with the application&amp;#39;s. Bootloader and application are always started via the reset handler.&lt;/p&gt;
&lt;p&gt;That said, the bootloader  needs a no init section (IRAM2) that used to share bonding information between application and bootloader.&lt;/p&gt;
&lt;p&gt;Do you have 32K or 16K of RAM on the chip you&amp;#39;re using?&lt;/p&gt;
&lt;p&gt;I&amp;#39;d suggest to open a clean bootlaoder project to ensure you have the default values. With a 16K RAM variant you need to change the linker settings from:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/default.PNG" alt="image description" /&gt;&lt;/p&gt;
&lt;p&gt;to:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/2072.Capture.PNG" alt="image description" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/thread/45117?ContentTypeID=1</link><pubDate>Wed, 17 Feb 2016 10:37:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d6c1fa68-ae11-45dd-a4a0-a002d55fe58a</guid><dc:creator>Flemming Jensen</dc:creator><description>&lt;p&gt;Hi Again,
Now I have some progress - but the bootloader is not running yet...
Here goes:
As you suggested - I did get HardFaults - so that was the reasone why I ended up there when debugging.
I compared memory setup between my application and my bootloader and could see that the bootloader was using 0x2700 - 0x8000 and application was using 0x2200 - 0x8000. Strangely when giving my bootloader more memory (0x2200 - 0x8000) i did not get the HardFault any more.
So now I get through the startupcode and my LED gets LIT! Whoohoo!
The next problem is when the bootloader calls pstorage_init also in the initialization process. This fails. Why is the bootloader using pstorage and for what?
So I have to debug some more later on&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/thread/45116?ContentTypeID=1</link><pubDate>Tue, 16 Feb 2016 14:33:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5a9f925a-6c10-4239-851c-f8a6b39894ab</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Only dual bank example is provided for OTA DFU. Although to make it single bank you only need to replace dfu_dual_bank.c with dfu_single_bank.c in your project. Softdevice requires the application to be erased because of space limitation as you mentioned. Purpose of dual bank is to allow the bootlaoder to enter the old application in case application dfu fails. With single bank it has to fall back into DFU mode as the old application is erased.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/thread/45115?ContentTypeID=1</link><pubDate>Tue, 16 Feb 2016 14:25:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1f79b112-b509-41a0-9bd7-560d3480ad7f</guid><dc:creator>Flemming Jensen</dc:creator><description>&lt;p&gt;Hi again Vidar...
This is very interesting input... I will investigate later this evening.
Maybe I should start by trying the single bank DFU to get started.
BTW. how can the bootloader update the softdevice using DualBank? Doesn&amp;#39;t it need double space as the softdevice ? fx 112KB?
Thank you very much for your input.:)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/thread/45114?ContentTypeID=1</link><pubDate>Tue, 16 Feb 2016 14:08:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f884e948-1931-4a14-8ca4-987f757f41f9</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;It is the MBR that forwards execution to the bootloader on startup when present (checks the UICR.BOOTLOADERADDR register) =&amp;gt; &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.130.sds.v1.0.0/mbr_bootloader/mbr_sd_reset_behavior.html?cp=2_7_2_0_9_2"&gt;Master Boot Record (MBR) and SoftDevice reset behavior&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Yes, 0x3C000 is the default start address for the bootloader. You can verify that it&amp;#39;s set by reading the register through the memory window in Keil, or use nrfjprog:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nrfjprog --memrd 0x10001014
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;MBR will forward execution to SD if it&amp;#39;s not set.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/thread/45113?ContentTypeID=1</link><pubDate>Tue, 16 Feb 2016 13:50:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b85a70d6-411c-4f65-9b9b-cda1145bcf02</guid><dc:creator>Flemming Jensen</dc:creator><description>&lt;p&gt;Hi Vidar,&lt;/p&gt;
&lt;p&gt;I think I end up in a hardfault or something. (The PC is near the start of the flash - So its inside the S310)&lt;/p&gt;
&lt;p&gt;I have been speculationg about something... How does the CPU findout where to start executing code?
Because now with the bootloader it needs to start at 0x3c000? Right?&lt;/p&gt;
&lt;p&gt;Flags? Jump table?&lt;/p&gt;
&lt;p&gt;Your inputs are much appriciated!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to get Bluetooth Bootloader up and running??</title><link>https://devzone.nordicsemi.com/thread/45112?ContentTypeID=1</link><pubDate>Tue, 16 Feb 2016 13:42:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:38cc678f-01cd-4c7e-bbd4-7091468f7382</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;From your description it sounds like you&amp;#39;re doing everything correctly. Please add a screenshot of the register view in Keil when you&amp;#39;re debugging to see whether the program execution may be stuck in the hardfault handler.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>