Chopstx is an RT thread library for ARM Cortex M0, M0+, and M3 microcontrollers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NIIBE Yutaka 06eef36868 usart: Fix smartcard communication. Only ignoring echo back. 4 months ago
board Rename _PHR_ (as peripheral) to specific bus (AHB, APB, etc.). 4 months ago
contrib usart: Fix smartcard communication. Only ignoring echo back. 4 months ago
doc Version 1.14. 5 months ago
example-cdc Fix examples. 11 months ago
example-cdc-gnu-linux Fix examples. 11 months ago
example-fraucheky Fix examples. 11 months ago
example-fs-bb48 Fix examples. 11 months ago
example-fsm-55 APB -> APB1. 1 year ago
example-led Now, example-led works fine with -mcortex-m4. 4 months ago
example-primer2 Fix examples. 11 months ago
example-usart Add example-usart, which works well with ST Nucleo L432. 4 months ago
example-usb-serial Version 1.14. 5 months ago
mcu Rename _PHR_ (as peripheral) to specific bus (AHB, APB, etc.). 4 months ago
.gitignore Version 0.07 4 years ago
.gitlab-ci.yml More. 1 year ago
AUTHORS Rename clk_gpio_init-stm32f.c. 4 months ago
COPYING Initial commit 6 years ago
ChangeLog Factor out USART routines. 4 months ago
EXCEPTION Fix typo in copyright notice. 5 months ago
NEWS Version 1.14. 5 months ago
README Version 1.14. 5 months ago
VERSION Version 1.14. 5 months ago
adc.h USB cleanup 3 years ago
chopstx-cortex-m.c Try STM Nucleo L432 LED. 4 months ago
chopstx-cortex-m.h Factor out arch dependent code. 2 years ago
chopstx-gnu-linux.c Fix typo in copyright notice. 5 months ago
chopstx-gnu-linux.h Fix for GNU/Linux emulation. 2 years ago
chopstx.c Fix typo in copyright notice. 5 months ago
chopstx.h Fix typo in copyright notice. 5 months ago
chopstx.png Initial commit 6 years ago
chopstx.svg Initial commit 6 years ago
entry.c Now, example-led works fine with -mcortex-m4. 4 months ago
eventflag.c Fix typo in copyright notice. 5 months ago
eventflag.h Add eventflag_set_mask, removing eventflag_wait_all. 9 months ago
rules.mk Add ack-botton driver. 11 months ago
sys.h Add mcu/*stm32l4. 4 months ago
usb_lld.h Use event instead of interrupt (STM32F103 USB). 1 year ago
usb_lld_driver.h Fix usb drivers. 2 years ago

README

Chopstx - Threads and only Threads
Version 1.14
2018-03-02
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), 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
minimize use of threads.


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

Experimental SMP port for Cortex-A7 is under development. For SMP,
more careful considerations for shared access to objects of struct
chx_pq is needed. So, modifications required will not be small.
--