<?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>Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/15814/does-segger-jlink-version-affect-ble-programming</link><description>Yesterday, I asked a question (so far, no one has answered) about how an OS upgrade on my desktop computer might have broken my ability to flash and run BLE apps on the nRF52 Preview DK, PCA10036. 
 devzone.nordicsemi.com/.../ 
 I had questions about</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 19 Aug 2016 00:30:13 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/15814/does-segger-jlink-version-affect-ble-programming" /><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60379?ContentTypeID=1</link><pubDate>Fri, 19 Aug 2016 00:30:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25d53fd8-e5e6-45e5-a665-d66be5a05c84</guid><dc:creator>Ladasky</dc:creator><description>&lt;p&gt;That&amp;#39;s right RK, the &lt;a href="http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.nrf52%2Fdita%2Fnrf52%2Fcompatibility_matrix%2Fic_rev_sdk_sd_comp_matrix.html"&gt;compatibility matrix&lt;/a&gt; says that the only version of the S132 SoftDevice which is compatible with the Engineering A (PCA10036) boards is 1.0.0-3.alpha.&lt;/p&gt;
&lt;p&gt;Now that we have a year&amp;#39;s worth of experience with the alpha version of the nRF52 and our project is growing, we will be getting some newer boards.  But I had to hand one of the original boards off to another team member for Bluetooth work, and I needed to give him a board that was actually doing something over BLE.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60378?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 23:54:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3bc4882c-0c53-4808-89f7-6bd059ba9229</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;ok I had to look that version up - it&amp;#39;s so old I don&amp;#39;t even have support for it in my OSX tool, but yes indeed that was 0x1F000, then it dropped to 0x1C000 and now with v3 it&amp;#39;s back to 0x1F000 again.&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t remember what the compatibility was, possibly if you only have the original PCA10036 boards you are limited to very early versions of the softdevice. You might want to raid the piggy bank and get a more recent dev kit, eg the PCA10040 which gives you access to the production softdevices and all the great stuff added in S132V2 and even more in V3, which I haven&amp;#39;t even moved to yet.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60383?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 23:44:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:665b62e7-db3c-4c7e-b4c5-9553d811230a</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;The sections of memory erased when doing a loadfile are exactly the bytes required to load the new file and nothing more and nothing less. A full erase does a full erase (most people don&amp;#39;t use the erase command but write the registers directly however Segger&amp;#39;s erase command runs the correct thing for each board type they support so using that works as well).&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t know what&amp;#39;s going on because it continues to make zero sense.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60377?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 23:42:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:88cd3eec-2007-4571-9af7-27edaabce19d</guid><dc:creator>Ladasky</dc:creator><description>&lt;p&gt;RK, please see my longer comment, I have solved my own problem.  In this remark, I will simply note that I am using SoftDevice S132 1.0.0-3.alpha, which is compatible with the PCA10036 boards I have. I am flashing this SoftDevice to 0x0.  The makefiles for the BLE examples in SDK 0.9.1 and 0.9.2 build the APPLICATION to be installed at 0x1F000, and that&amp;#39;s where I&amp;#39;m installing the app.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60382?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 23:37:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5e2080d5-0ca9-4ab9-ae83-c1cf3bcc1c5c</guid><dc:creator>Ladasky</dc:creator><description>&lt;p&gt;Well, I seem to have solved my problem, although I don&amp;#39;t know exactly WHY I had to do what I did.&lt;/p&gt;
&lt;p&gt;After many frustrating attempts, I discovered that if I invoke the &lt;strong&gt;erase&lt;/strong&gt; command from JLink before flashing the board, Bluetooth applications are working again.  RK, I was working on this all day, and I just saw your post come in as I was typing this.  If running &lt;strong&gt;erase&lt;/strong&gt; was what you meant to tell me to do when you wrote &amp;quot;type in the commands to clear flash&amp;quot;, I seem to have stumbled on that myself.&lt;/p&gt;
&lt;p&gt;As suggested by David: using &lt;strong&gt;mergehex&lt;/strong&gt; to make a single file out of the SoftDevice and the application works -- but so does the more straightforward way of flashing each file separately.&lt;/p&gt;
&lt;p&gt;I was also able to flash ble_app_heart over ble_app_template at memory location 0x1F000, and on rebooting, the board was running the heart rate app.  Previously, I was unable to do this.  See above.&lt;/p&gt;
&lt;p&gt;What exactly is going on with JLink?  What sections of memory are erased on executing a &lt;strong&gt;loadfile&lt;/strong&gt; command?  Why doesn&amp;#39;t &lt;strong&gt;loadfile&lt;/strong&gt; seem to erase something critical to the operation of the SoftDevice?  What does a full &lt;strong&gt;erase&lt;/strong&gt; do that &lt;strong&gt;loadfile&lt;/strong&gt; does not?  If anyone understands, please feel free to chime in.  Thanks!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60380?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 23:26:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0f65f1e8-2b73-465a-9fc2-4a61c3711270</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;Your old procedure makes no sense either, so really it seems you have a basic misconception here somewhere, because everyone else can program softdevices and code in any order and do it all day long. JLink can write as little as a single byte, it saves the pages it&amp;#39;s going to clear, updates the data you want to write, clears only the pages required and then writes back the data. And that hasn&amp;#39;t changed between version 4, 5 or 6 and it never will.&lt;/p&gt;
&lt;p&gt;Why are you putting your code at 0x1f000? The only softdevice which uses that start address I&amp;#39;m aware of is the S132V3 which was just released. What softdevice are you using? Are you building for the correct address? Are you loading the correct softdevice?&lt;/p&gt;
&lt;p&gt;Start over with a JLink session, and type in the commands to clear flash, load the softdevice then load your code and put the log of the session in the question.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60376?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 19:14:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:60ddc8a9-e690-43d9-97fe-28f90cfdf633</guid><dc:creator>Ladasky</dc:creator><description>&lt;p&gt;Hi David, thanks for your suggestion.  I will give mergehex a try, to see whether it solves my problem.  I have never used mergehex.  I didn&amp;#39;t need to use mergehex the last time that I ran BLE apps on my nRF52 boards, about six months ago.&lt;/p&gt;
&lt;p&gt;But I had to flash the app code .bin into high memory (0x1f000) first, and then flash the S132 driver .hex into low memory (0x0).  If I switched the order, nothing ran.  Other people found this behavior unexpected -- and I agree, flashing the (unchanging) SoftDevice once into low memory, and then flashing your own (changing) code into high memory should be possible, and it is far more convenient for code development.  I am still wondering exactly which regions of memory JLink chooses to erase, and how.  Maybe the memory erasing process was changed between JLink 5.x and 6.x?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60381?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 10:20:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c6f7a542-6c4f-49a4-8d5f-6983e91d7505</guid><dc:creator>David Edwin</dc:creator><description>&lt;p&gt;Are you using mergerhex to merge the application hex file and the softdevice hex file before flashing them with jlink.exe ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60375?ContentTypeID=1</link><pubDate>Thu, 18 Aug 2016 01:44:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2e1b6f77-d830-4411-9428-b3e4996420af</guid><dc:creator>Ladasky</dc:creator><description>&lt;p&gt;Thanks for your answer, RK.  I do not use any of the Python tools.  I use JLinkExe directly to flash my boards.&lt;/p&gt;
&lt;p&gt;Simple applications like Blinky are working fine.  A more complex application that I wrote which makes use of TWI, SAADC, and UART is also working fine.  The only thing that has stopped working for me is applications using BLE.  I can flash them to the board, but they are silent.  As I said, I have two PCA10036 boards.  I used one board as a BLE heart rate transmitter and the other as a receiver.&lt;/p&gt;
&lt;p&gt;I have not written any of my own BLE apps yet, I am just trying to get the Nordic example programs running again. If you have any thoughts on this matter, I would appreciate them... but they probably should be made in the thread I started yesterday (first link in my original post) unless there is some connection to JLink.  Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Does SEGGER JLink version affect BLE programming?</title><link>https://devzone.nordicsemi.com/thread/60374?ContentTypeID=1</link><pubDate>Wed, 17 Aug 2016 23:43:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e0ef6fe5-8364-44c5-ac9c-32c76b612335</guid><dc:creator>RK</dc:creator><description>&lt;p&gt;No it doesn&amp;#39;t matter at all as long as your JLink version is recent enough to support the chip you&amp;#39;re using (eg very old JLinks didn&amp;#39;t support the nRF52), so anything newer is fine, modulus the occasional bug which gets added. So 6.0 is fine and nothing needs to go into any compatability matrix.&lt;/p&gt;
&lt;p&gt;Adding one note that if you&amp;#39;re using something compiled against the JLink SDK there can be issues however again for the most part even that is very forward compatible.&lt;/p&gt;
&lt;p&gt;Try JLink from the command line to figure out whether it&amp;#39;s the python tools which don&amp;#39;t work or if your basic JLink package doesn&amp;#39;t work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>