aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-10-01py/bc: Change mp_code_state_t.exc_sp to exc_sp_idx.Damien George
Change from a pointer to an index, to make space in mp_code_state_t.
2019-10-01py/bc: Remove comments referring to obsolete currently_in_except_block.Damien George
It was made obsolete in 6f9e3ff719917616f163d3d671d6abe9472ba6ff
2019-10-01stm32/boards/PYBD: Enable BLE for Pyboard D.Jim Mussared
2019-10-01stm32/mpconfigport.h: Add modbluetooth module to stm32.Jim Mussared
2019-10-01extmod/modbluetooth: Allow MP_BLUETOOTH_MAX_ATTR_SIZE in board config.Andrew Leech
2019-10-01extmod/modbluetooth_nimble: Use random addr if public isn't available.Andrew Leech
2019-10-01extmod/modbluetooth_nimble: Implement modbluetooth API with Nimble.Jim Mussared
2019-10-01extmod/modbluetooth: Add low-level Python BLE API.Jim Mussared
2019-10-01unix/coverage: Add coverage tests for ringbuf.Jim Mussared
2019-10-01py/ringbuf: Add helpers for put16/get16.Jim Mussared
2019-10-01stm32: Provide port-specific implementation for Nimble on STM32.Jim Mussared
2019-10-01extmod/nimble: Add nimble bindings.Damien George
2019-10-01lib/mynewt-nimble: Add Apache mynewt nimble as a submodule.Damien George
Tag nimble_1_1_0_tag.
2019-10-01drivers/cyw43: Add low-level CYW43xx Bluetooth HCI UART driver.Damien George
2019-09-27stm32/uart: Add RTS/CTS pin configuration support to UART4.Andrew Leech
2019-09-26stm32/powerctrlboot: Add support for HSI at 8MHz on F0 MCUs.Chris Mason
For use with F0 MCUs that don't have HSI48. Select the clock source explicitly in mpconfigboard.h. On the NUCLEO_F091RC board use HSE bypass when HSE is chosen because the NUCLEO clock source is STLINK not a crystal.
2019-09-26stm32/powerctrlboot: Fix clock and PLL selection for HSI48 on F0 MCUs.Chris Mason
Before this patch the UART baudrate on F0 MCUs was wrong because the stm32lib SystemCoreClockUpdate sets SystemCoreClock to 8MHz instead of 48MHz if HSI48 is routed directly to SYSCLK. The workaround is to use HSI48 -> PREDIV (/2) -> PLL (*2) -> SYSCLK. Fixes issue #5049.
2019-09-26stm32: Support disabling the compiler.Damien George
Disable via "#define MICROPY_ENABLE_COMPILER (0)" in the board's mpconfigboard.h file.
2019-09-26tests/micropython: Add test for native generators.Damien George
2019-09-26travis: Build more stm32 boards to cover all supported MCUs.Damien George
2019-09-26minimal/frozentest: Recompile now that mpy version has changed.Damien George
2019-09-26py/persistentcode: Bump .mpy version to 5.Damien George
The bytecode opcodes have changed (there are more, and they have been reordered).
2019-09-26py/nativeglue: Make mp_fun_table fixed size regardless of config.Damien George
So that mpy files with native code will always work correctly, and raise an exception if a feature is used that is not supported by the runtime.
2019-09-26py: Rename MP_QSTR_NULL to MP_QSTRnull to avoid intern collisions.Josh Lloyd
Fixes #5140.
2019-09-26mpy-cross: Set number of registers in nlr_buf_t based on native arch.Damien George
Fixes #5059. Done in collaboration with Jim Mussared.
2019-09-26py/emitnative: Factor sizeof/offsetof calculations to macros.Damien George
2019-09-26py/nlr.h: Factor out constants to specific macros.Damien George
2019-09-26py: Split RAISE_VARARGS opcode into 3 separate ones.Damien George
From the beginning of this project the RAISE_VARARGS opcode was named and implemented following CPython, where it has an argument (to the opcode) counting how many args the raise takes: raise # 0 args (re-raise previous exception) raise exc # 1 arg raise exc from exc2 # 2 args (chained raise) In the bytecode this operation therefore takes 2 bytes, one for RAISE_VARARGS and one for the number of args. This patch splits this opcode into 3, where each is now a single byte. This reduces bytecode size by 1 byte for each use of raise. Every byte counts! It also has the benefit of reducing code size (on all ports except nanbox).
2019-09-26py: Introduce and use constants for multi-opcode sizes.Damien George
2019-09-26py/bc: Replace big opcode format table with simple macro.Damien George
2019-09-26tests: Update tests for changes to opcode ordering.Damien George
2019-09-26py/bc0: Order opcodes into groups based on their size and format.Damien George
2019-09-26tests/basics: Add test for matmul operator.Damien George
This is a Python 3.5 feature so the .exp file is needed.
2019-09-26py: Add support for matmul operator @ as per PEP 465.Damien George
To make progress towards MicroPython supporting Python 3.5, adding the matmul operator is important because it's a really "low level" part of the language, being a new token and modifications to the grammar. It doesn't make sense to make it configurable because 1) it would make the grammar and lexer complicated/messy; 2) no other operators are configurable; 3) it's not a feature that can be "dynamically plugged in" via an import. And matmul can be useful as a general purpose user-defined operator, it doesn't have to be just for numpy use. Based on work done by Jim Mussared.
2019-09-26py/compile: Use calculation instead of switch to convert token to op.Damien George
2019-09-26py/parse: Use calculation instead of table to convert token to operator.Damien George
2019-09-26py/lexer: Reorder operator tokens to match corresponding binary ops.Damien George
2019-09-26docs/library/pyb.USB_VCP.rst: Add info about id and flow params.Damien George
2019-09-26stm32/usbd_cdc_interface: Add CTS flow control option for USB VCP.Andrew Leech
Enabled by default, but disabled when REPL is connected to the VCP (this is the existing behaviour). Can be configured at run-time with, eg: pyb.USB_VCP().init(flow=pyb.USB_VCP.RTS | pyb.USB_VCP.CTS)
2019-09-23stm32/can: Guard header file by MICROPY_HW_ENABLE_CAN.Damien George
Because not all MCU series have a CAN peripheral.
2019-09-23stm32: Use mp_printf with MICROPY_ERROR_PRINTER for uncaught exceptions.Damien George
2019-09-23stm32/boards/NUCLEO_H743ZI: Enable FDCAN on this board.iabdalkader
2019-09-23stm32: Add support for FDCAN peripheral, exposed as pyb.CAN.iabdalkader
The new fdcan.c file provides the low-level C interface to the FDCAN peripheral, and pyb_can.c is updated to support both traditional CAN and FDCAN, depending on the MCU being compiled for.
2019-09-23stm32/can: Factor CAN driver into low-level and Python bindings.Damien George
can.c now contains the low-level C interface to the CAN peripheral, and pyb_can.c the Python-level class/methods/constants.
2019-09-23extmod/vfs_posix: Include stdio.h for declaration of function 'rename'.Bob Fanger
2019-09-23stm32/machine_i2c: Add ability to specify I2C(4) by name.Chris Liechti
2019-09-20esp32/Makefile: Fix printing of supported git hash.Jim Mussared
2019-09-18mpy-cross,windows: Add msvc build of mpy-cross.stijn
Add the project file to the mpy-cross directory, which is also where the executable ends up, and change the Appveyor settings to build mpy-cross with both msvc and mingw-w64 and verify this all works by running tests with --via-mpy.
2019-09-18mpy-cross: Make mpconfigport.h compatible with msvc compiler.stijn
Add a copy of the required options from windows/mpconfigport.h.
2019-09-18windows: Default to binary mode for files.stijn
If this is not set it might default to calls to open() to use text mode which is usually not wanted, and even wrong and leading to incorrect results when loading binary .mpy files. This also means that text files written and read will not have line-ending translation from \n to \r\n and vice-versa anymore. This shouldn't be much of a problem though since most tools dealing with text files adapt automatically to any of the 2 formats.