<feed xmlns='http://www.w3.org/2005/Atom'>
<title>embassy/examples/nrf52840/src/bin/buffered_uart.rs, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/'/>
<entry>
<title>BufferedUart initialization</title>
<updated>2025-04-05T04:54:36+00:00</updated>
<author>
<name>Michael Gomez</name>
<email>m.nathan.gomez@gmail.com</email>
</author>
<published>2025-03-20T03:44:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=f1feedf19031d0c007628569add51ff89ae08447'/>
<id>f1feedf19031d0c007628569add51ff89ae08447</id>
<content type='text'>
This change modifies UART initialization throughout Embassy to take pins
before interrupts.

Related to #1304.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change modifies UART initialization throughout Embassy to take pins
before interrupts.

Related to #1304.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update nrf-pac.</title>
<updated>2024-11-15T01:22:20+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2024-11-15T01:22:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=3f23fd5c98244921b97858912bbcdfd681b4f92e'/>
<id>3f23fd5c98244921b97858912bbcdfd681b4f92e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ci: use beta, add secondary nightly ci.</title>
<updated>2023-12-21T14:03:57+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2023-12-21T13:57:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=8b36a32ed5d834b23e970d5b723dd7df1f1c94a2'/>
<id>8b36a32ed5d834b23e970d5b723dd7df1f1c94a2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update to embedded-io 0.5 (#1752)</title>
<updated>2023-08-07T11:43:09+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2023-08-07T11:43:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=5d5cd2371504915a531e669dce3558485a51a2e1'/>
<id>5d5cd2371504915a531e669dce3558485a51a2e1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>nrf/uart: switch to new interrupt binding.</title>
<updated>2023-03-05T23:17:51+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2023-03-05T19:17:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=9cf000ef4edd8f230b348ede8d7ce015045a0035'/>
<id>9cf000ef4edd8f230b348ede8d7ce015045a0035</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>nrf/buffered_uarte: make available on stable.</title>
<updated>2023-03-04T14:12:49+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2023-03-04T04:59:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=916f94b36663cbb638654b34acd53e30beb5c7b6'/>
<id>916f94b36663cbb638654b34acd53e30beb5c7b6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>nrf/buffered_uarte: remove PeripheralMutex, make it work without rts/cts.</title>
<updated>2023-03-04T14:12:49+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2023-03-04T04:27:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=ccc224c81ff1a56296576f4a249fe91a37c03fd8'/>
<id>ccc224c81ff1a56296576f4a249fe91a37c03fd8</id>
<content type='text'>
&gt; dirbaio: so I was checking how zephyr does UARTE RX on nRF
&gt; dirbaio: because currently we have the ugly "restart DMA on line idle to flush it" hack
&gt; dirbaio: because according to the docs "For each byte received over the RXD line, an RXDRDY event will be generated. This event is likely to occur before the corresponding data has been transferred to Data RAM."
&gt; dirbaio: so as I understood it, the only way to guarantee the data is actually transferred to RAM is to stop+restart DMA
&gt; dirbaio: well, guess what?
&gt; dirbaio: they just count RXDRDY's, and process that amount of data without restarting DMA
&gt; dirbaio: with a timer configured as counter https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/serial/uart_nrfx_uarte.c#L650-L692
&gt; dirbaio: 🤔🤷⁉️
&gt; dirbaio: someone saying you can do the "hook up rxdrdy to a counter" trick, someone else saying it's wrong 🤪 https://devzone.nordicsemi.com/f/nordic-q-a/28420/uarte-in-circular-mode

So we're going to do just that!

- BufferedUarte is lock-free now. No PeripheralMutex.
- The "restart DMA on line idle to flush it" hack is GONE. This means
  - It'll work correctly without RTS/CTS now.
  - It'll have better throughput when using RTS/CTS.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
&gt; dirbaio: so I was checking how zephyr does UARTE RX on nRF
&gt; dirbaio: because currently we have the ugly "restart DMA on line idle to flush it" hack
&gt; dirbaio: because according to the docs "For each byte received over the RXD line, an RXDRDY event will be generated. This event is likely to occur before the corresponding data has been transferred to Data RAM."
&gt; dirbaio: so as I understood it, the only way to guarantee the data is actually transferred to RAM is to stop+restart DMA
&gt; dirbaio: well, guess what?
&gt; dirbaio: they just count RXDRDY's, and process that amount of data without restarting DMA
&gt; dirbaio: with a timer configured as counter https://github.com/zephyrproject-rtos/zephyr/blob/main/drivers/serial/uart_nrfx_uarte.c#L650-L692
&gt; dirbaio: 🤔🤷⁉️
&gt; dirbaio: someone saying you can do the "hook up rxdrdy to a counter" trick, someone else saying it's wrong 🤪 https://devzone.nordicsemi.com/f/nordic-q-a/28420/uarte-in-circular-mode

So we're going to do just that!

- BufferedUarte is lock-free now. No PeripheralMutex.
- The "restart DMA on line idle to flush it" hack is GONE. This means
  - It'll work correctly without RTS/CTS now.
  - It'll have better throughput when using RTS/CTS.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename examples/nrf to examples/nrf52840</title>
<updated>2023-01-09T21:30:02+00:00</updated>
<author>
<name>Dominik Boehi</name>
<email>dominik.boehi@gmail.com</email>
</author>
<published>2023-01-09T21:29:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=0a27b6cedb52453123190671f294bbd34918e09a'/>
<id>0a27b6cedb52453123190671f294bbd34918e09a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
