<?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>libuarte packet fragmentation</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/81200/libuarte-packet-fragmentation</link><description>On the nrf52840 I have libuarte working. 
 The part runs on 1Mbps with 2 timers connected in the define. 
 This all works great for 90% of the time. 
 When the incoming data exceeds the limits of the allocated buffers, the message in the event handler</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 03 Nov 2021 09:31:43 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/81200/libuarte-packet-fragmentation" /><item><title>RE: libuarte packet fragmentation</title><link>https://devzone.nordicsemi.com/thread/337220?ContentTypeID=1</link><pubDate>Wed, 03 Nov 2021 09:31:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8ffc24aa-b1c3-4d88-a213-e2bbd34e743d</guid><dc:creator>AshLabs</dc:creator><description>&lt;p&gt;Hey Krzysztof. My buffer size is currently 0x420. In a pool of 3 buffers. I have a segmentation issue each 2 / 4 seconds. I implemented a system where i store the pointer of the buffer, and only free it after the second segment of the buffer segmentation is produced. This seems to work, so the issue can be closed. Thanks a lot.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: libuarte packet fragmentation</title><link>https://devzone.nordicsemi.com/thread/337216?ContentTypeID=1</link><pubDate>Wed, 03 Nov 2021 09:29:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8a50eabb-00da-4d43-a615-9079a7e93534</guid><dc:creator>Krzysztof Chruscinski</dc:creator><description>&lt;p&gt;Yeah, if there is an option to loose packets then you need to handle packets that spans across multiple buffers. You can increase pool of buffers then you have more time to release them.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: libuarte packet fragmentation</title><link>https://devzone.nordicsemi.com/thread/336987?ContentTypeID=1</link><pubDate>Tue, 02 Nov 2021 08:16:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0cde17ed-1e88-49dc-98a8-f519381650e2</guid><dc:creator>AshLabs</dc:creator><description>&lt;p&gt;Thanks for the reply Krzysztof.&lt;br /&gt;With the approach of disabling and re-enabling the uart i am scared that i will loose packets, which will not help me further. I tried processing multiple packets over triggered events (the callback function), but then i get into a freeing issue and fatal errors. I will investigate, thanks for the tips !&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: libuarte packet fragmentation</title><link>https://devzone.nordicsemi.com/thread/336974?ContentTypeID=1</link><pubDate>Tue, 02 Nov 2021 07:28:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5ee596ab-f1de-4641-93e0-942ecb4498af</guid><dc:creator>Krzysztof Chruscinski</dc:creator><description>&lt;p&gt;The only option to have packet in continuous memory is to disable UART and set it up again. Alternatively, you need to process packet that spans across multiple buffers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: libuarte packet fragmentation</title><link>https://devzone.nordicsemi.com/thread/336667?ContentTypeID=1</link><pubDate>Fri, 29 Oct 2021 11:34:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0d32819a-8768-4e3a-af12-3b7e2b4cfb81</guid><dc:creator>AshLabs</dc:creator><description>&lt;p&gt;Yes. The problem is that i need to free this buffer or the system crashes. I don&amp;#39;t wat to do memcpy(...) in interrupt routines, as it&amp;#39;s time critical. So this is where the issues lie. These buffers are not circular buffers, so there is no way in consistently getting them in full array format as they are presented on the bus ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: libuarte packet fragmentation</title><link>https://devzone.nordicsemi.com/thread/336655?ContentTypeID=1</link><pubDate>Fri, 29 Oct 2021 11:26:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d06b58b7-931e-49a0-b3cd-504285427e8a</guid><dc:creator>Krzysztof Chruscinski</dc:creator><description>&lt;p&gt;yes, that&amp;#39;s how it work, you will get events on timeout and on buffer boundary. You need to use some packet length decoding to process packets.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>