<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mjb/altos/src/kernel, branch debian/1.6.8-5</title>
<subtitle>AltOS - the operating system for Altus Metrum products
</subtitle>
<id>https://git.ethernal.org/mjb/altos/atom?h=debian%2F1.6.8-5</id>
<link rel='self' href='https://git.ethernal.org/mjb/altos/atom?h=debian%2F1.6.8-5'/>
<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: Don't switch to flight 0 when log fills in flight</title>
<updated>2016-07-27T20:26:22+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-27T20:26:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=fe13426daff08f2beface2c1906f9a6184f6b987'/>
<id>urn:sha1:fe13426daff08f2beface2c1906f9a6184f6b987</id>
<content type='text'>
If the log is full at startup, we want to transmit flight 0 to let the
ground station know. However, we don't want to switch to flight 0 in
flight, so save the initial telemetry flight number (0 or the real
flight number) at startup and use that throughout the flight.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Expose cc1200 radio test functions for telemini bringup</title>
<updated>2016-07-27T20:24:57+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-27T20:24:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=71ddb973ff75680e78fbbef7978ab3893c367629'/>
<id>urn:sha1:71ddb973ff75680e78fbbef7978ab3893c367629</id>
<content type='text'>
This exposes the cc1200 radio test function so we can load special
test firmware in telemini to do the radio cal as it has no USB to
perform that interactively.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>fixup for interleave</title>
<updated>2016-07-27T20:23:06+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-27T20:23:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=59874a062543c61d164089e8b31f55a9b860c0b1'/>
<id>urn:sha1:59874a062543c61d164089e8b31f55a9b860c0b1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>altos: Keep telemetry and command output from interleaving</title>
<updated>2016-07-27T19:24:27+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-07-27T19:24:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=17adfd7939ff697afa96f7207a3fe17b6af789bd'/>
<id>urn:sha1:17adfd7939ff697afa96f7207a3fe17b6af789bd</id>
<content type='text'>
When monitoring telemetry, the frame needs to be sent together on one
line, not split with the output of a command (like 'a') mixed in.

Use a mutex for products with monitoring to keep command output and
telemetry output each on separate lines.

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: Leave USB enabled in flight with -DDEBUG=1</title>
<updated>2016-06-30T02:17:45+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-30T01:33:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=caf3fc2628c13ff38ffbaabda8aa8d146cda748e'/>
<id>urn:sha1:caf3fc2628c13ff38ffbaabda8aa8d146cda748e</id>
<content type='text'>
This leaves the command line available for diagnostics when debugging.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Make task list output more useful</title>
<updated>2016-06-30T02:17:45+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-29T19:54:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=a35424cd48205af89ba023db979959dc75b06706'/>
<id>urn:sha1:a35424cd48205af89ba023db979959dc75b06706</id>
<content type='text'>
Add the timeout value and task id

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Make ao_delay(0) not wait forever</title>
<updated>2016-06-30T02:17:45+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-29T19:52:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=349a63aeed6cdeb89bf18c7b2e2c40782c79cc00'/>
<id>urn:sha1:349a63aeed6cdeb89bf18c7b2e2c40782c79cc00</id>
<content type='text'>
ao_delay() is implemented on top of ao_sleep_for, and ao_sleep_for
uses the timeout value of 0 to indicate an infinite timeout. Calls to
ao_delay for 0 ticks would unintentionally hit this case and end up
waiting forever.x

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Add debug check for irq block when editing task queues</title>
<updated>2016-06-30T02:17:45+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-29T00:03:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=658d8be170f9aea683fe62b68368736a177411a5'/>
<id>urn:sha1:658d8be170f9aea683fe62b68368736a177411a5</id>
<content type='text'>
List manipulation operations are not atomic, so interrupts need to be
blocked while changing them.

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