<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mjb/altos/src/stmf0, branch debian/1.6.8-4</title>
<subtitle>AltOS - the operating system for Altus Metrum products
</subtitle>
<id>https://git.ethernal.org/mjb/altos/atom?h=debian%2F1.6.8-4</id>
<link rel='self' href='https://git.ethernal.org/mjb/altos/atom?h=debian%2F1.6.8-4'/>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/'/>
<updated>2017-01-25T19:21:43+00:00</updated>
<entry>
<title>altos/arm: Align data so that gcc 5.4 doesn't do byte-accesses. Add -Wcast-align</title>
<updated>2017-01-25T19:21:43+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-12-18T04:58:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=fe25510fc23031f1a3c1b42edd37067d1989a9f6'/>
<id>urn:sha1:fe25510fc23031f1a3c1b42edd37067d1989a9f6</id>
<content type='text'>
Gcc 5.4.1 tracks alignment of data through assignments, so that a
uint32_t pointer which comes from byte-aligned uint8_t data:

extern uint8_t foo[];

	uint32_t	*q = (void *) foo;

Fetches and stores through this pointer are done bytewise. This is
slow (meh), but if q references a device register, things to bad very
quickly.

This patch works around this bug in the compiler by adding
__attribute__((aligned(4))) tags to some variables, or changing them
from uint8_t to uint32_t. Places doing this will now be caught as I've
added -Wcast-align to the compiler flags. That required adding (void
*) casts, after the relevant code was checked to make sure the
compiler could tell that the addresses were aligned.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/stmf0: Switch ADC fast to ADC clock</title>
<updated>2016-08-09T05:39:16+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-08-09T05:39:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=46b1234140c04dbfac22be0fdf80be96506b6948'/>
<id>urn:sha1:46b1234140c04dbfac22be0fdf80be96506b6948</id>
<content type='text'>
Using this slower clock eliminates sampling problems with the ADC and
cleans up the chaoskey raw data.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/stmf0: Clean .bin files from flash-loader dirs</title>
<updated>2016-08-02T23:55:11+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-08-02T23:53:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=1934468e96ea9d179abf6e3e728b6b14ce793f46'/>
<id>urn:sha1:1934468e96ea9d179abf6e3e728b6b14ce793f46</id>
<content type='text'>
The .bin files are what the DFU utility uses to flash the boot loader
using USB.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/stmf0: Hook up clock output support</title>
<updated>2016-08-02T23:55:11+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-08-02T23:32:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=782013d0ff2c9f076952c0e172bfcb7016699d5f'/>
<id>urn:sha1:782013d0ff2c9f076952c0e172bfcb7016699d5f</id>
<content type='text'>
This was used to try and not have two xtals on telemini, but failed
because the provided clock has too much noise.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Add STM32F0 beep and SPI byte API.</title>
<updated>2016-07-14T22:12:58+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-02T18:00:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=1667cb8e8b702b05fc3ec39ee49029885df64a4a'/>
<id>urn:sha1:1667cb8e8b702b05fc3ec39ee49029885df64a4a</id>
<content type='text'>
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>Switch from GPLv2 to GPLv2+</title>
<updated>2016-07-12T22:41:41+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-05T16:03:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a'/>
<id>urn:sha1:1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a</id>
<content type='text'>
Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/stmf0: Remove ao_usb_free</title>
<updated>2016-06-12T05:17:01+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-12T05:17:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=eee7fa303fb0d80ac5d7b9c5a86af60333f61951'/>
<id>urn:sha1:eee7fa303fb0d80ac5d7b9c5a86af60333f61951</id>
<content type='text'>
This can't work without a lot more effort.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/stmf0: Rework the sram allocation to save a few text bytes</title>
<updated>2016-06-12T05:16:12+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-12T05:16:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=1704d27248f1845c545ec61cf1bad58bf41189af'/>
<id>urn:sha1:1704d27248f1845c545ec61cf1bad58bf41189af</id>
<content type='text'>
Boot loaders were going over 4096 bytes of ROM. I suspect we'll need
more serious work soon.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>stmf0: Do not send more data than requested for GET_DESCRIPTOR</title>
<updated>2016-06-10T05:06:30+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-10T05:06:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=36ba97fabbed2f2a4a89da5be221c630ea3ff66f'/>
<id>urn:sha1:36ba97fabbed2f2a4a89da5be221c630ea3ff66f</id>
<content type='text'>
When Linux boots, it asks for only the first 8 bytes of the device
descriptor; we must limit the amount of data sent back to that amount
or USB will get wedged.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>stmf0: Clear all USB state when resetting chip. Wakeup all sleepers</title>
<updated>2016-06-10T05:05:24+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-10T05:05:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=2970de9f92243b11d3beef56f3b1df3ef3579b95'/>
<id>urn:sha1:2970de9f92243b11d3beef56f3b1df3ef3579b95</id>
<content type='text'>
When USB is reset, but the board is not power cycled, all of the
internal USB state needs to be reset, and any tasks blocked on sending
or receiving packets need to be awoken so they can go wait for USB to
start running again.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
</feed>
