1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/pkg/micropython/doc.txt
Marian Buschsieweke edc43201db
tree-wide: fix typos in doc and comments
This should not change any generated binary
2023-10-16 12:17:48 +02:00

88 lines
2.4 KiB
Plaintext

/**
* @defgroup pkg_micropython MicroPython RIOT port
* @ingroup pkg
* @brief MicroPython - Python for microcontrollers
*
* # MicroPython RIOT package
*
* "MicroPython is a lean and efficient implementation of the Python 3
* programming language that includes a small subset of the Python standard
* library and is optimised to run on microcontrollers and in constrained
* environments."
*
* @see https://micropython.org
*
* ## Status
*
* MicroPython on RIOT has to be considered experimental. While the basic
* interpreter works fairly well on native and Cortex-M, it has not seen much
* testing.
*
* ## Configuration options
*
* Use the following environment variables in the application Makefile
* or from the command line to configure MicroPython:
*
* MP_RIOT_HEAPSIZE: heap size for MicroPython, in bytes. Defaults to 16KiB.
*
* Example on the command line:
* ```
* MP_RIOT_HEAPSIZE=2048 make -C examples/micropython
* ```
*
* ## Implementation details
*
* The RIOT port of MicroPython currently resides in a fork at
* https://github.com/kaspar030/micropython (in branch add_riot_port). It is
* based on Micropython's "ports/minimal" with some extra modules enabled.
* It reuses the gc_collect code from ports/unix, which has special support
* for i386 and Cortex-M. On other platforms, it uses setjmp() to collect
* registers.
*
* ## MicroPython's test suite
*
* It is possible to run MicroPython's test suite for testing this port.
*
* Steps:
*
* 1. make -Cexamples/micropython flash
* 2. cd examples/micropython/bin/pkg/${BOARD}/micropython
* 3. git apply ports/riot/slow_uart_writes.patch
* 4. cd tests
* 5. ./run-tests --target pyboard --device ${PORT}
*
* ## MicroPython modules
*
* Currently, the port enables only a subset of the available MycroPython
* modules. See "ports/riot/mpconfigport.h" for details.
*
* For now, the utime module has RIOT specific code and should work as expected.
*
* ## RIOT specific modules
*
* Currently, these are implemented:
*
* ### thread_getpid()
*
* >>> import riot
* >>> print(riot.thread_getpid())
* ### xtimer
*
* >>> import xtimer
* >>>
* >>> a = 0
* >>> def inc_a():
* >>> global a
* >>> a += 1
* >>>
* >>> t = xtimer.xtimer(inc_a)
* >>> t.set(100000)
* >>> print(a)
*
* ## How to use
*
* See examples/micropython for example code.
*
*/