aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-17nrf/bluetooth: Use MP_ERROR_TEXT for all error messages.Glenn Ruben Bakke
This follows up on commit def76fe4d9bbc2c342594dc05861b24d7165d274. Fixes issue #6152.
2020-06-17stm32/rfcore: Leave txpower level as default when initialising rfcore.Damien George
And provide a convenient API function to change it (currently unused). Fixes issue #5985. Signed-off-by: Damien George <damien@micropython.org>
2020-06-17stm32/usb: Add support for 2xVCP on L0, L432 and WB MCUs.Damien George
There are a maximum of 8 USB endpoints and each has 2 buffer slots (in/out). This commit add support for up to 8 endpoints and adds FIFO configuration for USB profiles with 2xVCP on MCUs that have device-only USB peripherals. Tested on NUCLEO_WB55 in 2xVCP, 2xVCP+MSC and 2xVCP+MSC+HID mode. Signed-off-by: Damien George <damien@micropython.org>
2020-06-17stm32/factoryreset: Provide empty create-FS function when FAT disabled.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-06-17esp32/esp32_rmt: Extend RMT to support carrier feature.Jon Rob
The ESP32 RMT peripheral has hardware support for a carrier frequency, and this commit exposes it to Python with the keyword arguments carrier_freq and carrier_duty_percent in the constructor. Example usage: r = esp32.RMT(0, pin=Pin(2), clock_div=80, carrier_freq=38000, carrier_duty_percent=50)
2020-06-16tests/basics: Add tests for variable annotations.Damien George
2020-06-16py/compile: Implement PEP 526, syntax for variable annotations.Damien George
This addition to the grammar was introduced in Python 3.6. It allows annotating the type of a varilable, like: x: int = 123 s: str The implementation in this commit is quite simple and just ignores the annotation (the int and str bits above). The reason to implement this is to allow Python 3.6+ code that uses this feature to compile under MicroPython without change, and for users to use type checkers. In the future viper could use this syntax as a way to give types to variables, which is currently done in a bit of an ad-hoc way, eg x = int(123). And this syntax could potentially be used in the inline assembler to define labels in an way that's easier to read.
2020-06-16py/grammar.h: Consolidate duplicate sub-rules for :test and =test.Damien George
2020-06-16tests/cpydiff: Add CPy diff test for assignment expression behaviour.Damien George
2020-06-16tests/basics: Add tests for assignment operator :=.Damien George
2020-06-16ports: Disable MICROPY_PY_ASSIGN_EXPR in bare-arm and minimal ports.Damien George
To keep these ports as minimal as possible.
2020-06-16py/compile: Implement PEP 572, assignment expressions with := operator.Damien George
The syntax matches CPython and the semantics are equivalent except that, unlike CPython, MicroPython allows using := to assign to comprehension iteration variables, because disallowing this would take a lot of code to check for it. The new compile-time option MICROPY_PY_ASSIGN_EXPR selects this feature and is enabled by default, following MICROPY_PY_ASYNC_AWAIT.
2020-06-16py/compile: Convert scope test to SCOPE_IS_COMP_LIKE macro.Damien George
This macro can be used elsewhere.
2020-06-14tools/uncrustify: Update config for v0.71.0.David Lechner
This is the result of running... uncrustify -c tools/uncrustify.cfg --update-config-with-doc -o tools/uncrustify.cfg ...with some manual fixups to correct places where it changed things it should not have. Essentially it just adds new config parameters introduced in v0.71.0 with their default values. Signed-off-by: David Lechner <david@pybricks.com>
2020-06-14tools/codeformat.py: Remove sizeof fixup.David Lechner
Formatting for `* sizeof` was fixed in uncrustify v0.71, so we no longer need the fixups for it. Also, there was one file where the updated uncrustify caught a problem that the regex didn't pick up, which is updated in this commit. Signed-off-by: David Lechner <david@pybricks.com>
2020-06-14tools/uncrustify.cfg: Remove deprecated sp_word_brace option.David Lechner
This option was removed in uncrustify v0.71. Signed-off-by: David Lechner <david@pybricks.com>
2020-06-12top: Update contribution and commit guide to include optional sign-off.Damien George
MicroPython already requires contributors to implicitly sign-off on a set of points, which are listed in CODECONVENTIONS.md. This commit adjusts this wording to allow explicit sign-off using the git "Signed-off-by:" feature. There is no reference made to https://developercertificate.org/ because the project already has its own version of this. Signed-off-by: Damien George <damien@micropython.org>
2020-06-12stm32/boards/STM32F769DISC: Use macro instead of const for flash size.Damien George
So that the flash size can be changed in just one place. Also remove the duplicate cache entry.
2020-06-12zephyr: Use cmake find_package to locate zephyr.Maureen Helm
Updates the zephyr port to use the ZEPHYR_BASE environment variable only to locate the zephyr cmake package, allowing cmake to cache the variable.
2020-06-12zephyr: Increase minimum required cmake version to 3.13.1.Maureen Helm
The minimum required cmake version has been 3.13.1 since zephyr 1.14.0.
2020-06-12zephyr: Convert DT_FLASH_AREA usages to new dts macros.Maureen Helm
Converts DT_FLASH_AREA usages in the zephyr port to new device tree macros introduced in zephyr 2.3. Tested with littlefs on the reel_board.
2020-06-12zephyr: Update to new zephyr timeout API.Maureen Helm
Updates the zephyr port to use the new timeout api introduced in zephyr 2.3.
2020-06-12zephyr: Update for refactored zephyr device structures.Maureen Helm
Updates the zephyr port to use refactored device structures introduced in zephyr 2.3.
2020-06-12zephyr: Fix floating point configuration.Maureen Helm
Zephyr renamed CONFIG_FLOAT to CONFIG_FPU to better reflect its semantics of enabling the hardware floating point unit (FPU) rather than enabling toolchain-level floating point support (i.e., software floating point for FPU-less socs).
2020-06-12zephyr: Fix and rename stacks_analyze function in zephyr module.Maureen Helm
Zephyr deprecated and then removed its stack_analyze function because it was unsafe. Use the new zephyr thread analyzer instead and rename the MicroPython function to zephyr.thread_analyze() to be more consistent with the implementation. Tested on mimxrt1050_evk. The output now looks like this: >>> zephyr.thread_analyze() Thread analyze: 80004ff4 : unused 400 usage 112 / 512 (21 %) rx_workq : unused 1320 usage 180 / 1500 (12 %) tx_workq : unused 992 usage 208 / 1200 (17 %) net_mgmt : unused 656 usage 112 / 768 (14 %) sysworkq : unused 564 usage 460 / 1024 (44 %) idle : unused 256 usage 64 / 320 (20 %) main : unused 2952 usage 1784 / 4736 (37 %)
2020-06-10mimxrt/boards: Set __heap_size__ to 0 in MIMXRT1011.ld.Albort Xue
Do not use the traditional C heap in order to save memory, because the traditional C heap is unused in MicroPython.
2020-06-10docs/esp8266: Add quickref documentation for UART on esp8266.Nick Crabtree
This patch adds quickref documentation for the change in commit afd0701bf7a9dcb50c5ab46b0ae88b303fec6ed3. This commit added the ability to disable the REPL and hence use UART0 for serial communication on the esp8266, but was not previously documented anywhere. The text is largely taken from the commit message, with generic information on using the UART duplicated from the Wipy quickref document.
2020-06-10tests/run-multitests.py: Allow passing unique env vars to each instance.Jim Mussared
For example, to run the BLE multitests entirely with the unix port: env MICROPY_MICROPYTHON=../ports/unix/micropython-dev ./run-multitests.py \ -i micropython,MICROPYBTUSB=01 \ -i micropython,MICROPYBTUSB=02:02 \ multi_bluetooth/ble_*.py
2020-06-10unix/btstack_usb: Allow choosing adaptor via environment variable.Jim Mussared
This allows running (for example): env MICROPYBTUSB=2-2 ./micropython-dev ../../examples/bluetooth/ble_temperature_central.py
2020-06-10examples/bluetooth: Fix event code in ble_temperature_central.py.Jim Mussared
2020-06-10extmod/modbluetooth: Register default GATT service and fix esp32 init.jp-96
This is for the NimBLE bindings, to make sure the default GATT service appears and that the esp32 initialises NimBLE correctly (it now matches stm32).
2020-06-10extmod/uasyncio: Add asyncio.wait_for_ms function.Damien George
Fixes issue #6107.
2020-06-10py/obj.h: Clarify comments about mp_map_t is_fixed and is_ordered.Damien George
Long ago, prior to 0ef01d0a75b8b2f48a72f0041e048a390b9e75b6, fixed and ordered maps were the same setting with the "table_is_fixed_array" member of mp_map_t. But these settings are actually independent, and it is possible to have is_fixed=1, is_ordered=0 (although this can currently only be done by tools/cc1). So update the comments to reflect this.
2020-06-10py/objtype: Use mp_obj_dict_copy() for creating obj.__dict__ attribute.Andrew Leech
The resulting dict is now marked as read-only (is_fixed=1) to enforce the fact that changes to this dict will not be reflected in the class instance. This commit reduces code size by about 20 bytes, and should be more efficient because it creates a direct copy of the dict rather than reinserting all elements.
2020-06-10py/objtype: Add __dict__ attribute for class objects.Andrew Leech
The behavior mirrors the instance object dict attribute where a copy of the local attributes are provided (unless the dict is read-only, then that dict itself is returned, as an optimisation). MicroPython does not support modifying this dict because the changes will not be reflected in the class. The feature is only enabled if MICROPY_CPYTHON_COMPAT is set, the same as the instance version.
2020-06-09mimxrt/boards: Integrate support for MIMXRT1020_EVK board.Philipp Ebensberger
2020-06-09mimxrt/boards: Enable LED class for MIMXRT1060_EVK board.Albort Xue
2020-06-09esp32: Update IDF v4.0 supported hash to v4.0.1.Jim Mussared
The main fix relevant to MicroPython is https://github.com/espressif/esp-idf/issues/4196 Release notes here https://github.com/espressif/esp-idf/releases/tag/v4.0.1
2020-06-08extmod/ure: Use single function for match/search/sub.stijn
Saves about 500 bytes on unix x64 and enables CPython-conform usage of passing a re object to these functions.
2020-06-08py/dynruntime.h: Make mp_obj_str_get_str raise if arg not a str/bytes.Damien George
2020-06-08mimxrt/tusb_config.h: Preliminary fix for TinyUSB HS endpoint overflow.Philipp Ebensberger
Sending more than 64 bytes to the USB CDC endpoint in HS mode will lead to a hard crash. This commit fixes the issue, although there may be a better fix from upstream TinyUSB in the future.
2020-06-05docs: Fix Sphinx 3.x warnings, and enable warnings-as-errors on build.David Lechner
This enables warnings as errors and fixes all current errors, namely: - reference to terms in the glossary must now be explicit (:term:) - method overloads must not be declared as a separate method or must use :noindex: - 2 cases where `` should have been used instead of `
2020-06-05github: Add GitHub action to build docs.David Lechner
This builds docs, but only on pull requests that change a file in the docs/ directory.
2020-06-05esp32/mpthreadport: Fix calculation of thread stack size.Damien George
With this commit the code should work correctly regardless of the size of StackType_t (it's actually 1 byte in size for the esp32's custom FreeRTOS). Fixes issue #6072.
2020-06-05qemu-arm: Support building in debug mode with DEBUG=1.Damien George
Fixes issue #6095.
2020-06-05examples/bluetooth: Fix incorrect value of BR/EDR flag in advertising.jxltom
According to Supplement to the Bluetooth Core Specification v8 Part A 1.3.1, to support BR/EDR the code should set the fifth bit (Simultaneous LE and BR/EDR to Same Device Capable (Controller)) and fourth bit (Simultaneous LE and BR/EDR to Same Device Capable (Host)) of the flag.
2020-06-05extmod/modbluetooth: Support bigger characteristic values.Jim Mussared
The ring buffer previously used a single unsigned byte field to save the length, meaning that it would overflow for large characteristic value responses. With this commit it now use a 16-bit length instead and has code to explicitly truncate at UINT16_MAX (although this should be impossible to achieve in practice).
2020-06-05extmod/modbluetooth: Ensure status=0 always on success.Jim Mussared
This commit makes sure that all discovery complete and read/write status events set the status to zero on success. The status value will be implementation-dependent on non-success cases.
2020-06-05docs/library: Update ubluetooth for new events and discover by uuid.Jim Mussared
2020-06-05tests/multi_bluetooth: Update to work with new BLE events.Jim Mussared
Updates the tests to use non-bitmask events, event renames, as well as some of the new completion events to improve reliability of the tests.