<feed xmlns='http://www.w3.org/2005/Atom'>
<title>suspect-devices/circuitpython/cc3200/FreeRTOS, branch 0.9.0</title>
<subtitle>CircuitPython - a Python implementation for teaching coding with microcontrollers</subtitle>
<id>https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=0.9.0</id>
<link rel='self' href='https://git.suspectdevices.com/suspect-devices/circuitpython/atom?h=0.9.0'/>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/'/>
<updated>2016-06-28T10:28:53+00:00</updated>
<entry>
<title>cc3200: Shrink the FreeRTOS heap and place TCB+stack in freed location.</title>
<updated>2016-06-28T10:28:53+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-06-05T12:01:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=469c623bb8e504ca78f1964508579ecefec76a98'/>
<id>urn:sha1:469c623bb8e504ca78f1964508579ecefec76a98</id>
<content type='text'>
The 16k FreeRTOS heap originally had all TCBs and stacks dynamically
allocated within it (plus semaphores and some other things).  Now that
xTaskCreateStatic is used instead of xTaskCreate, the TCBs and stacks
are allocated statically and no longer use any of the FreeRTOS heap.
Therefore, the FreeRTOS stack can be shrunk by the amount that has been
made static.  Furthermore, the TCBs and stack that are now static should
be placed in the .rtos_heaps section of RAM because this RAM is treated
specially by the bootloader (the bootloader executes from the first 16k
of RAM and loads the firmware into the section starting after the 16k).

After this patch the FreeRTOS heap (ucHeap) is 7200 bytes.  The memory
available for the MicroPython heap is 54936 bytes (including GC overhead).
</content>
</entry>
<entry>
<title>cc3200: In FreeRTOSConfig.h, comment on configSUPPORT_STATIC_ALLOCATION.</title>
<updated>2016-06-28T10:28:53+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-06-05T11:43:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=1d5aa9d245362d060843688a97f12a86b8fe1e46'/>
<id>urn:sha1:1d5aa9d245362d060843688a97f12a86b8fe1e46</id>
<content type='text'>
This config variable is now needed regardless of whether threading is
enabled or not.
</content>
</entry>
<entry>
<title>cc3200: Add basic threading capabilities.</title>
<updated>2016-06-28T10:28:51+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-27T16:35:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=eef4f13a3390dc88902563acb047f0439eff0caf'/>
<id>urn:sha1:eef4f13a3390dc88902563acb047f0439eff0caf</id>
<content type='text'>
Can create a new thread and run it.  Does not use the GIL at this point.
</content>
</entry>
<entry>
<title>cc3200: Define our own FreeRTOS heap so it can go in a special segment.</title>
<updated>2016-06-28T10:28:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-27T13:28:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9b1c1262dc70cfb6b5cf5d27e3e3d8e41b5a4901'/>
<id>urn:sha1:9b1c1262dc70cfb6b5cf5d27e3e3d8e41b5a4901</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cc3200: Update FreeRTOS to v9.0.0.</title>
<updated>2016-06-28T10:28:50+00:00</updated>
<author>
<name>Damien George</name>
<email>damien.p.george@gmail.com</email>
</author>
<published>2016-05-27T13:23:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=5c0fc73f33dde64d7e56f3f1ed85eb44957c804e'/>
<id>urn:sha1:5c0fc73f33dde64d7e56f3f1ed85eb44957c804e</id>
<content type='text'>
This is a pristine copy (actually a subset of files) of upstream FreeRTOS
v9.0.0.

Modifications to the previous version of FreeRTOS (v8.1.2) included
addition of __attribute__ ((section (".boot"))) to the following
functions:

    pxPortInitialiseStack
    prvTaskExitError
    prvPortStartFirstTask
    xPortStartScheduler
    vPortSetupTimerInterrupt
    xTaskGenericCreate
    vTaskStartScheduler
    prvInitialiseTCBVariables
    prvInitialiseTaskLists
    prvAllocateTCBAndStack

This attribute will need to be reinstated on a case-by-case basis
because some of the above functions are now removed/changed.
</content>
</entry>
<entry>
<title>cc3200: Increase stack sizes a bit.</title>
<updated>2015-10-19T19:17:15+00:00</updated>
<author>
<name>danicampora</name>
<email>daniel@wipy.io</email>
</author>
<published>2015-10-19T09:41:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=65f6324573db77a35152d09642b1f3e26eed3908'/>
<id>urn:sha1:65f6324573db77a35152d09642b1f3e26eed3908</id>
<content type='text'>
</content>
</entry>
<entry>
<title>cc3200: Enable long filename support in FatFS.</title>
<updated>2015-04-11T11:35:05+00:00</updated>
<author>
<name>Daniel Campora</name>
<email>daniel@wipy.io</email>
</author>
<published>2015-04-10T19:02:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=6e25d955f489ee3446c5af10ea28b1f9038a733b'/>
<id>urn:sha1:6e25d955f489ee3446c5af10ea28b1f9038a733b</id>
<content type='text'>
This has implications all over the place. I have to admit that
you can instantly see that usability improves, but it costs 3K.
At the same time I took the oportunity to rename the '/SFLASH'
drive to '/flash' which improves compatibility with the pyboard.
</content>
</entry>
<entry>
<title>cc3200: Add power management framework. Add mpcallback class.</title>
<updated>2015-03-11T16:00:33+00:00</updated>
<author>
<name>danicampora</name>
<email>danicampora@gmail.com</email>
</author>
<published>2015-03-04T12:52:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=9e44383e3f4092940a1e1b49a278978df99f7b08'/>
<id>urn:sha1:9e44383e3f4092940a1e1b49a278978df99f7b08</id>
<content type='text'>
Supports suspend and hibernate modes. Waking is possible throug GPIO
and WLAN.
The mpcallback class is generic and can be reused by other classes.
</content>
</entry>
<entry>
<title>cc3200: Place functions only used while booting in a special section.</title>
<updated>2015-03-11T15:59:29+00:00</updated>
<author>
<name>danicampora</name>
<email>danicampora@gmail.com</email>
</author>
<published>2015-03-02T13:11:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=26cbc91373cdfff43317da01e102617ed5885655'/>
<id>urn:sha1:26cbc91373cdfff43317da01e102617ed5885655</id>
<content type='text'>
Such functions are never used after MicroPython has started, and they
remain in RAM wasting space. Now they are placed in a special section
named "boot" which sits just before the heap, allowing us to extend
the effective heap area up to the new boot section. Right now, this
gives us back ~1K, but in the future, more functions might end up in
there as well.
</content>
</entry>
<entry>
<title>cc3200: Modify simplelink FreeRTOS OSI layer to only use semaphores.</title>
<updated>2015-02-26T10:18:18+00:00</updated>
<author>
<name>danicampora</name>
<email>danicampora@gmail.com</email>
</author>
<published>2015-02-26T09:54:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.suspectdevices.com/suspect-devices/circuitpython/commit/?id=5330d8996f3e64447b48ffe2824f7911337b0d07'/>
<id>urn:sha1:5330d8996f3e64447b48ffe2824f7911337b0d07</id>
<content type='text'>
Before, both mutexes and semaphores were used. Using only the latter
and with a bit of cleanup to remove some code bloat, we save ~600
bytes of code.
</content>
</entry>
</feed>
