73 lines
2.0 KiB
Plaintext
73 lines
2.0 KiB
Plaintext
Chopstx - Threads and only Threads
|
|
Version 2.3
|
|
2021-10-12
|
|
Niibe Yutaka
|
|
Flying Stone Technology
|
|
|
|
What's Chopstx?
|
|
===============
|
|
|
|
Chopstx is an RT thread library for STM32F103 and GD32F103 (ARM
|
|
Cortex-M3), STM32F030 (ARM Cortex-M0), MKL27Z (ARM Cortex-M0plus),
|
|
STM32L432 (ARM Cortex-M4), GD32VF103 (RISC-V Bumblebee) and emulation
|
|
on GNU/Linux.
|
|
|
|
While most RTOSes come with many features, drivers, and protocol
|
|
stacks, Chopstx just offers a simple RT thread library.
|
|
|
|
With Chopstx, interrupt handling is also done by a thread. This
|
|
enables coherent code for ease of maintenance.
|
|
|
|
While threads are important, we don't need more threads than
|
|
necessary. Chopstx provides a feature of poll, so that we can
|
|
handle multiple events by a single thread.
|
|
|
|
|
|
Note that this library is _not_ related to the hand game:
|
|
|
|
https://en.wikipedia.org/wiki/Chopsticks_(hand_game)
|
|
|
|
Thanks to Yao Wei and Enrico Zini for giving me an opportunity
|
|
visiting the wiki page above in Debconf Taiwan, when my children were
|
|
playing the game.
|
|
|
|
|
|
License
|
|
=======
|
|
|
|
It is distributed under GNU General Public Licence version 3 or later
|
|
(GPLv3+), with additional permission. Please see COPYING and
|
|
EXCEPTION.
|
|
|
|
|
|
Example code
|
|
============
|
|
|
|
We have some examples in this distribution; Useful ones are LED
|
|
blinker and USB CDC-ACM device. For STM32F103, you can build it USB
|
|
CDC-ACM demo by:
|
|
|
|
$ cd example-cdc
|
|
$ ln -sf ../board/board-olimex-stm32-h103.h board.h
|
|
$ make
|
|
|
|
If you want to try GD32F103, Add -DMHZ=96 to DEFS in Makefile.
|
|
|
|
For a specific board named FSM-55, an example of LED matrix dynamic
|
|
driver is provided. See the directory: example-fsm-55.
|
|
|
|
For STM32 Primer2, see the directory: example-primer2.
|
|
|
|
|
|
Future Works
|
|
============
|
|
|
|
Convenience function to determine the bottom of thread stack,
|
|
configuration of thread size by compiler's output would be next things
|
|
to be done.
|
|
|
|
We have an experimental SMP port for Cortex-A7. For SMP, more careful
|
|
considerations for shared access to objects of struct chx_pq is
|
|
needed. So, modifications required will not be small.
|
|
--
|