aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-22stm32/powerctrlboot: Include irq.h to get definitions of IRQ priorities.Damien George
irq.h is included by py/mphal.h but it's better to be explicit, eg if mboot uses powerctrlboot.c. Signed-off-by: Damien George <damien@micropython.org>
2020-06-22stm32/irq: Clean up irq.h so it does not depend on core uPy defines.Damien George
The irq.h file now just provides low-level IRQ definitions and priorities. All Python binding definitions are moved to modmachine.h, with some renaming of pyb -> machine, and also the machine_idle definition (was pyb_wfi) is moved to modmachine.c. The cc3200 and teensy ports are updated to build with these changes. Signed-off-by: Damien George <damien@micropython.org>
2020-06-22travis: Build qemu-arm with MP_ENDIANNESS_BIG=1 to test bigendian build.Damien George
Eventually it would be good to run the full test suite on a big-endian system, but for now this will help to catch build errors with the big-endian configuration. Signed-off-by: Damien George <damien@micropython.org>
2020-06-22qemu-arm/Makefile: Add CFLAGS_EXTRA to CFLAGS.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-06-22py/misc.h: Add missing semi-colon in mp_float_union_t for big-endian.Damien George
Fixes issue #6161. Signed-off-by: Damien George <damien@micropython.org>
2020-06-19esp32/esp32_rmt: Call rmt_driver_install before rmt_config.Jonathan Hogg
Otherwise the RMT will repeat pulses when using loop(True). This repeating is due to a bug in the IDF which will be fixed in an upcoming release, but for now the accepted workaround is to swap these calls, which should still work in the fixed version of the IDF. Fixes issue #6167.
2020-06-19tools/uncrustify: Enable more opts to remove space between func and '('.David Lechner
With only `sp_func_proto_paren = remove` set there are some cases where uncrustify misses removing a space between the function name and the opening '('. This sets all of the related options to `force` as well.
2020-06-18tools/codeformat.py: Include extmod/{btstack,nimble} in code formatting.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-06-18stm32/boards/NUCLEO_WB55: Add more CPU pins and aliases to SW1/2/3.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-06-18github: Add FUNDING.yml file pointing to micropython GitHub sponsorship.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-06-17travis: Change nrf pca10056 board to build with soft-device enabled.Damien George
To test building with SD which enables a lot of additional code. Signed-off-by: Damien George <damien@micropython.org>
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.