<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/shared-bindings, branch 3.1.1</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=3.1.1</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=3.1.1'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2018-09-12T21:19:43+00:00</updated>
<entry>
<title>UART fixes and enhancements; default board object fix</title>
<updated>2018-09-12T21:19:43+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-09-12T21:19:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6a046f55c449da59cf4641ef4cf34c6b1b63da44'/>
<id>urn:sha1:6a046f55c449da59cf4641ef4cf34c6b1b63da44</id>
<content type='text'>
</content>
</entry>
<entry>
<title>UART: Always allocate UART objects in the long-lived pool</title>
<updated>2018-08-09T00:21:57+00:00</updated>
<author>
<name>Jeff Epler</name>
<email>jepler@gmail.com</email>
</author>
<published>2018-07-31T01:49:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=e1b4e9b7c7cdd7a022a5ab113b68c8fa6be2c74d'/>
<id>urn:sha1:e1b4e9b7c7cdd7a022a5ab113b68c8fa6be2c74d</id>
<content type='text'>
Particularly when they have buffers that are written via IRQ or DMA,
UART objects do not relocate gracefully.  If such an object is
relocated to the long-lived pool after its original creation, the
IRQ or DMA will write to an unexpected location within the Python
heap, leading to a variety of symptoms.  The most frequent symptom
is inability to read from the UART.

Consider the particular case of atmel-samd: usart_uart_obj_t
contains a usart_async_descriptor contains a _usart_async_device.
In _sercom_init_irq_param the address of this contained
_usart_async_device is assigned to a global array
sercom_to_sercom_dev which is later used from the interrupt context
_sercom_usart_interrupt_handler to store the received data in the
right ring buffer.

When the UART object is relocated to the long-lived heap, there's no
mechanism to re-point these internal pointers, so instead take the
cowardly way and allocate the UART object as long-lived.

Happily, almost all UART objects are likely to be long-lived, so
this is unlikely to have a negative effect on memory usage or heap
fragmentation.

Closes: #1056
</content>
</entry>
<entry>
<title>fix os.listdir() when current dir is '/'</title>
<updated>2018-06-15T14:51:03+00:00</updated>
<author>
<name>Dan Halbert</name>
<email>halbert@halwitz.org</email>
</author>
<published>2018-06-15T14:51:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=327b0f76dac55a4bfe5df52799f72734623a351a'/>
<id>urn:sha1:327b0f76dac55a4bfe5df52799f72734623a351a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Prevent freezing USB during high frequency PulseIn.</title>
<updated>2018-06-08T19:56:32+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott.shawcroft@gmail.com</email>
</author>
<published>2018-06-05T19:38:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=2fbab8067afcb008bc92d9c155dfef360fbc10f9'/>
<id>urn:sha1:2fbab8067afcb008bc92d9c155dfef360fbc10f9</id>
<content type='text'>
We now track the last time the background task ran and bail on the
PulseIn if it starves the background work. In practice, this
happens after the numbers from pulsein are no longer accurate.

This also adjusts interrupt priorities so most are the lowest level
except for the tick and USB interrupts.

Fixes #516 and #876
</content>
</entry>
<entry>
<title>Fixed documentation formatting for RTD</title>
<updated>2018-06-06T22:28:01+00:00</updated>
<author>
<name>Kattni Rembor</name>
<email>kattni@adafruit.com</email>
</author>
<published>2018-06-06T22:28:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=3a3817262788a6b6812564815c46fdf1bd59667b'/>
<id>urn:sha1:3a3817262788a6b6812564815c46fdf1bd59667b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Adapt for feedback and hack around pIRkey size constraint.</title>
<updated>2018-06-01T22:08:52+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott.shawcroft@gmail.com</email>
</author>
<published>2018-06-01T20:11:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=717199018bcb43dd50af9011e2259f3caf3290f8'/>
<id>urn:sha1:717199018bcb43dd50af9011e2259f3caf3290f8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>atmel-samd: Add rotary encoder support.</title>
<updated>2018-06-01T22:08:48+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott.shawcroft@gmail.com</email>
</author>
<published>2018-05-30T01:21:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=d0fb6e7a2fd6b60ecc0fc8a332a9de5ed32f88af'/>
<id>urn:sha1:d0fb6e7a2fd6b60ecc0fc8a332a9de5ed32f88af</id>
<content type='text'>
Fixes #283
</content>
</entry>
<entry>
<title>atmel-samd: Re-org helper peripheral files into their own subdirectory.</title>
<updated>2018-06-01T22:07:31+00:00</updated>
<author>
<name>Scott Shawcroft</name>
<email>scott.shawcroft@gmail.com</email>
</author>
<published>2018-05-26T01:39:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=fd71e56891749837a823a4b555b84150b6fbc1e8'/>
<id>urn:sha1:fd71e56891749837a823a4b555b84150b6fbc1e8</id>
<content type='text'>
Ideally in the future they won't depend on ASF4 or MicroPython.
</content>
</entry>
<entry>
<title>Add gamepad_singleton to root pointers</title>
<updated>2018-05-30T21:11:22+00:00</updated>
<author>
<name>Radomir Dopieralski</name>
<email>openstack@sheep.art.pl</email>
</author>
<published>2018-05-24T09:25:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=b219ce6d377b6e00e1967c9b98966d4229f566ed'/>
<id>urn:sha1:b219ce6d377b6e00e1967c9b98966d4229f566ed</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make the gamepad singleton long-lived</title>
<updated>2018-05-30T21:11:22+00:00</updated>
<author>
<name>Radomir Dopieralski</name>
<email>openstack@sheep.art.pl</email>
</author>
<published>2018-05-24T09:16:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=c37b69e1a5316956ce966cce6841f3d960e581b0'/>
<id>urn:sha1:c37b69e1a5316956ce966cce6841f3d960e581b0</id>
<content type='text'>
So that it is not later moved.
</content>
</entry>
</feed>
