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. --