<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mjb/altos/src/stm, branch altosdroid</title>
<subtitle>AltOS - the operating system for Altus Metrum products
</subtitle>
<id>https://git.ethernal.org/mjb/altos/atom?h=altosdroid</id>
<link rel='self' href='https://git.ethernal.org/mjb/altos/atom?h=altosdroid'/>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/'/>
<updated>2012-06-28T06:09:16+00:00</updated>
<entry>
<title>altos: Increase default STM stack to 648 bytes</title>
<updated>2012-06-28T06:09:16+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-28T06:09:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=79dbe1a5e46d7f0b8929400897631ab969cd2bc0'/>
<id>urn:sha1:79dbe1a5e46d7f0b8929400897631ab969cd2bc0</id>
<content type='text'>
512 seems cozy given the printf implementation we're using and the
extensive interrupts.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Clean up STM I2C clock computations</title>
<updated>2012-06-28T00:18:57+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-28T00:18:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=4f258fe565dc3e58b83761bfa1a2276946012163'/>
<id>urn:sha1:4f258fe565dc3e58b83761bfa1a2276946012163</id>
<content type='text'>
Fix both clock time and rise time.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: get MPU6000 I2C link working reliably</title>
<updated>2012-06-27T21:38:35+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-27T21:38:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=b0b7f5da2d29716959c6793d744e47a3d435c247'/>
<id>urn:sha1:b0b7f5da2d29716959c6793d744e47a3d435c247</id>
<content type='text'>
This slows the i2c bus to 100kHz (yuck), sets the rise time to spec
(it was way off) and adds more delays during bus setup. I've run this
for hours now without trouble. Will try to adjust things back to fast
mode and see if I can make that work as 100kHz isn't fast enough to
reliably get data at 100 samples/sec.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: reorder stm USB state stores to avoid races</title>
<updated>2012-06-27T21:35:56+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-27T21:35:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=e63d624f9670b5e2e002fcd5f24b80cf7f1effdf'/>
<id>urn:sha1:e63d624f9670b5e2e002fcd5f24b80cf7f1effdf</id>
<content type='text'>
Must set ao_usb_in_pending before telling USB about new data or an
interrupt could arrive at the wrong time to clear it.

Same for ao_usb_in_flushed.

Without these changes, I've seen the USB bus lock up on occasion,
waiting for an IN packet to consume data, but with no IN data pending
in the hardware.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: include targe SPI speed in get request</title>
<updated>2012-06-27T21:34:53+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-27T21:34:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=08a4ed8fe794a2b2b52147bd5535fe0954822e95'/>
<id>urn:sha1:08a4ed8fe794a2b2b52147bd5535fe0954822e95</id>
<content type='text'>
STM needs it to be provided when enabling the SPI device, so just fix
AVR and cc1111 to do the same.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Wait for i2c START condition before setting interrupt bits</title>
<updated>2012-06-27T09:46:27+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-27T09:46:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=1a1d4a557a30e2e743936b828b654187ec562ca8'/>
<id>urn:sha1:1a1d4a557a30e2e743936b828b654187ec562ca8</id>
<content type='text'>
This seems better than the random loop that it replaces, but I still
have no idea why this is required; it doesn't coorespond to the docs
at all...

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: stm i2c debug code was calling flush() even when disabled</title>
<updated>2012-06-27T08:19:05+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-27T08:19:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=8fc643c9768f0db31a248331681af9490f5715af'/>
<id>urn:sha1:8fc643c9768f0db31a248331681af9490f5715af</id>
<content type='text'>
The fancy stm i2c debugging code had calls to flush() that were
invoked outside of the conditionals leading to all kinds of fun --
flush() may re-enable interrupts, yield or do all kinds of wacky
stuff, none of which is appropriate from the middle of a device driver

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: mpu6000 requires a delay during start</title>
<updated>2012-06-27T08:17:51+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-27T08:17:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=0285696e5280fc64774b6c3a2fcdaa36bd36ae7c'/>
<id>urn:sha1:0285696e5280fc64774b6c3a2fcdaa36bd36ae7c</id>
<content type='text'>
I have no idea why this is required, but the mpu6000 will not come up
and run if this isn't present.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Create a 32-bit 1MHz timer for use in profiling execution</title>
<updated>2012-06-27T06:18:44+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-27T06:18:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=fb2b83fcd28199d8c686e676d46d6ecfbf706f37'/>
<id>urn:sha1:fb2b83fcd28199d8c686e676d46d6ecfbf706f37</id>
<content type='text'>
This provides a simple method for getting high-resolution timer data
to use in performance tuning code. It's not used by default anywhere.

Signed-off-by: Keith Packard &lt;keithp@keithp.com&gt;
</content>
</entry>
<entry>
<title>altos: Optimize FEC encode and decode</title>
<updated>2012-06-27T06:11:10+00:00</updated>
<author>
<name>Keith Packard</name>
<email>keithp@keithp.com</email>
</author>
<published>2012-06-27T06:11:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ethernal.org/mjb/altos/commit/?id=f1ae622eff60e05c1f5d8f822a3cf6a85750c6cc'/>
<id>urn:sha1:f1ae622eff60e05c1f5d8f822a3cf6a85750c6cc</id>
<content type='text'>
Integrate interleaving, CRC and padding within the decode/encode
functions.

Provide for ISR priorities so that the 1120 RX interrupt takes
precedence over the other interrupts or we risk losing bits.

Optimize the viterbi decoder a bit (goes from 10ms per packet to 7ms
per packet).

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