micropython/docs
Angus Gratton d11ca092f7 shared/tinyusb: Fix dynamic USB control callbacks for wLength==0.
In the case where an OUT control transfer triggers with wLength==0 (i.e.
all data sent in the SETUP phase, and no additional data phase) the
callbacks were previously implemented to return b"" (i.e. an empty buffer
for the data phase).

However this didn't actually work as intended because b"" can't provide a
RW buffer (needed for OUT transfers with a data phase to write data into),
so actually the endpoint would stall.

The symptom was often that the device process the request (if processing
it in the SETUP phase when all information was already available), but the
host sees the endpoint stall and eventually returns an error.

This commit changes the behaviour so returning True from the SETUP phase of
a control transfer queues a zero length status response.

Signed-off-by: Angus Gratton <angus@redyak.com.au>
2024-04-17 12:39:47 +10:00
..
develop all: Prune trailing whitespace. 2024-03-07 16:25:17 +11:00
differences all: Prune trailing whitespace. 2024-03-07 16:25:17 +11:00
esp32 esp32/network_lan: Add a separate argument to set PHY power pin. 2024-03-08 16:55:08 +11:00
esp8266 all: Fix spelling mistakes based on codespell check. 2023-04-27 18:03:06 +10:00
library shared/tinyusb: Fix dynamic USB control callbacks for wLength==0. 2024-04-17 12:39:47 +10:00
mimxrt all: Prune trailing whitespace. 2024-03-07 16:25:17 +11:00
pyboard docs: Use vfs module instead of os. 2024-02-07 13:25:10 +11:00
readthedocs/settings all: Update Python formatting to ruff-format. 2023-11-03 13:30:41 +11:00
reference docs/reference/mpyfiles: Document change in .mpy sub-version. 2024-03-28 16:21:35 +11:00
renesas-ra docs: Use vfs module instead of os. 2024-02-07 13:25:10 +11:00
rp2 docs: Update the PWM examples based on recent API improvements. 2023-05-04 13:15:55 +10:00
samd all: Prune trailing whitespace. 2024-03-07 16:25:17 +11:00
static docs: Update CPython differences and improve the look of table layouts. 2022-08-26 15:09:06 +10:00
templates all: Switch to new preview build versioning scheme. 2023-10-06 12:10:14 +11:00
unix unix: Implement `-X realtime` command-line option on macOS. 2022-05-24 00:51:47 +10:00
wipy docs: Use vfs module instead of os. 2024-02-07 13:25:10 +11:00
zephyr docs: Use vfs module instead of os. 2024-02-07 13:25:10 +11:00
Makefile docs/Makefile: Enable parallel compilation for Sphinx. 2022-09-29 23:51:29 +10:00
README.md docs: Set LaTeX engine to XeLaTeX for PDF generation. 2022-06-21 14:49:13 +10:00
conf.py all: Update Python formatting to ruff-format. 2023-11-03 13:30:41 +11:00
index.rst docs/samd: Add documentation for the samd port. 2022-10-26 23:39:35 +11:00
license.rst docs/license: Update copyright year. 2017-06-23 21:48:27 +03:00
make.bat docs/make.bat: Change Windows output dir from '_build' to 'build'. 2021-09-13 18:15:38 +10:00
requirements.txt docs: Add requirements.txt file with dependencies for Sphinx. 2023-10-02 12:35:12 +11:00

README.md

MicroPython Documentation

The MicroPython documentation can be found at: http://docs.micropython.org/en/latest/

The documentation you see there is generated from the files in the docs tree: https://github.com/micropython/micropython/tree/master/docs

Building the documentation locally

If you're making changes to the documentation, you may want to build the documentation locally so that you can preview your changes.

Install Sphinx, and optionally (for the RTD-styling), sphinx_rtd_theme, preferably in a virtualenv:

 pip install sphinx
 pip install sphinx_rtd_theme

In micropython/docs, build the docs:

make html

You'll find the index page at micropython/docs/build/html/index.html.

Having readthedocs.org build the documentation

If you would like to have docs for forks/branches hosted on GitHub, GitLab or BitBucket an alternative to building the docs locally is to sign up for a free https://readthedocs.org account. The rough steps to follow are:

  1. sign-up for an account, unless you already have one
  2. in your account settings: add GitHub as a connected service (assuming you have forked this repo on github)
  3. in your account projects: import your forked/cloned micropython repository into readthedocs
  4. in the project's versions: add the branches you are developing on or for which you'd like readthedocs to auto-generate docs whenever you push a change

PDF manual generation

This can be achieved with:

make latexpdf

but requires a rather complete install of LaTeX with various extensions. On Debian/Ubuntu, try (1GB+ download):

apt install texlive-latex-recommended texlive-latex-extra texlive-xetex texlive-fonts-extra cm-super xindy