<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mjb/altos/src/stm/ao_arch_funcs.h, branch pong</title>
<subtitle>AltOS - the operating system for Altus Metrum products
</subtitle>
<id>https://git.ethernal.org/mjb/altos/atom?h=pong</id>
<link rel='self' href='https://git.ethernal.org/mjb/altos/atom?h=pong'/>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/'/>
<updated>2017-04-04T23:04:25+00:00</updated>
<entry>
<title>stm: Add more mask-based GPIO controls</title>
<updated>2017-04-04T23:04:25+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-04-04T23:04:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=301b724d2169f4ac46d921f518455c783e1dd894'/>
<id>urn:sha1:301b724d2169f4ac46d921f518455c783e1dd894</id>
<content type='text'>
Lets cortexelf do more things with groups of pins, rather than one pin
at a time.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>stm: Add a few more GPIO functions to make dealing with the 1802 easier</title>
<updated>2017-04-03T18:37:21+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-04-03T18:37:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=0197157a295d848bac65cf7f4457dd5a99af24e3'/>
<id>urn:sha1:0197157a295d848bac65cf7f4457dd5a99af24e3</id>
<content type='text'>
ao_gpio_set_mask and ao_gpio_get_all

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: add button matrix driver</title>
<updated>2017-04-03T02:30:57+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2017-04-03T02:30:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=09f8710eb320f37f20dda8c635497c2b505d25e2'/>
<id>urn:sha1:09f8710eb320f37f20dda8c635497c2b505d25e2</id>
<content type='text'>
Scans the matrix once per clock tick queuing events for changed keys.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/stm: Allow use basepri instead of primask for masking interrupts</title>
<updated>2017-02-20T20:32:50+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-11-20T10:59:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=839eadbc8e5694842eb498c6e47cfbf08ba8fbf4'/>
<id>urn:sha1:839eadbc8e5694842eb498c6e47cfbf08ba8fbf4</id>
<content type='text'>
This allows for high priority interrupts (priority 0) to run, even
when other interrupts are blocked. Code executing in such interrupt
handlers must not attempt to control task execution as that will race
with the scheduler.

Select this by defining AO_NONMASK_INTERRUPT in ao_pins.h.
non-maskable interrupt priority is AO_STM_NVIC_NONMASK_PRIORITY

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/arm: Align data so that gcc 5.4 doesn't do byte-accesses. Add -Wcast-align</title>
<updated>2016-12-18T05:04:33+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=89ecc32b90565ace078c4a84d4406a4d1f86821a'/>
<id>urn:sha1:89ecc32b90565ace078c4a84d4406a4d1f86821a</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/stm: Make ao_spi_duplex out pointer const</title>
<updated>2016-09-03T05:58:39+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-09-03T05:52:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=1710a4921d4f408300c7d5adf0e83d08cc86be20'/>
<id>urn:sha1:1710a4921d4f408300c7d5adf0e83d08cc86be20</id>
<content type='text'>
Provides a bit better typechecking opportunities for this function.

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/stm: Add better byte-level SPI api</title>
<updated>2016-06-30T02:17:45+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-29T01:39:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=61ad8e5bf428246ac89cad7cb9a1edf2ef735fd5'/>
<id>urn:sha1:61ad8e5bf428246ac89cad7cb9a1edf2ef735fd5</id>
<content type='text'>
This provides inline functions for sending and receiving individual
bytes, and setup/finish functions to wrap them in. This make the byte
sending respect the SPI hardware interface requirements.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/stm: Change ao_spi_send_sync definition to take const source</title>
<updated>2016-06-30T02:17:45+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2016-06-29T01:25:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=2e60cd22f6789c94343e6432822cedab028dc1ba'/>
<id>urn:sha1:2e60cd22f6789c94343e6432822cedab028dc1ba</id>
<content type='text'>
Provides for a bit better error checking.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos/stm: remove ao_dma_abort</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:11:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=0dec7d0885970a7d73468dd77220bae78e161b40'/>
<id>urn:sha1:0dec7d0885970a7d73468dd77220bae78e161b40</id>
<content type='text'>
This function isn't used anywhere.

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