Skip to content

Merge 1.17 #5466

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 271 commits into from
Oct 16, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
271 commits
Select commit Hold shift + click to select a range
115acad
mpy-cross: Disable stack check when building with Emscripten.
dlech Jun 1, 2020
08e0e06
py/makeqstrdefs.py: Don't include .h files explicitly in preprocessing.
dpgeorge Jun 23, 2021
cfd0844
py: Mark unused arguments from bytecode decoding macros.
dpgeorge Jun 24, 2021
c13853f
javascript: Rework Makefile and GC so it works with latest Emscripten.
dpgeorge Jun 24, 2021
2dc4f84
github/workflows: Add workflow to build and test javascript port.
dpgeorge Jun 24, 2021
180c54d
tests/extmod: Make uasyncio_heaplock test more deterministic.
dpgeorge Jun 25, 2021
30422ca
esp32/esp32_rmt: Fix RMT looping in newer IDF versions.
jonathanhogg Jun 24, 2021
c940597
github/workflows: Switch from Coveralls to Codecov.
dpgeorge Jun 25, 2021
f3e4ed8
github/workflows: Switch from lcov to gcov.
dpgeorge Jun 26, 2021
f454127
mimxrt/machine_spi: Add the SPI class to the machine module.
robert-hh Jun 9, 2021
a262faa
mimxrt/moduos: Seed the PRNG on boot using the TRNG.
robert-hh Jun 6, 2021
b35566a
mimxrt/boards: Set vfs partition start to 1 MBbyte.
robert-hh Jun 8, 2021
4eabff5
mimxrt/main: Skip running main.py if boot.py failed.
robert-hh Jun 16, 2021
c8284c9
mimxrt/main: Extend the information returned by help().
robert-hh Jun 18, 2021
552e11b
mimxrt/mimxrt_flash: Remove commented-out code.
robert-hh Jun 19, 2021
cbc9a59
mimxrt/modmachine: Add a few minor methods to the machine module.
robert-hh Jun 19, 2021
7ec95c2
extmod/uasyncio: Get addr and bind server socket before creating task.
dpgeorge Jun 25, 2021
4ada56d
tools/makemanifest.py: Allow passing flags to mpy-tool.py.
Jongy Dec 11, 2019
87985fc
stm32/boardctrl: Skip running main.py if boot.py had an error.
dpgeorge Jun 11, 2021
f4dce15
stm32/sdio: Fix undefined reference to DMA stream on H7.
iabdalkader Jun 19, 2021
a32a742
stm32/dma: Add DMAMUX configuration for H7 to fix dma_nohal_init.
iabdalkader Jun 19, 2021
8182f34
stm32/main: Call mp_deinit() at end of main.
dlech Jun 28, 2021
efa97be
tools/autobuild: Add mimxrt port to build scripts for nightly builds.
robert-hh Jun 23, 2021
41adf17
tools/pyboard.py: Add cmd-line option to make soft reset configurable.
Jun 25, 2021
58e4d72
py/objexcept: Pretty print OSError also when it has 2 arguments.
dlech Apr 8, 2020
18e48a7
esp32/esp32_rmt: Enhance RMT with idle_level and write_pulses modes.
jonathanhogg Jun 30, 2021
0b3332c
docs/library: Document new esp32.RMT features and fix wait_done.
jonathanhogg Jun 30, 2021
076caf3
javascript/Makefile: Suppress compiler errors from array bounds.
dpgeorge Jul 2, 2021
d1decdf
tools/mpremote: Swap order of PID and VID in connect-list output.
lurch Jul 2, 2021
ff7be31
stm32/adc: Allow using ADC12 and ADC3 for H7.
iabdalkader Jun 16, 2021
0e11966
stm32/adc: Define the ADC instance used for internal channels.
iabdalkader Jul 1, 2021
86ef965
stm32/adc: Simplify and generalise how pin_adcX table is defined.
dpgeorge Jul 1, 2021
c8e9e04
lib/tinyusb: Update to version 0.10.1.
dpgeorge Jun 30, 2021
d67bd49
lib/pico-sdk: Update to version 1.2.0.
dpgeorge Jun 30, 2021
031fe0f
rp2/CMakeLists.txt: Suppress compiler errors for pico-sdk and tinyusb.
dpgeorge Jun 30, 2021
8a5bfe4
esp32,stm32: Add new machine.I2S class for I2S protocol support.
miketeachman Apr 17, 2021
3966f67
zephyr/machine_spi: Add support for hardware SPI.
Julia-Hathaway Jun 14, 2021
d934f8c
py/makeversionhdr: Add --tags arg to git describe.
dlech Jul 5, 2021
c1f74b3
docs/library: Warn that ustruct doesn't handle spaces in format strings.
spon-ww Aug 5, 2019
cd506d6
tests/cpydiff/modules_struct_whitespace_in_format: Run black.
dlech Jul 6, 2021
e10a044
docs/esp8266/tutorial: Change flash mode from dio to dout.
finefoot Jun 28, 2021
3d9af87
windows/Makefile: Add .exe extension to executables name.
btongminh Aug 10, 2019
20a6044
lib/utils/stdout_helpers: Make mp_hal_stdout_tx_strn_cooked efficient.
dpgeorge Jul 6, 2021
132d938
ports: Use common mp_hal_stdout_tx_strn_cooked instead of custom one.
dpgeorge Jul 6, 2021
0613d3e
rp2/tusb_config.h: Set CFG_TUD_CDC_EP_BUFSIZE to 256.
dpgeorge Jul 6, 2021
2e634d5
lib/axtls: Switch to repo at micropython/axtls.
dpgeorge Jul 8, 2021
75c1609
lib/axtls: Update to latest axtls 2.1.5 wih additional commits.
dpgeorge Jul 8, 2021
e2f0b18
extmod/axtls-include: Add axtls_os_port.h to customise axTLS.
dpgeorge Jul 8, 2021
d1d172f
lib/re1.5: Move re1.5 code from extmod to lib.
dpgeorge Jul 12, 2021
d1bfb27
lib/uzlib: Move uzlib code from extmod to lib.
dpgeorge Jul 12, 2021
6dd92d7
lib/crypto-algorithms: Move crypto-algorithms code from extmod to lib.
dpgeorge Jul 12, 2021
966e8bf
LICENSE: Update for move of crypto-algorithms, re1.5, uzlib to lib.
dpgeorge Jul 12, 2021
94dfaff
extmod: Update for move of crypto-algorithms, re1.5, uzlib to lib.
dpgeorge Jul 12, 2021
925878b
ports: Update for move of crypto-algorithms, uzlib to lib.
dpgeorge Jul 12, 2021
4d54671
shared: Introduce new top-level dir and move 1st party lib code there.
dpgeorge Jul 9, 2021
136369d
all: Update to point to files in new shared/ directory.
dpgeorge Jul 9, 2021
e3291e1
lib,shared: Update README's based on contents of these dirs.
dpgeorge Jul 12, 2021
831cc4a
stm32/boards/NUCLEO_F446RE: Fix I2C1 pin assignment to match datasheet.
dpgeorge Jul 13, 2021
240888a
unix/Makefile: Add back LIB_SRC_C to list of object files.
dpgeorge Jul 13, 2021
0ee256b
github/workflows: Add workflow to build and test unix dev variant.
dpgeorge Jul 13, 2021
6430cd3
unix/variants: Enable help and help("modules") on standard and dev.
dpgeorge Jul 13, 2021
22fdb21
windows/appveyor: Update to VS 2017 and use Python 3.8 for build/test.
jimmo Jul 13, 2021
b8255dd
py/vm: Simplify handling of MP_OBJ_STOP_ITERATION in yield-from opcode.
dpgeorge Jun 29, 2021
e3825e2
py/objexcept: Make mp_obj_exception_get_value support subclassed excs.
dpgeorge Jun 29, 2021
bb00125
py: Support single argument to optimised MP_OBJ_STOP_ITERATION.
dpgeorge Jun 29, 2021
38a204e
py: Introduce and use mp_raise_type_arg helper.
dpgeorge Jul 14, 2021
74085f1
py/modsys: Optimise sys.exit for code size by using exception helpers.
dpgeorge Jul 14, 2021
022b8a7
py/objexcept: Make mp_obj_new_exception_arg1 inline.
dpgeorge Jul 14, 2021
70b8e1d
py/obj: Fix formatting of comment for mp_obj_is_integer.
dpgeorge Jul 14, 2021
06277a9
mimxrt/machine_led: Use mp_raise_msg_varg helper.
dpgeorge Jul 14, 2021
98c5703
mimxrt/machine_i2c: Add hardware-based machine.I2C to machine module.
robert-hh Jun 19, 2021
eb3029c
esp32/machine_spi: Calculate actual attained baudrate.
jonathanhogg Jul 12, 2021
8be29b9
esp32/machine_hw_spi: Use a 2 item SPI queue for long transfers.
jonathanhogg Jul 16, 2021
8758504
extmod/moduselect: Conditionally compile select().
dlech Jul 6, 2021
12e3fcc
extmod/nimble: Fix leak in l2cap_send if send-while-stalled.
jimmo Jul 8, 2021
74db526
extmod/btstack/btstack.mk: Use -Wno-implicit-fallthrough, not =0.
dpgeorge Jul 17, 2021
cbc8d5b
tools/ci.sh: Build unix dev variant as part of macOS CI.
dpgeorge Jul 17, 2021
fdd5b18
docs: Replace master/slave with controller/peripheral in I2C and SPI.
david-poirier Jun 12, 2021
f365025
stm32: Replace master/slave with controller/peripheral in I2C and SPI.
david-poirier Jun 12, 2021
d3f6ce7
nrf/modules: Replace master/slave with controller/peripheral in SPI.
david-poirier Jun 12, 2021
1f9243f
esp32/machine_dac: Add MICROPY_PY_MACHINE_DAC option, enable by default.
dpgeorge Jul 18, 2021
0fc0cca
esp32/machine_i2s: Add MICROPY_PY_MACHINE_I2S option, enable by default.
dpgeorge Jul 18, 2021
59dbbe9
esp32: Fix use of mp_int_t, size_t and uintptr_t.
dpgeorge Jul 18, 2021
6823514
esp32: Add initial support for ESP32C3 SoCs.
dpgeorge Jul 18, 2021
c77225a
esp32/boards/GENERIC_C3: Add generic C3-based board.
dpgeorge Jul 18, 2021
9f71a11
tools/ci.sh: Build GENERIC_C3 board as part of esp32 CI.
dpgeorge Jul 18, 2021
8599f7a
rp2/machine_uart: Add hardware flow control support.
iabdalkader Jul 7, 2021
4f2a10b
rp2/machine_uart: Allow overriding default machine UART pins.
iabdalkader Jul 7, 2021
79da775
rp2/machine_i2c: Allow boards to configure I2C pins using new macros.
mcauser Jul 8, 2021
cc77b30
rp2/machine_spi: Allow boards to configure SPI pins using new macros.
mcauser Jul 9, 2021
d0227d5
py/emitnative: Reuse need_reg_all func in need_stack_settled.
dpgeorge Jul 17, 2021
0e3752e
py/emitnative: Ensure stack settling is safe mid-branch.
jimmo Jul 19, 2021
da74ef6
docs/rp2: Enhance quickref and change image to Pico pinout.
NitiKaur Jul 10, 2021
6a9133a
docs/rp2: Update general section to give a brief technical overview.
NitiKaur Jul 10, 2021
db6d60b
extmod/utime: Always invoke mp_hal_delay_ms when >= to 0ms.
nevercast Nov 20, 2019
a5221c4
docs/library/utime.rst: Clarify behaviour and precision of sleep ms/us.
dpgeorge Jul 21, 2021
6bc50c4
stm32/systick: Always POLL_HOOK when delaying for milliseconds.
nevercast Nov 20, 2019
2cfbe5b
esp32/modmachine: Release the GIL in machine.idle().
dpgeorge Jul 20, 2021
6214fa3
esp32/mphalport: Always yield at least once in delay_ms.
dpgeorge Jul 20, 2021
7649f5f
stm32/sdram: Make SDRAM test cache aware, and optional failure with msg.
iabdalkader Jul 9, 2021
a5ac3d5
samd: Add support for building with user C modules.
dpgeorge Jul 22, 2021
7f69246
docs/library/uasyncio.rst: Document stream readexactly() method.
dpgeorge Jul 22, 2021
0256e1a
tools/autobuild: Use separate IDF version to build newer esp32 SoCs.
dpgeorge Jul 22, 2021
2515912
tools/autobuild: Add FeatherS2 and TinyS2 to esp32 auto builds.
UnexpectedMaker Jul 16, 2021
b099db4
esp8266/Makefile: Add more libm files to build.
rcolistete Jul 24, 2020
753b08c
stm32/boards/NUCLEO_F446RE: Enable CAN bus support.
Sashkoiv Feb 19, 2020
14b853e
minimal/Makefile: Add support for building with user C modules.
dpgeorge Jul 23, 2021
4e39ff2
py/runtime: Fix bool unary op for subclasses of native types.
jimmo Feb 20, 2020
7870ec0
tools/mpremote: Add seek whence for mounted files.
maruno Jul 13, 2021
92464f1
tools/mpremote: Raise OSError on unsupported RemoteFile.seek.
maruno Jul 22, 2021
53dfb27
extmod/modbluetooth: Clamp MTU values to 32->UINT16_MAX.
jimmo Jul 21, 2021
edfb5d5
extmod/nimble: Allow modbluetooth binding to hook "sent HCI packet".
jimmo Jul 21, 2021
341158c
extmod/nimble: Add "memory stalling" mechanism for l2cap_send.
jimmo Jul 21, 2021
aecb697
stm32/boards: Add support for SparkFun STM32 MicroMod Processor board.
cdwilson Jul 11, 2021
2e62e13
rp2/machine_uart: Fix poll ioctl to also check hardware FIFO.
iabdalkader Jul 19, 2021
ee49ae8
rp2/machine_uart: Fix read when FIFO has chars but ringbuf doesn't.
robert-hh Jul 23, 2021
fef2114
stm32/uart: Fix LPUART1 baudrate set/get.
dpgeorge Jul 26, 2021
aa0cf87
stm32/uart: Support low baudrates on LPUART1.
dpgeorge Jul 26, 2021
0f0006f
stm32/boards/STM32F429DISC: Set correct UART2 pins and add UART3/6.
mako2580 Jan 4, 2021
224ac35
stm32/boards/NUCLEO_F439ZI: Add board definition for NUCLEO_F439ZI.
dpgeorge Jul 27, 2021
7a1edb9
stm32/boards/LEGO_HUB_NO6: Add board definition for LEGO_HUB_NO6.
Jul 21, 2021
60e3e51
stm32/Makefile: Update to only pull in used Bluetooth library.
Jul 23, 2021
40b8ff0
stm32/README.md: Update supported MCUs, and submodule and mboot use.
dpgeorge Jul 31, 2021
e29259d
extmod/uasyncio: In open_connection use address info in socket creation.
Jul 22, 2021
1074c78
mimxrt: Add support for Hyperflash chips.
robert-hh Jul 20, 2021
b2533fe
mimxrt/boards: Add support for the MIMXRT1050_EVKB board.
robert-hh Jul 29, 2021
4445c73
tools/autobuild: Add the MIMXRT1050_EVKB board to the daily builds.
robert-hh Jul 29, 2021
afcc77c
py/builtinimport: Fix condition for including do_execute_raw_code().
dlech Jul 30, 2021
7ae9e6e
rp2/tusb_port: Allow boards to configure USB VID and PID.
iabdalkader Jul 27, 2021
23e2e00
rp2/boards/ADAFRUIT_FEATHER_RP2040: Configure custom VID/PID.
iabdalkader Jul 30, 2021
4949708
rp2/boards/ADAFRUIT_FEATHER_RP2040: Configure I2C/SPI default pins.
mcauser Jul 23, 2021
6986a8d
rp2/boards/SPARKFUN_PROMICRO: Configure UART/I2C/SPI default pins.
mcauser Jul 23, 2021
e7a3e6e
rp2/boards/SPARKFUN_THINGPLUS: Configure I2C/SPI default pins.
mcauser Jul 23, 2021
0438481
rp2/boards: Add Adafruit ItsyBitsy RP2040.
mcauser Jul 23, 2021
02cbe01
rp2/boards: Add Adafruit QT Py RP2040.
mcauser Jul 23, 2021
95eff8d
rp2/boards: Add Pimoroni Pico LiPo 4MB.
mcauser Jul 23, 2021
042a4be
rp2/boards: Add Pimoroni Pico LiPo 16MB.
mcauser Jul 23, 2021
71722c8
rp2/boards: Add Pimoroni Tiny 2040.
mcauser Jul 23, 2021
a367529
esp32/machine_uart: Add flow kw-arg to enable hardware flow control.
willsowerbutts Feb 14, 2021
028fc81
esp32/boards: Add Silicognition wESP32 board configuration.
xorbit Jul 24, 2021
bfc8e88
esp32/mpconfigport.h: Enable reverse and inplace special methods.
jimmo Aug 4, 2021
8616129
esp8266,esp32: Include hidden networks in WLAN.scan results.
dpgeorge Aug 3, 2021
ffc854f
extmod/modujson: Add support for dump/dumps separators keyword-argument.
peterzuger Feb 3, 2021
d290f36
tests/extmod/ujson: Add tests for dump/dumps separators argument.
peterzuger May 30, 2021
78718ff
py/mkrules: Automatically build mpy-cross if it doesn't exist.
dpgeorge Aug 3, 2021
45f9a38
docs/library/machine.I2S.rst: Fix use of sd pin in examples.
dpgeorge Aug 5, 2021
96c6b8c
ports: Rename USBD_VID/PID config macros to MICROPY_HW_USB_VID/PID.
dpgeorge Aug 1, 2021
f28e8b9
stm32/usbd_desc: Rename USBD_xxx descriptor opts to MICROPY_HW_USB_xxx.
dpgeorge Aug 5, 2021
3b32b3d
stm32/usbd_cdc_interface: Rename USBD_CDC_xx opts to MICROPY_HW_USB_xx.
dpgeorge Aug 5, 2021
f834fef
stm32/powerctrl: Support changing frequency on WB MCUs.
dpgeorge Jul 22, 2021
3b594f7
nrf/boards/common.ld: Calculate unused flash region.
glennrub Dec 13, 2020
127cec8
nrf/modules/nrf: Add new nrf module with flash block device.
glennrub Jul 22, 2020
5a873e2
nrf/drivers: Add support for using flash block device with SoftDevice.
glennrub Jul 23, 2020
85cad50
nrf/mpconfigport.h: Expose nrf module when MICROPY_PY_NRF is set.
glennrub Jul 23, 2020
b40dfa9
nrf/README: Update README.md to reflect internal file systems.
glennrub Jul 23, 2020
c9b72ba
nrf/mpconfigport.h: Tune FAT FS configuration.
glennrub Jul 23, 2020
0bde907
nrf/Makefile: Add _fs_size linker script override from make.
glennrub Jul 23, 2020
7a833ed
nrf/modules/uos: Allow a board to configure MICROPY_VFS_FAT/LFS1/LFS2.
glennrub Jul 23, 2020
f99aa82
nrf/mpconfigport.h: Enable MICROPY_PY_IO_FILEIO when an FS is enabled.
glennrub Jul 23, 2020
6ff3a2a
nrf/qstrdefsport.h: Add entries for in-built FS mount points.
glennrub Jul 23, 2020
b0fd437
nrf/main: Add auto mount and auto format hook for internal flash FS.
glennrub Jul 23, 2020
4326e08
nrf/boards: Enable needed features for FAT/LFS1/LFS2.
glennrub Jul 23, 2020
990341d
nrf: Facilitate use of freeze manifest.
glennrub Dec 4, 2019
4f76f66
tools/ci.sh: Add mpy-cross build to nrf port.
glennrub Dec 9, 2020
ffc636d
nrf/boards: Set FROZEN_MANIFEST blank when SD present on nrf51 targets.
glennrub Jul 23, 2020
7b6ad0c
nrf/modules/scripts: Add file system formatting script.
glennrub Jul 23, 2020
aa857eb
nrf/Makefile: Set default manifest file for all targets.
glennrub Jul 23, 2020
23e8729
nrf/mphalport: Add dummy function for mp_hal_time_ns().
glennrub Dec 9, 2020
55d4321
nrf/boards: Enable MICROPY_VFS_LFS2 for all target boards.
glennrub Jul 23, 2020
85f0ce2
tools/codeformat.py: Include ports/nrf/modules/nrf in code formatting.
glennrub Jul 25, 2020
e5e0553
nrf/modules/uos: Add ilistdir to uos module.
dpgeorge Aug 7, 2021
77b4cfc
nrf/modules/nrf: Add function to enable/disable DCDC.
glennrub Nov 11, 2018
8645b7c
nrf: Enable source line on tracebacks.
mzdaniel Aug 8, 2021
3835f5f
esp32/makeimg.py: Get bootloader and partition offset from sdkconfig.
dpgeorge Aug 9, 2021
23531bc
rp2/CMakeLists.txt: Allow a board's cmake to set the manifest path.
iabdalkader Aug 7, 2021
a0cd18c
stm32/boards/NUCLEO_H743ZI2: Add modified version of NUCLEO_H743ZI.
bikeNomad Aug 6, 2021
42d1a16
stm32/mbedtls: Fix compile warning about uninitialized val.
bikeNomad Aug 6, 2021
333e165
docs/zephyr: Add quick reference for the Zephyr port.
Julia-Hathaway Aug 2, 2021
6ed6990
docs/library/zephyr: Add libraries specific to the Zephyr port.
Julia-Hathaway Aug 2, 2021
671f012
docs/templates: Add unix and zephyr quickref links to top-index.
dpgeorge Aug 13, 2021
2186063
docs: Rename ufoo.rst to foo.rst.
jimmo Aug 12, 2021
c737cde
docs: Replace ufoo with foo in all docs.
jimmo Aug 12, 2021
ee549d7
tools/gen-cpydiff.py: Don't rename foo to ufoo in diff output.
jimmo Aug 12, 2021
d7fbc75
docs/library/index.rst: Clarify module naming and purpose.
jimmo Aug 12, 2021
8f45f5e
nrf: Set .mpy features consistent with documentation and other ports.
mzdaniel Aug 10, 2021
e49f609
tools/autobuild: Add auto build for Silicognition wESP32.
xorbit Aug 11, 2021
90d47ee
tests/run-multitests.py: Add broadcast and wait facility.
dpgeorge Aug 12, 2021
8fcdb54
extmod/modlwip: Fix close and clean up of UDP and raw sockets.
dpgeorge Aug 12, 2021
1f48934
tools/mpremote: Fix connect-list in case VID/PID are None.
dpgeorge Aug 12, 2021
162bf3c
tools/mpremote: Add "devs" shortcut for "connect list".
dpgeorge Aug 12, 2021
692d36d
py: Implement partial PEP-498 (f-string) support.
jimmo Aug 12, 2021
5733c49
stm32,esp32,rp2: Enable MICROPY_PY_FSTRINGS by default.
jimmo Jul 16, 2020
1d9e489
extmod/modbluetooth: Add send_update arg to gatts_write.
jimmo Jul 23, 2021
c70930f
tests/multi_bluetooth/ble_subscribe.py: Add test for subscription.
jimmo Aug 13, 2021
a1dc727
mimxrt/machine_pin: Implement ioctl for Pin.
alphaFred Aug 13, 2021
5b65566
esp32/machine_hw_spi: Release GIL during transfers.
jonathanhogg Aug 15, 2021
e25c5cb
esp32/machine_pin: Make check for non-output pins respect chip variant.
dpgeorge Aug 16, 2021
0c2cadf
unix/Makefile: Disable error compression on arm-linux-gnueabi-gcc.
jimmo Aug 16, 2021
91a99fc
tests/extmod/vfs_fat_finaliser.py: Ensure alloc at never-used GC blocks.
jimmo Aug 16, 2021
af16225
docs/library/builtins.rst: Add module title.
jimmo Aug 16, 2021
44818d1
docs/library/network.rst: Simplify socket import.
jimmo Aug 16, 2021
5555f14
py/lexer: Clear fstring_args vstr on lexer free.
jimmo Aug 18, 2021
226c034
tools/mpremote: Remove support for pyb.USB_VCP in/out specialisation.
dpgeorge Aug 17, 2021
870000f
extmod: Add machine.bitstream.
jimmo Aug 9, 2021
e64cda5
stm32: Add implementation of machine.bitstream.
jimmo Aug 9, 2021
71f4faa
esp32: Replace esp.neopixel with machine.bitstream.
jimmo Aug 11, 2021
39e9c07
esp8266: Replace esp.neopixel with machine.bitstream.
jimmo Aug 11, 2021
62fd450
drivers/neopixel: Add common machine.bitstream-based neopixel module.
jimmo Aug 11, 2021
53145c4
docs: Add docs for machine.bitstream and neopixel module.
jimmo Aug 11, 2021
85adc25
py/mkrules.mk: Do submodule sync in "make submodules".
jimmo Aug 17, 2021
b352db7
rp2/Makefile: Add "submodules" target, to match other ports.
jimmo Aug 17, 2021
0886bf4
stm32/Makefile: Allow GIT_SUBMODULES and LIBS to be extended.
Aug 17, 2021
ed42002
tools/autobuild: Don't use "-B" for make, it's already a fresh build.
dpgeorge Aug 19, 2021
61d5a8b
stm32/stm32_it: Support TIM17 IRQs on WB MCUs.
dpgeorge Aug 20, 2021
b51e7e9
stm32: Disable computed goto on constrained boards.
jimmo Aug 19, 2021
996f703
esp32,esp8266: Remove dead code for end_ticks in machine_bitstream.
jimmo Aug 20, 2021
2296df0
extmod/modframebuf: Enable blit between different formats via a palette.
peterhinch Aug 18, 2021
2a290bb
tools/pyboard.py: Move --no-exclusive/--soft-reset out of mutex group.
jimmo Aug 25, 2021
be43164
tools/pyboard.py: Make --no-follow use same variable as --follow.
jimmo Aug 25, 2021
064a145
tools/pyboard.py: Add --exclusive to match --no-exclusive.
jimmo Aug 25, 2021
145fede
tools/pyboard.py: Make --no-soft-reset consistent with other args.
jimmo Aug 25, 2021
8c4ba57
tests/basics: Split f-string debug printing to separate file with .exp.
dpgeorge Aug 26, 2021
c82244a
rp2/rp2_flash: Disable IRQs while calling flash_erase/program.
iabdalkader Aug 19, 2021
79baef8
rp2/CMakeLists.txt: Add option to enable double tap reset to bootrom.
iabdalkader Aug 20, 2021
a3ce8f0
rp2/mpconfigport.h: Allow boards to add root pointers.
iabdalkader Aug 21, 2021
d63b287
drivers/neopixel: Optimize fill() for speed.
jimmo Aug 20, 2021
e9a2679
drivers/neopixel: Reduce code size of driver.
jimmo Aug 20, 2021
577a3c4
docs/library: Fix usage of :term: for frozen module reference.
fepegar Aug 22, 2021
4954290
docs/esp8266: Use monospace for software tools.
fepegar Aug 22, 2021
3720a57
docs/reference: Mention that slicing a memoryview causes allocation.
peterhinch Aug 27, 2021
a66bd7a
esp32/boards: Add GENERIC_C3_USB board with USB serial/JTAG support.
xorbit Aug 26, 2021
6936f41
stm32/storage: Make extended-block-device more configurable.
dpgeorge Aug 26, 2021
e3eed26
stm32/boards/LEGO_HUB_NO6: Change SPI flash storage to use hardware SPI.
dpgeorge Aug 26, 2021
bac791c
stm32/boards/LEGO_HUB_NO6: Skip first 1MiB of SPI flash for storage.
dpgeorge Aug 26, 2021
6f19b9c
stm32/boards/LEGO_HUB_NO6: Add make commands to backup/restore firmware.
dpgeorge Aug 26, 2021
52a78e6
drivers/cyw43: Fix cyw43_deinit so it can be called many times in a row.
dpgeorge Aug 27, 2021
30691ed
drivers/cyw43: Make wifi join fail if interface is not active.
dpgeorge Aug 27, 2021
8637178
tools/uncrustify: Force 1 newline at end of file.
dlech Aug 28, 2021
35ead0f
javascript/Makefile: Change variable to EXPORTED_RUNTIME_METHODS.
dpgeorge Aug 31, 2021
08ff71d
tests/pybnative: Make while.py test run on boards without pyb.delay.
dpgeorge Aug 31, 2021
89145c6
tools/mpremote: Bump version to 0.0.6.
dpgeorge Aug 31, 2021
25f30eb
stm32/boards/LEGO_HUB_NO6: Add comment re constraints on SPI flash cfg.
dpgeorge Sep 1, 2021
7c54b64
all: Bump version to 1.17.
dpgeorge Sep 1, 2021
8d8f83b
Merge tag 'v1.17' into merge-1.17
jepler Oct 14, 2021
7ea1919
fix name of windows mpy-cross executable
jepler Oct 15, 2021
53c5bde
core: Enable new performance optimizations
jepler Oct 15, 2021
132107c
makeversionhdr: Pick out a circuitpython-style tag
jepler Oct 15, 2021
4e7c1a4
Rename make_new's parameter to `all_args`
jepler Oct 15, 2021
414c2f9
Always use python3
jepler Oct 15, 2021
3b8af4c
fix an errant 'all_args'
jepler Oct 16, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ jobs:
run: |
git describe --dirty --tags
echo >>$GITHUB_ENV CP_VERSION=$(git describe --dirty --tags)
- name: Set up Python 3.8
uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Install dependencies
run: |
brew install gettext
Expand Down
6 changes: 1 addition & 5 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,13 @@

[submodule "lib/axtls"]
path = lib/axtls
url = https://github.com/pfalcon/axtls
branch = micropython
url = https://github.com/micropython/axtls.git
[submodule "lib/libffi"]
path = lib/libffi
url = https://github.com/atgreen/libffi
[submodule "lib/berkeley-db-1.xx"]
path = lib/berkeley-db-1.xx
url = https://github.com/pfalcon/berkeley-db-1.xx
[submodule "lib/uzlib"]
path = lib/uzlib
url = https://github.com/pfalcon/uzlib
[submodule "tools/uf2"]
path = tools/uf2
url = https://github.com/Microsoft/uf2.git
Expand Down
64 changes: 64 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,67 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

--------------------------------------------------------------------------------

Unless specified otherwise (see below), the above license and copyright applies
to all files in this repository.

Individual files may include additional copyright holders.

The various ports of MicroPython may include third-party software that is
licensed under different terms. These licenses are summarised in the tree
below, please refer to these files and directories for further license and
copyright information. Note that (L)GPL-licensed code listed below is only
used during the build process and is not part of the compiled source code.

/ (MIT)
/drivers
/cc3000 (BSD-3-clause)
/cc3100 (BSD-3-clause)
/wiznet5k (BSD-3-clause)
/lib
/asf4 (Apache-2.0)
/axtls (BSD-3-clause)
/config
/scripts
/config (GPL-2.0-or-later)
/Rules.mak (GPL-2.0)
/berkeley-db-1xx (BSD-4-clause)
/btstack (See btstack/LICENSE)
/cmsis (BSD-3-clause)
/crypto-algorithms (NONE)
/libhydrogen (ISC)
/littlefs (BSD-3-clause)
/lwip (BSD-3-clause)
/mynewt-nimble (Apache-2.0)
/nrfx (BSD-3-clause)
/nxp_driver (BSD-3-Clause)
/oofatfs (BSD-1-clause)
/pico-sdk (BSD-3-clause)
/re15 (BSD-3-clause)
/stm32lib (BSD-3-clause)
/tinytest (BSD-3-clause)
/tinyusb (MIT)
/uzlib (Zlib)
/logo (uses OFL-1.1)
/ports
/cc3200
/hal (BSD-3-clause)
/simplelink (BSD-3-clause)
/FreeRTOS (GPL-2.0 with FreeRTOS exception)
/stm32
/usbd*.c (MCD-ST Liberty SW License Agreement V2)
/stm32_it.* (MIT + BSD-3-clause)
/system_stm32*.c (MIT + BSD-3-clause)
/boards
/startup_stm32*.s (BSD-3-clause)
/*/stm32*.h (BSD-3-clause)
/usbdev (MCD-ST Liberty SW License Agreement V2)
/usbhost (MCD-ST Liberty SW License Agreement V2)
/teensy
/core (PJRC.COM)
/zephyr
/src (Apache-2.0)
/tools
/dfu.py (LGPL-3.0-only)
1 change: 1 addition & 0 deletions conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ def autoapi_prepare_jinja_env(jinja_env):
"ports/stm/ref",
"ports/unix",
"py",
"shared/*",
"shared-bindings/util.*",
"shared-module",
"supervisor",
Expand Down
2 changes: 1 addition & 1 deletion devices/ble_hci/common-hal/_bleio/CharacteristicBuffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
#include <string.h>
#include <stdio.h>

#include "lib/utils/interrupt_char.h"
#include "shared/runtime/interrupt_char.h"
#include "py/runtime.h"
#include "py/stream.h"

Expand Down
2 changes: 1 addition & 1 deletion devices/ble_hci/common-hal/_bleio/Connection.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
#include <string.h>
#include <stdio.h>

#include "lib/utils/interrupt_char.h"
#include "shared/runtime/interrupt_char.h"
#include "py/gc.h"
#include "py/objlist.h"
#include "py/objstr.h"
Expand Down
2 changes: 1 addition & 1 deletion devices/ble_hci/common-hal/_bleio/PacketBuffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
#include <string.h>
#include <stdio.h>

#include "lib/utils/interrupt_char.h"
#include "shared/runtime/interrupt_char.h"
#include "py/runtime.h"
#include "py/stream.h"

Expand Down
8 changes: 8 additions & 0 deletions docs/library/uasyncio.rst → docs/library/asyncio.rst
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,14 @@ TCP stream connections

This is a coroutine, and a MicroPython extension.

.. method:: Stream.readexactly(n)

Read exactly *n* bytes and return them as a bytes object.

Raises an ``EOFError`` exception if the stream ends before reading *n* bytes.

This is a coroutine.

.. method:: Stream.readline()

Read a line and return it.
Expand Down
2 changes: 1 addition & 1 deletion docs/library/btree.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ Example::

# First, we need to open a stream which holds a database
# This is usually a file, but can be in-memory database
# using uio.BytesIO, a raw flash partition, etc.
# using io.BytesIO, a raw flash partition, etc.
# Oftentimes, you want to create a database file if it doesn't
# exist and open if it exists. Idiom below takes care of this.
# DO NOT open database with "a+b" access mode.
Expand Down
4 changes: 2 additions & 2 deletions docs/library/builtins.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Builtin functions and exceptions
================================
:mod:`builtins` -- builtin functions and exceptions
===================================================

All builtin functions and exceptions are described here. They are also
available via ``builtins`` module.
Expand Down
2 changes: 0 additions & 2 deletions docs/library/uctypes.rst → docs/library/ctypes.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
:mod:`uctypes` -- access binary data in a structured way
========================================================

.. include:: ../templates/unsupported_in_circuitpython.inc

.. module:: uctypes
:synopsis: access binary data in a structured way

Expand Down
15 changes: 11 additions & 4 deletions docs/library/framebuf.rst
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,23 @@ Other methods
Shift the contents of the FrameBuffer by the given vector. This may
leave a footprint of the previous colors in the FrameBuffer.

.. method:: FrameBuffer.blit(fbuf, x, y[, key])
.. method:: FrameBuffer.blit(fbuf, x, y, key=-1, palette=None)

Draw another FrameBuffer on top of the current one at the given coordinates.
If *key* is specified then it should be a color integer and the
corresponding color will be considered transparent: all pixels with that
color value will not be drawn.

This method works between FrameBuffer instances utilising different formats,
but the resulting colors may be unexpected due to the mismatch in color
formats.
The *palette* argument enables blitting between FrameBuffers with differing
formats. Typical usage is to render a monochrome or grayscale glyph/icon to
a color display. The *palette* is a FrameBuffer instance whose format is
that of the current FrameBuffer. The *palette* height is one pixel and its
pixel width is the number of colors in the source FrameBuffer. The *palette*
for an N-bit source needs 2**N pixels; the *palette* for a monochrome source
would have 2 pixels representing background and foreground colors. The
application assigns a color to each pixel in the *palette*. The color of the
current pixel will be that of that *palette* pixel whose x position is the
color of the corresponding source pixel.

Constants
---------
Expand Down
6 changes: 3 additions & 3 deletions docs/library/uheapq.rst → docs/library/heapq.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
:mod:`uheapq` -- heap queue algorithm
=====================================
:mod:`heapq` -- heap queue algorithm
====================================

.. include:: ../templates/unsupported_in_circuitpython.inc

.. module:: uheapq
.. module:: heapq
:synopsis: heap queue algorithm

|see_cpython_module| :mod:`cpython:heapq`.
Expand Down
15 changes: 7 additions & 8 deletions docs/library/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,14 @@ These libraries are not enabled on CircuitPython builds with
limited flash memory, usually on non-Express builds:
``binascii``, ``errno``, ``json``, ``re``.

These libraries are not currently enabled in any CircuitPython build, but may be in the future,
with the ``u`` prefix dropped:
``uctypes``, ``uhashlib``, ``uzlib``.
These libraries are not currently enabled in any CircuitPython build, but may be in the future:
``ctypes``, ``hashlib``, ``zlib``.

.. toctree::
:maxdepth: 1

builtins.rst
uheapq.rst
heapq.rst
array.rst
binascii.rst
collections.rst
Expand All @@ -37,10 +36,10 @@ with the ``u`` prefix dropped:
json.rst
re.rst
sys.rst
uasyncio.rst
uctypes.rst
uselect.rst
uzlib.rst
asyncio.rst
ctypes.rst
select.rst
zlib.rst

Omitted functions in the ``string`` library
-------------------------------------------
Expand Down
18 changes: 9 additions & 9 deletions docs/library/uselect.rst → docs/library/select.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
:mod:`uselect` -- wait for events on a set of streams
========================================================================
:mod:`select` -- wait for events on a set of streams
====================================================

.. include:: ../templates/unsupported_in_circuitpython.inc

.. module:: uselect
.. module:: select
:synopsis: wait for events on a set of streams

|see_cpython_module| :mod:`cpython:select`.
Expand Down Expand Up @@ -37,15 +37,15 @@ Methods

Register ``stream`` *obj* for polling. *eventmask* is logical OR of:

* ``uselect.POLLIN`` - data available for reading
* ``uselect.POLLOUT`` - more data can be written
* ``select.POLLIN`` - data available for reading
* ``select.POLLOUT`` - more data can be written

Note that flags like ``uselect.POLLHUP`` and ``uselect.POLLERR`` are
Note that flags like ``select.POLLHUP`` and ``select.POLLERR`` are
*not* valid as input eventmask (these are unsolicited events which
will be returned from `poll()` regardless of whether they are asked
for). This semantics is per POSIX.

*eventmask* defaults to ``uselect.POLLIN | uselect.POLLOUT``.
*eventmask* defaults to ``select.POLLIN | select.POLLOUT``.

It is OK to call this function multiple times for the same *obj*.
Successive calls will update *obj*'s eventmask to the value of
Expand All @@ -69,8 +69,8 @@ Methods
Returns list of (``obj``, ``event``, ...) tuples. There may be other elements in
tuple, depending on a platform and version, so don't assume that its size is 2.
The ``event`` element specifies which events happened with a stream and
is a combination of ``uselect.POLL*`` constants described above. Note that
flags ``uselect.POLLHUP`` and ``uselect.POLLERR`` can be returned at any time
is a combination of ``select.POLL*`` constants described above. Note that
flags ``select.POLLHUP`` and ``select.POLLERR`` can be returned at any time
(even if were not asked for), and must be acted on accordingly (the
corresponding stream unregistered from poll and likely closed), because
otherwise all further invocations of `poll()` may return immediately with
Expand Down
6 changes: 3 additions & 3 deletions docs/library/uzlib.rst → docs/library/zlib.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
:mod:`uzlib` -- zlib decompression
==================================
:mod:`zlib` -- zlib decompression
=================================

.. include:: ../templates/unsupported_in_circuitpython.inc

.. module:: uzlib
.. module:: zlib
:synopsis: zlib decompression

|see_cpython_module| :mod:`cpython:zlib`.
Expand Down
4 changes: 2 additions & 2 deletions examples/natmod/btree/btree_c.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ void *memmove(void *dest, const void *src, size_t n) {
}

void *malloc(size_t n) {
void *ptr = m_malloc(n, false);
void *ptr = m_malloc(n);
return ptr;
}
void *realloc(void *ptr, size_t n) {
mp_printf(&mp_plat_print, "UNDEF %d\n", __LINE__);
return NULL;
}
void *calloc(size_t n, size_t m) {
void *ptr = m_malloc(n * m, false);
void *ptr = m_malloc(n * m);
// memory already cleared by conservative GC
return ptr;
}
Expand Down
2 changes: 1 addition & 1 deletion examples/natmod/features2/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(add_d_obj, add_d);
// to use but has access to the globals dict of the module via self->globals.
STATIC mp_obj_t productf(mp_obj_fun_bc_t *self, size_t n_args, size_t n_kw, mp_obj_t *args) {
// Check number of arguments is valid
mp_arg_check_num_mp(n_args, n_kw, 1, 1, false);
mp_arg_check_num(n_args, n_kw, 1, 1, false);

// Extract buffer pointer and verify typecode
mp_buffer_info_t bufinfo;
Expand Down
5 changes: 4 additions & 1 deletion examples/usercmodule/cexample/examplemodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,7 @@ const mp_obj_module_t example_user_cmodule = {
};

// Register the module to make it available in Python.
MP_REGISTER_MODULE(MP_QSTR_cexample, example_user_cmodule, MODULE_CEXAMPLE_ENABLED);
// Note: the "1" in the third argument means this module is always enabled.
// This "1" can be optionally replaced with a macro like MODULE_CEXAMPLE_ENABLED
// which can then be used to conditionally enable this module.
MP_REGISTER_MODULE(MP_QSTR_cexample, example_user_cmodule, 1);
15 changes: 15 additions & 0 deletions examples/usercmodule/cexample/micropython.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Create an INTERFACE library for our C module.
add_library(usermod_cexample INTERFACE)

# Add our source files to the lib
target_sources(usermod_cexample INTERFACE
${CMAKE_CURRENT_LIST_DIR}/examplemodule.c
)

# Add the current directory as an include directory.
target_include_directories(usermod_cexample INTERFACE
${CMAKE_CURRENT_LIST_DIR}
)

# Link our INTERFACE library to the usermod target.
target_link_libraries(usermod INTERFACE usermod_cexample)
5 changes: 4 additions & 1 deletion examples/usercmodule/cppexample/examplemodule.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,7 @@ const mp_obj_module_t cppexample_user_cmodule = {
};

// Register the module to make it available in Python.
MP_REGISTER_MODULE(MP_QSTR_cppexample, cppexample_user_cmodule, MODULE_CPPEXAMPLE_ENABLED);
// Note: the "1" in the third argument means this module is always enabled.
// This "1" can be optionally replaced with a macro like MODULE_CPPEXAMPLE_ENABLED
// which can then be used to conditionally enable this module.
MP_REGISTER_MODULE(MP_QSTR_cppexample, cppexample_user_cmodule, 1);
16 changes: 16 additions & 0 deletions examples/usercmodule/cppexample/micropython.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Create an INTERFACE library for our CPP module.
add_library(usermod_cppexample INTERFACE)

# Add our source files to the library.
target_sources(usermod_cppexample INTERFACE
${CMAKE_CURRENT_LIST_DIR}/example.cpp
${CMAKE_CURRENT_LIST_DIR}/examplemodule.c
)

# Add the current directory as an include directory.
target_include_directories(usermod_cppexample INTERFACE
${CMAKE_CURRENT_LIST_DIR}
)

# Link our INTERFACE library to the usermod target.
target_link_libraries(usermod INTERFACE usermod_cppexample)
10 changes: 10 additions & 0 deletions examples/usercmodule/micropython.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# This top-level micropython.cmake is responsible for listing
# the individual modules we want to include.
# Paths are absolute, and ${CMAKE_CURRENT_LIST_DIR} can be
# used to prefix subdirectories.

# Add the C example.
include(${CMAKE_CURRENT_LIST_DIR}/cexample/micropython.cmake)

# Add the CPP example.
include(${CMAKE_CURRENT_LIST_DIR}/cppexample/micropython.cmake)
Loading