<feed xmlns='http://www.w3.org/2005/Atom'>
<title>embassy/embassy-extras/src, 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>Rename embassy-extras to embassy-hal-common</title>
<updated>2021-07-29T11:44:51+00:00</updated>
<author>
<name>Dario Nieuwenhuis</name>
<email>dirbaio@dirbaio.net</email>
</author>
<published>2021-07-29T11:44:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=7bfb763e0990aac1b0bc4ad95dcc55df53cdb6d9'/>
<id>7bfb763e0990aac1b0bc4ad95dcc55df53cdb6d9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't bother supporting creating a `PeripheralMutex` in an exception handler</title>
<updated>2021-07-29T05:19:57+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-29T05:19:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=cd1a3fcff34943117f446e1afeb9e6d531ee577b'/>
<id>cd1a3fcff34943117f446e1afeb9e6d531ee577b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace `PeripheralStateUnchecked` with `register_interrupt_unchecked`</title>
<updated>2021-07-29T05:11:26+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-29T05:11:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=d5ba35424d7eef2cc0c501758d214ce3a6febfc1'/>
<id>d5ba35424d7eef2cc0c501758d214ce3a6febfc1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't allow disabling interrupts wrapped by `PeripheralMutex`</title>
<updated>2021-07-28T11:39:31+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-28T11:39:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=4d9514cbcb97343c3a75bfa565d753c44c2a0e27'/>
<id>4d9514cbcb97343c3a75bfa565d753c44c2a0e27</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: interrupts with equal priority can't preempt each other</title>
<updated>2021-07-28T11:31:31+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-28T11:31:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=68c93256bcab8dfe0f65c694fa5fadb890fd3f00'/>
<id>68c93256bcab8dfe0f65c694fa5fadb890fd3f00</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove critical sections from `PeripheralMutex` interrupt handler by checking the interrupt's priority on startup.</title>
<updated>2021-07-27T07:28:52+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-27T07:28:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=079526559f44a0822574205e8798136f11f207d3'/>
<id>079526559f44a0822574205e8798136f11f207d3</id>
<content type='text'>
Since `PeripheralMutex` is the only way to safely maintain state across interrupts, and it no longer allows setting the interrupt's priority, the priority changing isn't a concern.

This also prevents other causes of UB due to the interrupt being exposed during `with`, and allowing enabling the interrupt and setting its context to a bogus pointer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Since `PeripheralMutex` is the only way to safely maintain state across interrupts, and it no longer allows setting the interrupt's priority, the priority changing isn't a concern.

This also prevents other causes of UB due to the interrupt being exposed during `with`, and allowing enabling the interrupt and setting its context to a bogus pointer.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add `Send/Sync` bounds to `PeripheralState`</title>
<updated>2021-07-24T02:53:57+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-24T02:53:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=1b7ad7080e6a8c96f2622d75b99a4d3bdbc7c394'/>
<id>1b7ad7080e6a8c96f2622d75b99a4d3bdbc7c394</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix stm32 ethernet</title>
<updated>2021-07-05T08:18:05+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-05T08:18:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=fc1ef4947d463495ccd3da1d7763dcbe95a2588f'/>
<id>fc1ef4947d463495ccd3da1d7763dcbe95a2588f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Elide lifetimes on `Peripheral::state`</title>
<updated>2021-07-05T07:47:55+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-05T07:47:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=3d96b10b0cd0066d4269094852e458bbf80a9807'/>
<id>3d96b10b0cd0066d4269094852e458bbf80a9807</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>extras: Fix UB in `Peripheral`</title>
<updated>2021-07-05T07:42:43+00:00</updated>
<author>
<name>Liam Murphy</name>
<email>liampm32@gmail.com</email>
</author>
<published>2021-07-05T07:42:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/rust/embassy/commit/?id=744e2cbb8a0b58eccf3a9708c8c28f1ef17e4771'/>
<id>744e2cbb8a0b58eccf3a9708c8c28f1ef17e4771</id>
<content type='text'>
`Peripheral` assumed that interrupts can't be preempted,
when they can be preempted by higher priority interrupts.
So I put the interrupt handler inside a critical section,
and also added checks for whether the state had been dropped
before the critical section was entered.

I also added a `'static` bound to `PeripheralState`,
since `Pin` only guarantees that the memory it directly references
will not be invalidated.
It doesn't guarantee that memory its pointee references also won't be invalidated.

There were already some implementations of `PeripheralState`
that weren't `'static`, though,
so I added an unsafe `PeripheralStateUnchecked` trait
and forwarded the `unsafe` to the constructors of the implementors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`Peripheral` assumed that interrupts can't be preempted,
when they can be preempted by higher priority interrupts.
So I put the interrupt handler inside a critical section,
and also added checks for whether the state had been dropped
before the critical section was entered.

I also added a `'static` bound to `PeripheralState`,
since `Pin` only guarantees that the memory it directly references
will not be invalidated.
It doesn't guarantee that memory its pointee references also won't be invalidated.

There were already some implementations of `PeripheralState`
that weren't `'static`, though,
so I added an unsafe `PeripheralStateUnchecked` trait
and forwarded the `unsafe` to the constructors of the implementors.
</pre>
</div>
</content>
</entry>
</feed>
