<?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>timeslot parameter setting and softdevice hang</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/91143/timeslot-parameter-setting-and-softdevice-hang</link><description>Hi: 
 when i set the timeslot parameter see below:I found it will run.H owever, after running for a few seconds, the program hangs. Debugging found that the softdevice hangs.(see the picture below). 
 my questions is: 
 1.why the &amp;quot; timeout_us&amp;quot; parameter</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 29 Aug 2022 10:48:49 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/91143/timeslot-parameter-setting-and-softdevice-hang" /><item><title>RE: timeslot parameter setting and softdevice hang</title><link>https://devzone.nordicsemi.com/thread/383645?ContentTypeID=1</link><pubDate>Mon, 29 Aug 2022 10:48:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e7ff1937-0e85-4182-9329-c2d9e02e3038</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Zjw,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for the info. let me sum up, so you have about 48 pulses, each can have a width up to 47us. And the whole thing may last about 2ms.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;How often do the pulses come ?&amp;nbsp;Can you choose when to receive them or they comes periodically or they don&amp;#39;t have any interval ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If they don&amp;#39;t have an interval and if you don&amp;#39;t have control over when you receive them, I am not sure the timeslot could even help here, because it would take some time to request the softdevice to allow the timeslot to start.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Would it be possible that you can pause mesh (and BLE ? ) for a short period to receive the pulse and then enable mesh again ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: timeslot parameter setting and softdevice hang</title><link>https://devzone.nordicsemi.com/thread/383623?ContentTypeID=1</link><pubDate>Mon, 29 Aug 2022 09:01:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8469fa05-45d7-49ff-b867-48b67f8cb50c</guid><dc:creator>zjw2021</dc:creator><description>&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="4"&gt;&lt;span class="Q4iAWc"&gt;Hi Hung Bui&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="4"&gt;&lt;span class="Q4iAWc"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usually 48 pulses need to be captured in one signal.&lt;/span&gt;&lt;/span&gt; &lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="1" data-number-of-phrases="4"&gt;&lt;span class="Q4iAWc"&gt;The duration of each pulse needs to be captured (the pulse width is about 47 &amp;mu;s).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; If&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="2" data-number-of-phrases="4"&gt;&lt;span class="Q4iAWc"&gt; using PPI can only capture the time of one of the pulses.&lt;/span&gt;&lt;/span&gt; &lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="3" data-number-of-phrases="4"&gt;&lt;span class="Q4iAWc"&gt;Then the timer interrupt saves the capture to the array.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="3" data-number-of-phrases="4"&gt;&lt;span class="Q4iAWc"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sometimes the BLE interrupt will cause the timer interrupt to hang, and one of the rising or falling edges is not captured. So I want to use the timeslot function to ensure that the entire pulse signal received is complete.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: timeslot parameter setting and softdevice hang</title><link>https://devzone.nordicsemi.com/thread/383620?ContentTypeID=1</link><pubDate>Mon, 29 Aug 2022 08:52:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:35e938d4-d4b9-452d-92f3-79b114bd82c0</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Zjw,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you simply want to capture the actual length of a pulse, aren&amp;#39;t the PPI captures enough ?&amp;nbsp;&lt;br /&gt;The CPU doesn&amp;#39;t need to run in real time to calculate the distance between two capture registers ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;m not so sure I understand what you meant by &amp;quot;CPU record the capture time&amp;quot; and by &amp;quot;mesh will preempt the interrupt&amp;quot; .&amp;nbsp;&lt;br /&gt;As far as I know mesh shouldn&amp;#39;t preempt the PPI that trigger the capture task.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: timeslot parameter setting and softdevice hang</title><link>https://devzone.nordicsemi.com/thread/383542?ContentTypeID=1</link><pubDate>Sat, 27 Aug 2022 03:02:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:61955c3c-997e-4531-9dd8-94737e460248</guid><dc:creator>zjw2021</dc:creator><description>&lt;p&gt;Hi &lt;span class="user-name"&gt;Hung Bui&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="7"&gt;&lt;span class="Q4iAWc"&gt;The project is already using mesh stack.&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="1" data-number-of-phrases="7"&gt;&lt;span class="Q4iAWc"&gt;&amp;nbsp;&amp;nbsp; At present, it is necessary to capture the time of each pulse width in a signal with a length of 2ms in real time.&lt;/span&gt;&lt;/span&gt; &lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="2" data-number-of-phrases="7"&gt;&lt;span class="Q4iAWc"&gt;So my current idea is to use ppi to trigger timer capture.&lt;/span&gt;&lt;/span&gt; &lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="3" data-number-of-phrases="7"&gt;&lt;span class="Q4iAWc"&gt;And let the CPU record the capture time.&lt;/span&gt;&lt;/span&gt; &lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="4" data-number-of-phrases="7"&gt;&lt;span class="Q4iAWc"&gt;But because mesh will preempt the interrupt.&lt;/span&gt;&lt;/span&gt; &lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="5" data-number-of-phrases="7"&gt;&lt;span class="Q4iAWc"&gt;result in the loss of a pulse, which is unacceptable in this project.&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="6" data-number-of-phrases="7"&gt;&lt;span class="Q4iAWc"&gt;&amp;nbsp; So I was wondering if I could use timeslot to ensure that when a pulse comes over, I can completely capture this pulse.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: timeslot parameter setting and softdevice hang</title><link>https://devzone.nordicsemi.com/thread/383321?ContentTypeID=1</link><pubDate>Thu, 25 Aug 2022 14:07:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1283cfed-8af9-405c-b677-0ee8d5054290</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Zjw,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t got time to look into&amp;nbsp; your code yet. I would suggest to use one of our example and modify it for your use. Our example have very similar mechanism where it request a timeslot and then try to expand it before it is expired.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regarding your questions:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. Correct, you can use the interrupt that is not used by the hardware for your own use. The main point here is to trigger an interrupt that has a lower priority than your current interrupt. So that you don&amp;#39;t stay in the high priority interrupt handler for too long.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. It can be a challenge to implement timeslot protocol with the mesh stack. As you mentioned the mesh stack also use timeslot. You may want to choose to pause the mesh stack for a period of time when you do your own timeslot. Could you give more information about your application ?&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: timeslot parameter setting and softdevice hang</title><link>https://devzone.nordicsemi.com/thread/383202?ContentTypeID=1</link><pubDate>Thu, 25 Aug 2022 08:59:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:969d510a-dd71-4ea9-96f5-bdbbf4e6e452</guid><dc:creator>zjw2021</dc:creator><description>&lt;p&gt;&lt;span class="user-name"&gt;Hi Hung Bui&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks. &lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;I now have a deeper understanding.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; But I haven&amp;#39;t found the reason why my program hangs. Attached I uploaded the minimal code of my full project.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The program applies for a timeslot of 100 ms with a timeout of 120 ms. When the timeslot is about to expire, it will apply for another timeslot of 100 ms, and so on.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;&amp;nbsp;&amp;nbsp; the log output see below.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1661416872015v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="6"&gt;&lt;span class="Q4iAWc"&gt;Meanwhile, I have two questions.&lt;/span&gt;&lt;/span&gt;&lt;span class="JLqJ4b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="1" data-number-of-phrases="6"&gt;&lt;span class="Q4iAWc"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="2" data-number-of-phrases="6"&gt;&lt;span class="Q4iAWc"&gt;1. The code in the &lt;a title="blog" href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/running-micro-esb-concurrently-with-ble"&gt;blog&lt;/a&gt;, executing your own code in the timeslot is the way of using the interrupt.&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="3" data-number-of-phrases="6"&gt;&lt;span class="Q4iAWc"&gt;For example, &amp;quot;NVIC_SetPendingIRQ(TIMESLOT_BEGIN_IRQn);&amp;quot; The interrupt number used by TIMESLOT_BEGIN_IRQn is COMP_LPCOMP_IRQn.&lt;/span&gt;&lt;/span&gt; &lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="4" data-number-of-phrases="6"&gt;&lt;span class="Q4iAWc"&gt;This is an interrupt number for existing hardware.&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="5" data-number-of-phrases="6"&gt;&lt;span class="Q4iAWc"&gt;My understanding is whether the interrupt number borrowed by timeslot can use the hardware interrupt number that is not used in the project。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="5" data-number-of-phrases="6"&gt;&lt;span class="Q4iAWc"&gt;2.If my project uses BLE mesh. Is it not possible to use timeslot. Because I found that mesh itself also used timeslot. A timeslot session can only be opened once.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="user-name"&gt;&lt;span class="VIiyi" lang="en"&gt;&lt;span class="JLqJ4b ChMk0b" data-language-for-alternatives="en" data-language-to-translate-into="zh-CN" data-phrase-index="0" data-number-of-phrases="1"&gt;&lt;span class="Q4iAWc"&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/nRF5_5F00_SDK_5F00_15.0.0_5F00_myTest.7z"&gt;devzone.nordicsemi.com/.../nRF5_5F00_SDK_5F00_15.0.0_5F00_myTest.7z&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: timeslot parameter setting and softdevice hang</title><link>https://devzone.nordicsemi.com/thread/382483?ContentTypeID=1</link><pubDate>Fri, 19 Aug 2022 13:51:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0e0f0607-8845-448d-899c-12eb09dd8e09</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Zjw,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I would suggest to have a look at the blog &lt;a href="https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/posts/running-micro-esb-concurrently-with-ble"&gt;here &lt;/a&gt;and the source code &lt;a href="https://github.com/NordicPlayground/nRF51-multi-role-conn-observer-advertiser"&gt;here&lt;/a&gt;. It&amp;#39;s an example of how to use the radio timeslot to do ESB protocol.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Regarding your question:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;1. I&amp;#39;m not so sure what you showed in the screenshot meant that the softdevice hang. It can be a hardfault from the softdevice not &amp;quot;hang&amp;quot;. Which&amp;nbsp;&amp;nbsp;timeout_us did you use ?&amp;nbsp;Did you base your implementation on one of our example ?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;2. The way we do it is to trigger a lower priority interrupt when we receive&amp;nbsp;&lt;span&gt;NRF_RADIO_CALLBACK_SIGNAL_TYPE_START event. Like in the example I pointed to we trigger&amp;nbsp;TIMESLOT_BEGIN_IRQn. This way we don&amp;#39;t need to have a loop in the main loop to wait for the global variable to change.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;3. Please have a look at chapter 15 Scheduling in the S132 v7.0 specification:&amp;nbsp;&lt;br /&gt;&lt;img style="max-height:240px;max-width:320px;" src="https://devzone.nordicsemi.com/resized-image/__size/640x480/__key/communityserver-discussions-components-files/4/pastedimage1660916949315v1.png" alt=" " /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The role that has higher priority can preempt the role that has lower priority. If they are at the same priority and if the timeslot has already secured the slot with the scheduler , the BLE event will be dropped. However, it doesn&amp;#39;t mean the BLE packet will be lost. By design, BLE packets will be retransmitted if it&amp;#39;s not ACKed by the other side. So there will be latency introduced by the 100ms timeslot, but data will be retransmitted afterward.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>