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. 10 months ago
board Rename _PHR_ (as peripheral) to specific bus (AHB, APB, etc.). 10 months ago
contrib usart: Fix smartcard communication. Only ignoring echo back. 10 months ago
doc Version 1.14. 11 months ago
example-cdc Fix examples. 1 year ago
example-cdc-gnu-linux Fix examples. 1 year ago
example-fraucheky Fix examples. 1 year ago
example-fs-bb48 Fix examples. 1 year ago
example-fsm-55 APB -> APB1. 2 years ago
example-led Now, example-led works fine with -mcortex-m4. 10 months ago
example-primer2 Fix examples. 1 year ago
example-usart Add example-usart, which works well with ST Nucleo L432. 10 months ago
example-usb-serial Version 1.14. 11 months ago
mcu Rename _PHR_ (as peripheral) to specific bus (AHB, APB, etc.). 10 months ago
.gitignore Version 0.07 4 years ago
.gitlab-ci.yml More. 2 years ago
AUTHORS Rename clk_gpio_init-stm32f.c. 10 months ago
COPYING Initial commit 6 years ago
ChangeLog Factor out USART routines. 10 months ago
EXCEPTION Fix typo in copyright notice. 10 months ago
NEWS Version 1.14. 11 months ago
README Version 1.14. 11 months ago
VERSION Version 1.14. 11 months ago
adc.h USB cleanup 3 years ago
chopstx-cortex-m.c Try STM Nucleo L432 LED. 10 months ago
chopstx-cortex-m.h Factor out arch dependent code. 2 years ago
chopstx-gnu-linux.c Fix typo in copyright notice. 10 months ago
chopstx-gnu-linux.h Fix for GNU/Linux emulation. 2 years ago
chopstx.c Fix typo in copyright notice. 10 months ago
chopstx.h Fix typo in copyright notice. 10 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. 10 months ago
eventflag.c Fix typo in copyright notice. 10 months ago
eventflag.h Add eventflag_set_mask, removing eventflag_wait_all. 1 year ago
rules.mk Add ack-botton driver. 1 year ago
sys.h Add mcu/*stm32l4. 10 months ago
usb_lld.h Use event instead of interrupt (STM32F103 USB). 2 years 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.
--