bd36873362
ESP8266 port uses SDK 2.0, has more heap, has support for 512k devices This release brings some code size reductions to the core as well as more tests and improved coverage which is now at 94.3%. The time.ticks_diff(a, b) function has changed: the order of the arguments has been swapped so that it behaves like "a - b", and it can now return a negative number if "a" came before "b" (modulo the period of the ticks functions). For the ESP8266 port the Espressif SDK has been updated to 2.0.0, the heap has been increased from 28k to 36k, and there is support for 512k devices via "make 512k". upip is included by default as frozen bytecode. The network module now allows access-point reconnection without WiFi credentials, and exposes configuration for the station DHCP hostname. The DS18B20 driver now handles negative temperatures, and NeoPixel and APA102 drivers handle 4 bytes-per-pixel LEDs. For the CC3200 port there is now support for loading of precompiled .mpy files and threading now works properly with interrupts. A detailed list of changes follows. py core: - py.mk: automatically add frozen.c to source list if FROZEN_DIR is defined - be more specific with MP_DECLARE_CONST_FUN_OBJ macros - specialise builtin funcs to use separate type for fixed arg count - {modbuiltins,obj}: use MP_PYTHON_PRINTER where possible - modbuiltins: add builtin "slice", pointing to existing slice type - add "delattr" builtin, conditional on MICROPY_CPYTHON_COMPAT - sequence: fix reverse slicing of lists - fix null pointer dereference in mpz.c, fix missing va_end in warning.c - remove asserts that are always true in emitbc.c - fix wrong assumption that m_renew will not move if shrinking - change config default so m_malloc0 uses memset if GC not enabled - add MICROPY_FLOAT_CONST macro for defining float constants - move frozen bytecode Makefile rules from ports to common mk files - strip leading dirs from frozen mpy files, so any path can be used extmod: - vfs_fat_file: check fatfs f_sync() and f_close() returns for errors - vfs_fat_file: make file.close() a no-op if file already closed - utime_mphal: ticks_diff(): switch arg order, return signed value - utime_mphal: add MP_THREAD_GIL_EXIT/ENTER warppers for sleep functions - utime_mphal: implement ticks_add(), add to all maintained ports - utime_mphal: allow ticks functions period be configurable by a port lib: - utils/pyhelp.c: use mp_printf() instead of printf() - utils/pyexec: add mp_hal_set_interrupt_char() prototype - libm: move Thumb-specific sqrtf function to separate file drivers: - add "from micropython import const" when const is used tools: - upgrade upip to 1.1.4: fix error on unix when installing to non-existing absolute path - pip-micropython: remove deprecated wrapper tool - check_code_size.sh: code size validation script for CI - replace upip tarball with just source file, to make its inclusion as frozen modules in multiple ports less magic tests: - extmod/vfs_fat: improve VFS test coverage - basics/builtin_slice: add test for "slice" builtin name - basics: add test for builtin "delattr" - extmod/vfs_fat_fsusermount: improve fsusermount test coverage - extmod/vfs_fat_oldproto: test old block device protocol - basics/gc1: garbage collector threshold() coverage - extmod/uhashlib_sha1: coverage for SHA1 algorithm - extmod/uhashlib_sha256: rename sha256.py test - btree1: fix out of memory error running on esp8266 - extmod/ticks_diff: test for new semantics of ticks_diff() - extmod/framebuf1: test framebuffer pixel clear, and text function minimal port: - Makefile: split rule for firmware.bin generation unix port: - Makefile: remove references to deprecated pip-micropython - modtime: use ticks_diff() implementation from extmod/utime_mphal.c - mphalport.h: add warning of mp_hal_delay_ms() implementation - modtime: switch ticks/sleep_ms/us() to utime_mphal - fix symbol references for x86 Mac - replace upip tarball with just source file windows port: - enable utime_mphal following unix, define mp_hal_ticks_* - fix utime_mphal compilation for msvc - implement mp_hal_ticks_cpu in terms of QueryPerformanceCounter qemu-arm port: - exclude ticks_diff test for qemu-arm port - exclude extmod/vfs_fat_fileio.py test - exclude new vfs_fat tests - enable software floating point support, and float tests stmhal port: - modutime: refactor to use extmod's version of ticks_cpu - refactor pin usage to use mp_hal_pin API - led: refactor LED to use mp_hal_pin_output() init function - Makefile: use standard rules for frozen module generation - modutime: consistently convert to MP_ROM_QSTR/MP_ROM_PTR - enable SD power save (disable CLK on idle) cc3200 port: - use mp_raise_XXX helper functions to reduce code size - mods/pybspi: allow "write" arg of read/readinto to be positional - enable loading of precompiled .mpy files - fix thread mutex's so threading works with interrupts teensy port: - update to provide new mp_hal_pin_XXX functions following stmhal esp8266 port: - Makefile: use latest esptool.py flash size auto-detection - esp_init_data: auto-initialize system params with vendor SDK 2.0.0 - esp8266.ld: move help.o to iROM - esp8266.ld: move modmachine.o to iROM - esp8266.ld: move main.o to iROM - add MP_FASTCODE modifier to put a function to iRAM - main: mark nlr_jump_fail() as MP_FASTCODE - modules/webrepl: enforce only one concurrent WebREPL connection - etshal.h: add few more ESP8266 vendor lib prototypes - modesp: add flash_user_start() function - add support for building firmware version for 512K modules - scripts: make neopixel/apa102 handle 4bpp LEDs with common code - modutime: consistently convert to MP_ROM_QSTR/MP_ROM_PTR - modnetwork: config(): fix copy-paste error in setting "mac" - scripts/port_diag: add descriptions for esf_buf types - modnetwork.c: allows AP reconnection without WiFi credentials - main: bump heap size to 36K - etshal.h: add prototypes for SPIRead/SPIWrite/SPIEraseSector - etshal.h: adjust size of MD5_CTX structure - modules: fix negative temperature in ds18x20 driver - rename "machine" module implementation to use contemporary naming - rework webrepl_setup to run over wired REPL - espneopixel.c: solve glitching LED issues with cpu at 80MHz - include upip as a standard frozen bytecode module - update docs for esptool 1.2.1/SDK 2.0 (--flash_size=detect) - modnetwork.c: expose configuration for station DHCP hostname zephyr port: - implement utime module - use board/SoC values for startup banner based on Zephyr config - initial implementation of machine.Pin - zephyr_getchar: update for recent Zephyr refactor of console hooks - support time -> utime module "weaklink" - README: update for the current featureset, add more info - mpconfigport.h: move less important params to the bottom - Makefile: allow to adjust heap size from make command line - Makefile: update comments to the current state of affairs - Makefile: allow to override Zephyr config from make command line - Makefile: add minimal port - Makefile: add -fomit-frame-pointer to reduce code size - mphalport.h: update for new "unified" kernal API (sleep functions) docs: - machine.SPI: bring up to date with Hardware API, make vendor-neutral - machine.SPI: improve descriptions of xfer methods - library/builtins: add docs for delattr and slice - library/network: reword intro paragraph - library/network: typo fixes, consistent acronym capitalization - library/index: update TOCs so builtins sorted before modules - utime: document ticks_cpu() in more detail - utime: describe new semantics of ticks_diff() (signed ring arithmetics) - utime: add docs for ticks_add(), improvements for other ticks_*() - esp8266: update for new WebREPL setup procedure - */quickref.rst: use new semantics of ticks_diff() - library/machine.Pin: update Pin docs to align with new HW API travis: - integrate tools/check_code_size.sh - minimal: Use CROSS=1, for binary size check examples: - http_server_simplistic: add "not suitable for real use" note - hwapi: example showing best practices for HW API usage in apps - hwapi: add hwconfig for DragonBoard 410c
289 lines
9.4 KiB
Python
289 lines
9.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
#
|
|
# MicroPython documentation build configuration file, created by
|
|
# sphinx-quickstart on Sun Sep 21 11:42:03 2014.
|
|
#
|
|
# This file is execfile()d with the current directory set to its
|
|
# containing dir.
|
|
#
|
|
# Note that not all possible configuration values are present in this
|
|
# autogenerated file.
|
|
#
|
|
# All configuration values have a default; values that are commented out
|
|
# serve to show the default.
|
|
|
|
import sys
|
|
import os
|
|
|
|
from recommonmark.parser import CommonMarkParser
|
|
|
|
# If extensions (or modules to document with autodoc) are in another directory,
|
|
# add these directories to sys.path here. If the directory is relative to the
|
|
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
sys.path.insert(0, os.path.abspath('.'))
|
|
|
|
|
|
# Specify a custom master document based on the port name
|
|
master_doc = 'index'
|
|
|
|
# -- General configuration ------------------------------------------------
|
|
|
|
# If your documentation needs a minimal Sphinx version, state it here.
|
|
needs_sphinx = '1.3'
|
|
|
|
# Add any Sphinx extension module names here, as strings. They can be
|
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
# ones.
|
|
extensions = [
|
|
'sphinx.ext.autodoc',
|
|
'sphinx.ext.doctest',
|
|
'sphinx.ext.intersphinx',
|
|
'sphinx.ext.todo',
|
|
'sphinx.ext.coverage'
|
|
]
|
|
|
|
# Add any paths that contain templates here, relative to this directory.
|
|
templates_path = ['templates']
|
|
|
|
# The suffix of source filenames.
|
|
source_suffix = ['.rst', '.md', '.c', '.h']
|
|
|
|
source_parsers = {'.md': CommonMarkParser,
|
|
'.c': "c2rst.CStrip", '.h': "c2rst.CStrip"}
|
|
|
|
# The encoding of source files.
|
|
#source_encoding = 'utf-8-sig'
|
|
|
|
# The master toctree document.
|
|
#master_doc = 'index'
|
|
|
|
# General information about the project.
|
|
project = 'Adafruit\'s MicroPython'
|
|
copyright = '2014-2016, MicroPython contributors (https://github.com/adafruit/micropython/graphs/contributors)'
|
|
|
|
# The version info for the project you're documenting, acts as replacement for
|
|
# |version| and |release|, also used in various other places throughout the
|
|
# built documents.
|
|
#
|
|
# The short X.Y version.
|
|
version = '1.8'
|
|
# The full version, including alpha/beta/rc tags.
|
|
release = '1.8.6'
|
|
|
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
|
# for a list of supported languages.
|
|
#language = None
|
|
|
|
# There are two options for replacing |today|: either, you set today to some
|
|
# non-false value, then it is used:
|
|
#today = ''
|
|
# Else, today_fmt is used as the format for a strftime call.
|
|
#today_fmt = '%B %d, %Y'
|
|
|
|
# List of patterns, relative to source directory, that match files and
|
|
# directories to ignore when looking for source files.
|
|
exclude_patterns = ["*/build-*", "atmel-samd/asf", "atmel-samd/**.c", "atmel-samd/**.h", "bare-arm", "cc3200", "cc3200/FreeRTOS", "cc3200/hal", "drivers", "esp8266", "examples", "extmod", "lib", "minimal", "mpy-cross", "pic16bit", "py", "qemu-arm", "stmhal", "stmhal/hal", "stmhal/cmsis", "stmhal/usbdev", "stmhal/usbhost", "teensy", "tests", "tools", "unix", "windows", "zephyr"]
|
|
|
|
# The reST default role (used for this markup: `text`) to use for all
|
|
# documents.
|
|
#default_role = None
|
|
|
|
# If true, '()' will be appended to :func: etc. cross-reference text.
|
|
#add_function_parentheses = True
|
|
|
|
# If true, the current module name will be prepended to all description
|
|
# unit titles (such as .. function::).
|
|
#add_module_names = True
|
|
|
|
# If true, sectionauthor and moduleauthor directives will be shown in the
|
|
# output. They are ignored by default.
|
|
#show_authors = False
|
|
|
|
# The name of the Pygments (syntax highlighting) style to use.
|
|
pygments_style = 'sphinx'
|
|
|
|
# A list of ignored prefixes for module index sorting.
|
|
#modindex_common_prefix = []
|
|
|
|
# If true, keep warnings as "system message" paragraphs in the built documents.
|
|
#keep_warnings = False
|
|
|
|
|
|
# -- Options for HTML output ----------------------------------------------
|
|
|
|
# on_rtd is whether we are on readthedocs.org
|
|
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
|
|
|
|
if not on_rtd: # only import and set the theme if we're building docs locally
|
|
try:
|
|
import sphinx_rtd_theme
|
|
html_theme = 'sphinx_rtd_theme'
|
|
html_theme_path = [sphinx_rtd_theme.get_html_theme_path(), '.']
|
|
except:
|
|
html_theme = 'default'
|
|
html_theme_path = ['.']
|
|
else:
|
|
html_theme_path = ['.']
|
|
|
|
# Theme options are theme-specific and customize the look and feel of a theme
|
|
# further. For a list of options available for each theme, see the
|
|
# documentation.
|
|
#html_theme_options = {}
|
|
|
|
# Add any paths that contain custom themes here, relative to this directory.
|
|
# html_theme_path = ['.']
|
|
|
|
# The name for this set of Sphinx documents. If None, it defaults to
|
|
# "<project> v<release> documentation".
|
|
#html_title = None
|
|
|
|
# A shorter title for the navigation bar. Default is the same as html_title.
|
|
#html_short_title = None
|
|
|
|
# The name of an image file (relative to this directory) to place at the top
|
|
# of the sidebar.
|
|
#html_logo = '../../logo/trans-logo.png'
|
|
|
|
# The name of an image file (within the static path) to use as favicon of the
|
|
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
|
# pixels large.
|
|
#html_favicon = None
|
|
|
|
# Add any paths that contain custom static files (such as style sheets) here,
|
|
# relative to this directory. They are copied after the builtin static files,
|
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
html_static_path = ['docs/static']
|
|
|
|
# Add any extra paths that contain custom files (such as robots.txt or
|
|
# .htaccess) here, relative to this directory. These files are copied
|
|
# directly to the root of the documentation.
|
|
#html_extra_path = []
|
|
|
|
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
|
# using the given strftime format.
|
|
html_last_updated_fmt = '%d %b %Y'
|
|
|
|
# If true, SmartyPants will be used to convert quotes and dashes to
|
|
# typographically correct entities.
|
|
#html_use_smartypants = True
|
|
|
|
# Custom sidebar templates, maps document names to template names.
|
|
#html_sidebars = {}
|
|
|
|
# Additional templates that should be rendered to pages, maps page names to
|
|
# template names.
|
|
#html_additional_pages = {"index": "topindex.html"}
|
|
|
|
# If false, no module index is generated.
|
|
#html_domain_indices = True
|
|
|
|
# If false, no index is generated.
|
|
#html_use_index = True
|
|
|
|
# If true, the index is split into individual pages for each letter.
|
|
#html_split_index = False
|
|
|
|
# If true, links to the reST sources are added to the pages.
|
|
#html_show_sourcelink = True
|
|
|
|
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
|
#html_show_sphinx = True
|
|
|
|
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
|
#html_show_copyright = True
|
|
|
|
# If true, an OpenSearch description file will be output, and all pages will
|
|
# contain a <link> tag referring to it. The value of this option must be the
|
|
# base URL from which the finished HTML is served.
|
|
#html_use_opensearch = ''
|
|
|
|
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
|
#html_file_suffix = None
|
|
|
|
# Output file base name for HTML help builder.
|
|
htmlhelp_basename = 'MicroPythondoc'
|
|
|
|
|
|
# -- Options for LaTeX output ---------------------------------------------
|
|
|
|
latex_elements = {
|
|
# The paper size ('letterpaper' or 'a4paper').
|
|
#'papersize': 'letterpaper',
|
|
|
|
# The font size ('10pt', '11pt' or '12pt').
|
|
#'pointsize': '10pt',
|
|
|
|
# Additional stuff for the LaTeX preamble.
|
|
#'preamble': '',
|
|
}
|
|
|
|
# Grouping the document tree into LaTeX files. List of tuples
|
|
# (source start file, target name, title,
|
|
# author, documentclass [howto, manual, or own class]).
|
|
latex_documents = [
|
|
(master_doc, 'MicroPython.tex', 'MicroPython Documentation',
|
|
'Damien P. George and contributors', 'manual'),
|
|
]
|
|
|
|
# The name of an image file (relative to this directory) to place at the top of
|
|
# the title page.
|
|
#latex_logo = None
|
|
|
|
# For "manual" documents, if this is true, then toplevel headings are parts,
|
|
# not chapters.
|
|
#latex_use_parts = False
|
|
|
|
# If true, show page references after internal links.
|
|
#latex_show_pagerefs = False
|
|
|
|
# If true, show URL addresses after external links.
|
|
#latex_show_urls = False
|
|
|
|
# Documents to append as an appendix to all manuals.
|
|
#latex_appendices = []
|
|
|
|
# If false, no module index is generated.
|
|
#latex_domain_indices = True
|
|
|
|
|
|
# -- Options for manual page output ---------------------------------------
|
|
|
|
# One entry per manual page. List of tuples
|
|
# (source start file, name, description, authors, manual section).
|
|
man_pages = [
|
|
('index', 'micropython', 'MicroPython Documentation',
|
|
['Damien P. George and contributors'], 1),
|
|
]
|
|
|
|
# If true, show URL addresses after external links.
|
|
#man_show_urls = False
|
|
|
|
|
|
# -- Options for Texinfo output -------------------------------------------
|
|
|
|
# Grouping the document tree into Texinfo files. List of tuples
|
|
# (source start file, target name, title, author,
|
|
# dir menu entry, description, category)
|
|
texinfo_documents = [
|
|
(master_doc, 'MicroPython', 'MicroPython Documentation',
|
|
'Damien P. George and contributors', 'MicroPython', 'One line description of project.',
|
|
'Miscellaneous'),
|
|
]
|
|
|
|
# Documents to append as an appendix to all manuals.
|
|
#texinfo_appendices = []
|
|
|
|
# If false, no module index is generated.
|
|
#texinfo_domain_indices = True
|
|
|
|
# How to display URL addresses: 'footnote', 'no', or 'inline'.
|
|
#texinfo_show_urls = 'footnote'
|
|
|
|
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
|
#texinfo_no_detailmenu = False
|
|
|
|
|
|
# Example configuration for intersphinx: refer to the Python standard library.
|
|
intersphinx_mapping = {'http://docs.python.org/': None}
|