<?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>SEGGER + nRF51 = no SDK?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/53650/segger-nrf51-no-sdk</link><description>Hi, 
 New to Nordic, new to SEGGER, and new to ARM, so forgive me if I&amp;#39;m just missing something... 
 I&amp;#39;ve been asked to write new code for some boards that have the nRF51822 chip on them. The board needs to act like a BLE peripheral. 
 Since Nordic seems</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 29 Oct 2019 19:43:45 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/53650/segger-nrf51-no-sdk" /><item><title>RE: SEGGER + nRF51 = no SDK?</title><link>https://devzone.nordicsemi.com/thread/217400?ContentTypeID=1</link><pubDate>Tue, 29 Oct 2019 19:43:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:41b91fa1-874b-459a-941d-8cb42d921aac</guid><dc:creator>Don</dc:creator><description>&lt;p&gt;Just found the Short-Range Guides:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Looks like a good place to start!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SEGGER + nRF51 = no SDK?</title><link>https://devzone.nordicsemi.com/thread/217399?ContentTypeID=1</link><pubDate>Tue, 29 Oct 2019 19:32:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:80a51c8d-63eb-4d1f-b6e2-edffdde4e9bd</guid><dc:creator>Don</dc:creator><description>&lt;p&gt;Yes, thank you very much.&lt;/p&gt;
&lt;p&gt;I was able to compile it successfully.&amp;nbsp; I just had to undo a change or two that I had made before.&amp;nbsp; My dev kit should be here tomorrow, and I will try running it.&lt;/p&gt;
&lt;p&gt;Is there a tutorial or blog on using the softdevice/ble stack or is it just various threads in the devzone?&amp;nbsp; It looks like there&amp;#39;s a lot to learn.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SEGGER + nRF51 = no SDK?</title><link>https://devzone.nordicsemi.com/thread/217331?ContentTypeID=1</link><pubDate>Tue, 29 Oct 2019 12:57:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2847be41-6e7b-429a-bfc5-c73659fedc79</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Don,&lt;/p&gt;
&lt;p&gt;I attached here a SES project for nRF51 on SDK v12.3&amp;nbsp;&lt;br /&gt;It&amp;#39;s the ble_app_blinky, and doesn&amp;#39;t use peer manager (fstorage, fds) you may need to add the&amp;nbsp;segment intothumb_crt0.s as instructed in the guide.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Could you please try and let me know if it works?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-a387ca95764d48bc92c55f94eaf59a58/experimental_5F00_ble_5F00_app_5F00_blinky.zip"&gt;devzone.nordicsemi.com/.../experimental_5F00_ble_5F00_app_5F00_blinky.zip&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SEGGER + nRF51 = no SDK?</title><link>https://devzone.nordicsemi.com/thread/217194?ContentTypeID=1</link><pubDate>Mon, 28 Oct 2019 18:17:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:663dca45-88cf-44ae-bf6d-35f7175712a5</guid><dc:creator>Don</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The link suggests changing the memory map file or the memory section definitions to change RAM to SRAM.&amp;nbsp; Since the project does not have a memory map file, I went to the memory sections definition and changed&amp;nbsp;&lt;/p&gt;
&lt;p&gt;FLASH1 RX 0x00000000 0x00040000;RAM1 RWX 0x20000000 0x00008000&lt;/p&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;p&gt;FLASH1 RX 0x00000000 0x00040000;SRAM RWX 0x20000000 0x00008000&lt;/p&gt;
&lt;p&gt;This caused an undefined symbol error for RAM1.&amp;nbsp; So instead I edited&amp;nbsp;file 3324.ses_nrf51_startup.s and changed&amp;nbsp;&lt;/p&gt;
&lt;p&gt;ldr r0, =__SRAM_segment_end__&lt;/p&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;p&gt;ldr r0, =__RAM1_segment_end__&lt;/p&gt;
&lt;p&gt;This resolved the __SRAM_segment_end__ issue.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;For __data_start__, adding thumb_crt0.s to the project does not resolve the issue because this file tries to use that symbol, but does not define it.&amp;nbsp; It also causes a multiple definition of _start.&lt;/p&gt;
&lt;p&gt;I found the definition of __data_start__ in the [sdk]/components/toolchain/gcc/nrf5x_common.ld file, and it&amp;#39;s the beginning of RAM used by the linker.&amp;nbsp; Below is a snippet of that file:&lt;/p&gt;
&lt;p&gt;__etext = .;&lt;/p&gt;
&lt;p&gt;.data : AT (__etext)&lt;br /&gt; {&lt;br /&gt; __data_start__ = .;&lt;br /&gt; *(vtable)&lt;br /&gt; *(.data*)&lt;/p&gt;
&lt;p&gt;. = ALIGN(4);&lt;br /&gt; /* preinit data */&lt;br /&gt; PROVIDE_HIDDEN (__preinit_array_start = .);&lt;br /&gt; KEEP(*(.preinit_array))&lt;br /&gt; PROVIDE_HIDDEN (__preinit_array_end = .);&lt;/p&gt;
&lt;p&gt;. = ALIGN(4);&lt;br /&gt; /* init data */&lt;br /&gt; PROVIDE_HIDDEN (__init_array_start = .);&lt;br /&gt; KEEP(*(SORT(.init_array.*)))&lt;br /&gt; KEEP(*(.init_array))&lt;br /&gt; PROVIDE_HIDDEN (__init_array_end = .);&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; . = ALIGN(4);&lt;br /&gt; /* finit data */&lt;br /&gt; PROVIDE_HIDDEN (__fini_array_start = .);&lt;br /&gt; KEEP(*(SORT(.fini_array.*)))&lt;br /&gt; KEEP(*(.fini_array))&lt;br /&gt; PROVIDE_HIDDEN (__fini_array_end = .);&lt;/p&gt;
&lt;p&gt;KEEP(*(.jcr*))&lt;br /&gt; . = ALIGN(4);&lt;br /&gt; /* All data end */&lt;br /&gt; __data_end__ = .;&lt;/p&gt;
&lt;p&gt;} &amp;gt; RAM&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp; Is there an equivalent way to do this in SES?&amp;nbsp; I would guess it goes in the SEGGER_Flash.icf file.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SEGGER + nRF51 = no SDK?</title><link>https://devzone.nordicsemi.com/thread/217010?ContentTypeID=1</link><pubDate>Mon, 28 Oct 2019 09:06:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:77cbe9f0-f92a-49ed-9f99-84d2ad4c9be2</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Don,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For the&amp;nbsp;&lt;span&gt;__SRAM_segment_end__ you can have a look here:&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/22640/ses-sdk12-2-0-undefined-reference-to-__sram_segment_end__"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/22640/ses-sdk12-2-0-undefined-reference-to-__sram_segment_end__&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;For the&amp;nbsp;&lt;span&gt;__data_start__ have you made sure you included thumb_crt0.s located&amp;nbsp;C:\Program Files\SEGGER\SEGGER Embedded Studio for ARM 4.18\source ? into the project ?&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I saw &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/41762/segger-embedded-studio-not-linking-nrf51-sdk-examples"&gt;here &lt;/a&gt;a similar case, not sure you will have to implement all what the customer had to do though.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SEGGER + nRF51 = no SDK?</title><link>https://devzone.nordicsemi.com/thread/216934?ContentTypeID=1</link><pubDate>Fri, 25 Oct 2019 21:00:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:face9839-61c5-43d2-b235-e9b43e04093b</guid><dc:creator>Don</dc:creator><description>&lt;p&gt;Hi Hung Bui,&lt;/p&gt;
&lt;p&gt;Thanks for the information.&amp;nbsp; I got through the process today, and it compiles, but I get two errors in the linker.&amp;nbsp; There are two undefined symbols, __SRAM_segment_end__ and __data_start__.&lt;/p&gt;
&lt;p&gt;I can&amp;#39;t figure out where these are supposed to be defined, and I can only guess at how they should be defined.&lt;/p&gt;
&lt;p&gt;The first symbol is used in 3324.ses_nrf51_startup.s, and the second is used near the end of softdevice_handler.c.&amp;nbsp; They don&amp;#39;t seem to be defined within the SDK.&lt;/p&gt;
&lt;p&gt;Any idea what I should do with these?&lt;/p&gt;
&lt;p&gt;Is it possible that it would be easier to start from a nRF52 example in SDK 16.0.0 and work backward to nRF51?&lt;/p&gt;
&lt;p&gt;I can&amp;#39;t really change chips because the boards are sitting on my desk waiting to be programmed.&lt;/p&gt;
&lt;p&gt;Thanks for your help.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: SEGGER + nRF51 = no SDK?</title><link>https://devzone.nordicsemi.com/thread/216825?ContentTypeID=1</link><pubDate>Fri, 25 Oct 2019 12:00:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1ce454c4-514b-480b-bc9a-2520620a2624</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Don,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You can have a look here:&amp;nbsp;&lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/30945/is-there-a-tutorial-about-using-segger-embedded-studio-with-sdk-12-3-0-and-nrf51822"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/30945/is-there-a-tutorial-about-using-segger-embedded-studio-with-sdk-12-3-0-and-nrf51822&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Another customer reported that he followed the tutorial and it worked for him.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Note that for new design, we suggest to use nRF52 series.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>