<?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>NRF_LOG_INIT HardFault in balloc. The bootloader also uses logging, is that a problem?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/47127/nrf_log_init-hardfault-in-balloc-the-bootloader-also-uses-logging-is-that-a-problem</link><description>NRF_LOG_INIT HardFault in balloc (see stack trace below). 
 
 
 Code works perfectly without bootloader. However, when the bootloader is present it seems to already have initialized things? Or what exactly is happening here? Should we not call NRF_LOG_INIT</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 20 May 2019 18:03:18 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/47127/nrf_log_init-hardfault-in-balloc-the-bootloader-also-uses-logging-is-that-a-problem" /><item><title>RE: NRF_LOG_INIT HardFault in balloc. The bootloader also uses logging, is that a problem?</title><link>https://devzone.nordicsemi.com/thread/188034?ContentTypeID=1</link><pubDate>Mon, 20 May 2019 18:03:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fec035e6-de3a-424a-80fe-d02689c63979</guid><dc:creator>Anne van Rossum</dc:creator><description>&lt;p&gt;Hi Bjorn, I found the culprit. Somewhere in our build tools we were doing an objcopy. Back then not all those sections did yet exists. By just copying a selected subset using objcopy -j ... we ended up with 0xFFFFFFFFs for particular handlers.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;One thing I&amp;#39;m surprised about is that after running the code, those values actually get written. There are too many magic macros to figure this out. Perhaps you can help me out.&lt;/p&gt;
&lt;p&gt;Does the following function actually write the callbacks to the proper section?&lt;/p&gt;
&lt;p&gt;NRF_SECTION_SET_ITEM_REGISTER&lt;/p&gt;
&lt;p&gt;It seems that it does namely. That&amp;#39;s why I completely missed the fact that objcopy was stripping the contents of particular new sections!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF_LOG_INIT HardFault in balloc. The bootloader also uses logging, is that a problem?</title><link>https://devzone.nordicsemi.com/thread/187673?ContentTypeID=1</link><pubDate>Fri, 17 May 2019 11:43:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:734c1501-eb1b-44ee-91fb-fc3cd900cdc4</guid><dc:creator>Anne van Rossum</dc:creator><description>&lt;p&gt;Hi Bjorn,&lt;/p&gt;
&lt;p&gt;I&amp;#39;m just checking in. Is there something I&amp;#39;ve to know for example about the use of FDS from both bootloader and application. I see there is an option FDS_VIRTUAL_PAGES_RESERVED for example.&lt;/p&gt;
&lt;p&gt;Again, both app and bootloaders works individually. It&amp;#39;s just when the bootloader starts the app that there is a hardfault somewhere in &amp;quot;balloc&amp;quot; related code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF_LOG_INIT HardFault in balloc. The bootloader also uses logging, is that a problem?</title><link>https://devzone.nordicsemi.com/thread/187047?ContentTypeID=1</link><pubDate>Tue, 14 May 2019 14:54:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d911e427-88d2-47fe-98d0-eca8b5f9b7b7</guid><dc:creator>Anne van Rossum</dc:creator><description>&lt;p&gt;Hi Bjorn, they are both working. If I just run the bootloader it just works. If I just run the application it works. The only time it goes wrong is if the bootloader starts the application. Hence, I would be very surprised if using the sdk_config.h from some example would help very much. I think it leads you into a tangent, but you can check the particular config at &lt;a href="https://github.com/crownstone/bluenet/tree/sdk15"&gt;https://github.com/crownstone/bluenet/tree/sdk15&lt;/a&gt; namely &lt;a href="https://github.com/crownstone/bluenet/blob/sdk15/include/third/nrf/sdk_config.h"&gt;https://github.com/crownstone/bluenet/blob/sdk15/include/third/nrf/sdk_config.h&lt;/a&gt; for the application and &lt;a href="https://github.com/crownstone/bluenet/blob/sdk15/bootloader/sdk_config.h"&gt;https://github.com/crownstone/bluenet/blob/sdk15/bootloader/sdk_config.h&lt;/a&gt; for the bootloader.&lt;/p&gt;
&lt;p&gt;It is not a matter of log settings &amp;quot;being different&amp;quot;. It is only a matter of the context. When the bootloader starts the application I&amp;#39;m afraid the SoftDevice is again allocating something or does something else it is not supposed to do again. I don&amp;#39;t have access to the properietary parts of the SoftDevice so I&amp;#39;m not certain if it frees everything properly after the bootloader stopped doing its thing. I&amp;#39;m assuming there is a bug there.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF_LOG_INIT HardFault in balloc. The bootloader also uses logging, is that a problem?</title><link>https://devzone.nordicsemi.com/thread/186929?ContentTypeID=1</link><pubDate>Tue, 14 May 2019 11:01:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6f8b7286-7e3c-4c9b-86ac-7ae1231f1028</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;By changed I mean if you have modified(i.e. set them to non-default values) any of the definitions used by the Logging module in the sdk.config.h file, i.e.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;// &amp;lt;e&amp;gt; NRF_LOG_ENABLED - nrf_log - Logger
//==========================================================
#ifndef NRF_LOG_ENABLED
#define NRF_LOG_ENABLED 1
#endif
// &amp;lt;h&amp;gt; Log message pool - Configuration of log message pool

//==========================================================
// &amp;lt;o&amp;gt; NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
// &amp;lt;i&amp;gt; If a small value is set, then performance of logs processing
// &amp;lt;i&amp;gt; is degraded because data is fragmented. Bigger value impacts
// &amp;lt;i&amp;gt; RAM memory utilization. The size is set to fit a message with
// &amp;lt;i&amp;gt; a timestamp and up to 2 arguments in a single memory object.

#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
#endif

// &amp;lt;o&amp;gt; NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
// &amp;lt;i&amp;gt; If a small value is set, then it may lead to a deadlock
// &amp;lt;i&amp;gt; in certain cases if backend has high latency and holds
// &amp;lt;i&amp;gt; multiple messages for long time. Bigger value impacts
// &amp;lt;i&amp;gt; RAM memory usage.

#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
#endif

// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;q&amp;gt; NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
 

// &amp;lt;i&amp;gt; If set then oldest logs are overwritten. Otherwise a 
// &amp;lt;i&amp;gt; marker is injected informing about overflow.

#ifndef NRF_LOG_ALLOW_OVERFLOW
#define NRF_LOG_ALLOW_OVERFLOW 1
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
 

// &amp;lt;i&amp;gt; Must be power of 2 and multiple of 4.
// &amp;lt;i&amp;gt; If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 
// &amp;lt;2048=&amp;gt; 2048 
// &amp;lt;4096=&amp;gt; 4096 
// &amp;lt;8192=&amp;gt; 8192 
// &amp;lt;16384=&amp;gt; 16384 

#ifndef NRF_LOG_BUFSIZE
#define NRF_LOG_BUFSIZE 1024
#endif

// &amp;lt;q&amp;gt; NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
 

#ifndef NRF_LOG_CLI_CMDS
#define NRF_LOG_CLI_CMDS 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_DEFAULT_LEVEL  - Default Severity level
 
// &amp;lt;0=&amp;gt; Off 
// &amp;lt;1=&amp;gt; Error 
// &amp;lt;2=&amp;gt; Warning 
// &amp;lt;3=&amp;gt; Info 
// &amp;lt;4=&amp;gt; Debug 

#ifndef NRF_LOG_DEFAULT_LEVEL
#define NRF_LOG_DEFAULT_LEVEL 3
#endif

// &amp;lt;q&amp;gt; NRF_LOG_DEFERRED  - Enable deffered logger.
 

// &amp;lt;i&amp;gt; Log data is buffered and can be processed in idle.

#ifndef NRF_LOG_DEFERRED
#define NRF_LOG_DEFERRED 1
#endif

// &amp;lt;q&amp;gt; NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
 

#ifndef NRF_LOG_FILTERS_ENABLED
#define NRF_LOG_FILTERS_ENABLED 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
 
// &amp;lt;16=&amp;gt; 16 
// &amp;lt;32=&amp;gt; 32 
// &amp;lt;64=&amp;gt; 64 
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 

#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
#endif

// &amp;lt;o&amp;gt; NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
 
// &amp;lt;16=&amp;gt; 16 
// &amp;lt;32=&amp;gt; 32 
// &amp;lt;64=&amp;gt; 64 
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 

#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
#endif&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The log settings does not necessarily need to be identical, but if the log settings are different and one is working and the other isnt, then please post the relevant sections from the sdk_config files.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Bjørn&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF_LOG_INIT HardFault in balloc. The bootloader also uses logging, is that a problem?</title><link>https://devzone.nordicsemi.com/thread/186928?ContentTypeID=1</link><pubDate>Tue, 14 May 2019 11:01:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e37dca42-6a10-4a67-8ba5-028c0f767b02</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;By changed I mean if you have modified(i.e. set them to non-default values) any of the definitions used by the Logging module in the sdk.config.h file, i.e.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;// &amp;lt;e&amp;gt; NRF_LOG_ENABLED - nrf_log - Logger
//==========================================================
#ifndef NRF_LOG_ENABLED
#define NRF_LOG_ENABLED 1
#endif
// &amp;lt;h&amp;gt; Log message pool - Configuration of log message pool

//==========================================================
// &amp;lt;o&amp;gt; NRF_LOG_MSGPOOL_ELEMENT_SIZE - Size of a single element in the pool of memory objects. 
// &amp;lt;i&amp;gt; If a small value is set, then performance of logs processing
// &amp;lt;i&amp;gt; is degraded because data is fragmented. Bigger value impacts
// &amp;lt;i&amp;gt; RAM memory utilization. The size is set to fit a message with
// &amp;lt;i&amp;gt; a timestamp and up to 2 arguments in a single memory object.

#ifndef NRF_LOG_MSGPOOL_ELEMENT_SIZE
#define NRF_LOG_MSGPOOL_ELEMENT_SIZE 20
#endif

// &amp;lt;o&amp;gt; NRF_LOG_MSGPOOL_ELEMENT_COUNT - Number of elements in the pool of memory objects 
// &amp;lt;i&amp;gt; If a small value is set, then it may lead to a deadlock
// &amp;lt;i&amp;gt; in certain cases if backend has high latency and holds
// &amp;lt;i&amp;gt; multiple messages for long time. Bigger value impacts
// &amp;lt;i&amp;gt; RAM memory usage.

#ifndef NRF_LOG_MSGPOOL_ELEMENT_COUNT
#define NRF_LOG_MSGPOOL_ELEMENT_COUNT 8
#endif

// &amp;lt;/h&amp;gt; 
//==========================================================

// &amp;lt;q&amp;gt; NRF_LOG_ALLOW_OVERFLOW  - Configures behavior when circular buffer is full.
 

// &amp;lt;i&amp;gt; If set then oldest logs are overwritten. Otherwise a 
// &amp;lt;i&amp;gt; marker is injected informing about overflow.

#ifndef NRF_LOG_ALLOW_OVERFLOW
#define NRF_LOG_ALLOW_OVERFLOW 1
#endif

// &amp;lt;o&amp;gt; NRF_LOG_BUFSIZE  - Size of the buffer for storing logs (in bytes).
 

// &amp;lt;i&amp;gt; Must be power of 2 and multiple of 4.
// &amp;lt;i&amp;gt; If NRF_LOG_DEFERRED = 0 then buffer size can be reduced to minimum.
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 
// &amp;lt;2048=&amp;gt; 2048 
// &amp;lt;4096=&amp;gt; 4096 
// &amp;lt;8192=&amp;gt; 8192 
// &amp;lt;16384=&amp;gt; 16384 

#ifndef NRF_LOG_BUFSIZE
#define NRF_LOG_BUFSIZE 1024
#endif

// &amp;lt;q&amp;gt; NRF_LOG_CLI_CMDS  - Enable CLI commands for the module.
 

#ifndef NRF_LOG_CLI_CMDS
#define NRF_LOG_CLI_CMDS 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_DEFAULT_LEVEL  - Default Severity level
 
// &amp;lt;0=&amp;gt; Off 
// &amp;lt;1=&amp;gt; Error 
// &amp;lt;2=&amp;gt; Warning 
// &amp;lt;3=&amp;gt; Info 
// &amp;lt;4=&amp;gt; Debug 

#ifndef NRF_LOG_DEFAULT_LEVEL
#define NRF_LOG_DEFAULT_LEVEL 3
#endif

// &amp;lt;q&amp;gt; NRF_LOG_DEFERRED  - Enable deffered logger.
 

// &amp;lt;i&amp;gt; Log data is buffered and can be processed in idle.

#ifndef NRF_LOG_DEFERRED
#define NRF_LOG_DEFERRED 1
#endif

// &amp;lt;q&amp;gt; NRF_LOG_FILTERS_ENABLED  - Enable dynamic filtering of logs.
 

#ifndef NRF_LOG_FILTERS_ENABLED
#define NRF_LOG_FILTERS_ENABLED 0
#endif

// &amp;lt;o&amp;gt; NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
 
// &amp;lt;16=&amp;gt; 16 
// &amp;lt;32=&amp;gt; 32 
// &amp;lt;64=&amp;gt; 64 
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 

#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
#endif

// &amp;lt;o&amp;gt; NRF_LOG_STR_PUSH_BUFFER_SIZE  - Size of the buffer dedicated for strings stored using @ref NRF_LOG_PUSH.
 
// &amp;lt;16=&amp;gt; 16 
// &amp;lt;32=&amp;gt; 32 
// &amp;lt;64=&amp;gt; 64 
// &amp;lt;128=&amp;gt; 128 
// &amp;lt;256=&amp;gt; 256 
// &amp;lt;512=&amp;gt; 512 
// &amp;lt;1024=&amp;gt; 1024 

#ifndef NRF_LOG_STR_PUSH_BUFFER_SIZE
#define NRF_LOG_STR_PUSH_BUFFER_SIZE 128
#endif&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;The log settings does not necessarily need to be identical, but if the log settings are different and one is working and the other isnt, then please post the relevant sections from the sdk_config files.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;
&lt;p&gt;Bjørn&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF_LOG_INIT HardFault in balloc. The bootloader also uses logging, is that a problem?</title><link>https://devzone.nordicsemi.com/thread/186879?ContentTypeID=1</link><pubDate>Tue, 14 May 2019 09:05:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5f88f0c7-41a3-45d2-b3c4-d5437106b15b</guid><dc:creator>Anne van Rossum</dc:creator><description>&lt;p&gt;Hi &lt;span&gt;Bj&amp;oslash;rn&lt;/span&gt;, &lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;What do you mean by &amp;quot;changed&amp;quot;?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;With &amp;quot;changed&amp;quot; do you mean changed in the application compared to the bootloader? Do you mean that all logging settings have to be the same in bootloader and application?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: NRF_LOG_INIT HardFault in balloc. The bootloader also uses logging, is that a problem?</title><link>https://devzone.nordicsemi.com/thread/186679?ContentTypeID=1</link><pubDate>Mon, 13 May 2019 11:48:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6dbe8ab8-5706-4e27-ace7-f997f8cf4747</guid><dc:creator>bjorn-spockeli</dc:creator><description>&lt;p&gt;HI Anne,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;there should not be any issues with calling&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_INIT(NULL);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; NRF_LOG_DEFAULT_BACKENDS_INIT();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;in both the application and in the bootloader, we do this in our SDK examples( i.e. bootlaoder and buttonless DFU application)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;So the Hardfault must be caused by something else. Have you changed any of the logging related defines in sdk_config.h?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Best regards&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Bjørn&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>