uTask 0.3.3

uTask Documentation


No long introductions. Just short Q&A list. Feel free to ask questions. The newest version of uTask can be downloaded at https://sourceforge.net/projects/utask/.


Q: What is uTask?

A: uTask is a simple library providing simple coroutines (http://en.wikipedia.org/wiki/Coroutine).

Q: Why was uTask created?

A: The library's main goal is to make writing firmware for 32bit uCs easier by providing simple framework for running multiple task in non-colliding manner.

Q: Can I use uTask on other devices? [new]

A: I have used uTask on ATmega8 uC, for better performance tune the structure a little, reduce members' sizes.

Q: How does it work?

A: uTask manages user's FSMs (http://en.wikipedia.org/wiki/Finite-state_machine) implemented as functions. uTask provides functions to put tasks to sleep, suspend them or make them wait for specific resource to be free. It also can spawn new tasks at runtime and end them if they are no longer needed.

Q: How big is uTask?

A: Library's footprint can be reduced to about 600 B of flash and 200 B of RAM, depending on selected features and maximal number of tasks that can be run concurrently. Full blown version occupies about 1.5 kB of flash and about 40B of RAM per task (again, depending on user choices).

Q: Was uTask tested?

A: Yes, it was tested for a few months now, it is used in production equipment.

Q: Is uTask free software?

A: Yes, uTask is a free software, it is licensed under MIT License (see LICENSE file).

Q: Why is it free?

A: It is free because I like it that way and my boss agreed to release it to the public. This is just a small tool of mine, it's not a commercial product. Enjoy!

Q: Who wrote uTask?

Q: uTask was written by Bartosz Bielawski with help from Marcin Zapolski. We are both Embedded System Engineers working at InventLab (http://inventlab.eu) company. This software was created in our worktime.