aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-10-20docs/library/machine.Signal.rst: Correct typo: usecases to use cases.Howard Lovatt
2020-10-20docs/library/machine.rst: Correct minor typo: timout to timeout.Howard Lovatt
2020-10-20docs/library/btree.rst: Correct method typo: __detitem__ to __delitem__.Howard Lovatt
2020-10-20tools/upip.py: Support explicit port number in host.awachtler
Adding a port number other then 443 to a PyPI URL may be needed if a local server like devpi is used.
2020-10-17ports: Use correct in/out endpoint size in TUD_CDC_DESCRIPTOR.Damien George
The last argument of TUD_CDC_DESCRIPTOR() is the endpoint size (or wMaxPacketSize), not the CDC RX buffer size (which can be larger than the endpoint size). Signed-off-by: Damien George <damien@micropython.org>
2020-10-16stm32/boards/NUCLEO_WB55/rfcore_firmware.py: Increase GET_STATE timeout.Jim Mussared
When installing WS firmware, the very first GET_STATE can take several seconds to respond (especially with the larger binaries like BLE_stack_full). Allows stm.rfcore_sys_hci to take an optional timeout, defaulting to SYS_ACK_TIMEOUT_MS (which is 250ms). Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-10-16stm32/boards/NUCLEO_WB55/rfcore_firmware.py: Fix bad variable name.Jim Mussared
Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-10-16stm32/boards/NUCLEO_WB55/rfcore_firmware.py: Fix flash unlock.Jim Mussared
The flash can sometimes be in an already-unlocked state, and attempting to unlock it again will cause an immediate reset. So make _Flash.unlock() check FLASH_CR_LOCK to get the current state. Also fix some magic numbers for FLASH_CR_LOCK AND FLASH_CR_STRT. The machine.reset() could be removed because it no longer crashes now that the flash unlock is fixed. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
2020-10-10py/objtype: Handle __dict__ attribute when type has no locals.Jim Mussared
2020-10-10py/objdict: Add mp_const_empty_dict_obj, use it for mp_const_empty_map.Jim Mussared
2020-10-09stm32/rfcore: Update to support WS=1.9.0.0.4.Jim Mussared
This WS update to 1.9.0.0.4 broke the workaround used in rfcore for OCF_CB_SET_EVENT_MASK2, so fix it to support WS 1.8 and 1.9.
2020-10-08stm32/boards/NUCLEO_WB55: Add standalone WB55 FUS/WS firmware updater.Jim Mussared
This commit adds a script that can be run on-device to install FUS and WS binaries from the filesystem. Instructions for use are provided in the rfcore_firmware.py file. The commit also removes unneeded functionality from the existing rfcore.py debug script (and renames it rfcore_debug.py).
2020-10-08stm32/rfcore: Add Python API for basic rfcore operations.Jim Mussared
The new functions provide FUS/WS status, version and SYS HCI commands: - stm.rfcore_status() - stm.rfcore_fw_version(fw_id) - stm.rfcore_sys_hci(ogf, ocf, cmd)
2020-10-06stm32/sdcard: Fix H7 build when using SDMMC2.iabdalkader
Changes are: - Fix missing IRQ handler when SDMMC2 is used instead of SDMMC1 with H7 MCUs. - Removed outdated H7 series compatibility macros. - Defined common IRQ handler macro for F4 series.
2020-10-06stm32/sdio: Don't change any DMA2 settings on H7 MCUs.iabdalkader
DMA2 clock and registers should be left in their current state in the H7 build.
2020-10-06esp32: Use path relative to root for netutils/timeutils headers.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-10-02stm32/Makefile: Allow boards to extend SRC_C, SRC_O and OBJ variables.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-10-01unix/variants: Enable MICROPY_DEBUG_PARSE_RULE_NAME on coverage build.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-10-01py/parse: Expose rule-name printing as MICROPY_DEBUG_PARSE_RULE_NAME.Damien George
So it can be enabled without modifying the source. Signed-off-by: Damien George <damien@micropython.org>
2020-10-01extmod/utime_mphal: Add generic utime.time_ns() function.Damien George
It requires mp_hal_time_ns() to be provided by a port. This function allows very accurate absolute timestamps. Enabled on unix, windows, stm32, esp8266 and esp32. Signed-off-by: Damien George <damien@micropython.org>
2020-10-01unix,windows: Implement mp_hal_time_ns using gettimeofday.Damien George
This provides microsecond accuracy. Signed-off-by: Damien George <damien@micropython.org>
2020-10-01docs: Update I2C and SPI docs to add reference to SoftI2C and SoftSPI.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-10-01ports: Support legacy soft I2C/SPI construction via id=-1 arg.Damien George
With a warning that this way of constructing software I2C/SPI is deprecated. The check and warning will be removed in a future release. This should help existing code to migrate to the new SoftI2C/SoftSPI types. Signed-off-by: Damien George <damien@micropython.org>
2020-10-01ports: Add SoftI2C and SoftSPI to machine module where appropriate.Damien George
Previous commits removed the ability for one I2C/SPI constructor to construct both software- or hardware-based peripheral instances. Such construction is now split to explicit soft and non-soft types. This commit makes both types available in all ports that previously could create both software and hardware peripherals: machine.I2C and machine.SPI construct hardware instances, while machine.SoftI2C and machine.SoftSPI create software instances. This is a breaking change for use of software-based I2C and SPI. Code that constructed I2C/SPI peripherals in the following way will need to be changed: machine.I2C(-1, ...) -> machine.SoftI2C(...) machine.I2C(scl=scl, sda=sda) -> machine.SoftI2C(scl=scl, sda=sda) machine.SPI(-1, ...) -> machine.SoftSPI(...) machine.SPI(sck=sck, mosi=mosi, miso=miso) -> machine.SoftSPI(sck=sck, mosi=mosi, miso=miso) Code which uses machine.I2C and machine.SPI classes to access hardware peripherals does not need to change. Signed-off-by: Damien George <damien@micropython.org>
2020-10-01extmod/machine_spi: Remove "id" arg in SoftSPI constructor.Damien George
The SoftSPI constructor is now used soley to create SoftSPI instances, it can no longer delegate to create a hardware-based SPI instance. Signed-off-by: Damien George <damien@micropython.org>
2020-10-01extmod/machine_i2c: Remove "id" arg in SoftI2C constructor.Damien George
The SoftI2C constructor is now used soley to create SoftI2C instances, it can no longer delegate to create a hardware-based I2C instance. Signed-off-by: Damien George <damien@micropython.org>
2020-10-01extmod/machine_i2c: Rename type to SoftI2C and add custom print method.Damien George
Also rename machine_i2c_type to mp_machine_soft_i2c_type. These changes make it clear that it's a soft-I2C implementation, and match SoftSPI. Signed-off-by: Damien George <damien@micropython.org>
2020-10-01py/makeversionhdr.py: Match only git tags which look like versions.Mike Wadsten
Some downstream projects may use tags in their repositories for more than just designating MicroPython releases. In those cases, the makeversionhdr.py script would end up using a different tag than intended. So tell `git describe` to only match tags that look like a MicroPython version tag, such as `v1.12` or `v2.0`.
2020-09-30docs/reference/packages.rst: Fix typo, remove duplicate "port".David Lechner
Fixes #6485.
2020-09-30zephyr: Update build instructions to v2.4.0.Maureen Helm
Updates the zephyr port build instructions to use the latest zephyr release tag. Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-09-30travis: Update zephyr build to v2.4.0.Maureen Helm
Updates CI to use the latest zephyr release tag. Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-09-30zephyr: Const-ify struct device instance pointers.Maureen Helm
Zephyr v2.4.0 added a const qualifier to usages of struct device to allow storing device driver instances exclusively in flash and thereby reduce ram footprint. Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-09-30zephyr: Replace zephyr integer types with C99 types.Maureen Helm
Zephyr v2.4.0 stopped using custom integer types in favor of C99 types instead. Signed-off-by: Maureen Helm <maureen.helm@nxp.com>
2020-09-30extmod/modure: Allow \\ in re.sub replacements.Andrew Leech
2020-09-26examples/bluetooth: Update to use positional-only args to irq().Jim Mussared
To match 6a6a5f9e151473bdcc1d14725d680691ff665a82.
2020-09-25tests/run-tests: Use -BS flags when running CPython.Damien George
The use of -S ensures that only the CPython standard library is accessible, which makes tests run the same regardless of any site-packages that are installed. It also improves start-up time of CPython, reducing the overall time spent running the test suite. tests/basics/containment.py is updated to work around issue with old Python versions not being able to str-format a dict-keys object, which becomes apparent when -S is used. Signed-off-by: Damien George <damien@micropython.org>
2020-09-25docs/develop: Add notes on prerequisite tools for building native .mpy.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-09-25extmod/modbluetooth: Change module-owned bytes objects to memoryview.Damien George
A read-only memoryview object is a better representation of the data, which is owned by the ubluetooth module and may change between calls to the user's irq callback function. Signed-off-by: Damien George <damien@micropython.org>
2020-09-25py/objarray.h: Add mp_obj_memoryview_init() helper function.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-09-24py/objstr: Make bytes(bytes_obj) return bytes_obj.Iyassou Shimels
Calling the bytes constructor on a bytes object returns the original bytes object. This saves allocating a new instance, and matches CPython. Signed-off-by: Iyassou Shimels <s.iyassou@gmail.com>
2020-09-23windows: Update build instructions in README.stijn
Make the instructions more complete by documenting all needed steps for starting from scratch. Also add a section for MSYS2 since the Travis build uses it as well and it's a good alternative for Cygwin. Remove the mingw32 reference since it's not readily available anymore in most Linux distros nor compiles successfully.
2020-09-23extmod/vfs: Fix lookup of entry in root dir so it fails correctly.Damien George
Prior to this commit, uos.chdir('/') followed by uos.stat('noexist') would succeed that stat even though the entry did not exist (some other functions like listdir would have similar issues). This is because, if the current directory was the root and the path was relative, mp_vfs_lookup_path would return success for bad paths. Signed-off-by: Damien George <damien@micropython.org>
2020-09-22stm32/rfcore: Fix FUS layout and size of ipcc_device_info_table_t.Damien George
The device info table has a different layout when core 2 is in FUS mode. In particular it's larger than the 32 bytes used when in WS mode and if the correct amount of space is not allocated then the end of the table may be overwritten with other data (eg with FUS version 0.5.3). So update the structure to fix this. Also update rfcore.py to disable IRQs (which are enabled by rfcore.c), to not depend on uctypes, and to not require the asm_thumb emitter. Signed-off-by: Damien George <damien@micropython.org>
2020-09-18tests/basics: Add test for MICROPY_PY_ALL_INPLACE_SPECIAL_METHODS ops.Damien George
And enable this feature on unix, the coverage variant. The .exp test file is needed so the test can run on CPython versions prior to "@=" operator support. Signed-off-by: Damien George <damien@micropython.org>
2020-09-18tests/basics: Enable == and != special-method tests now that they work.Damien George
These work since 3aab54bf434e7f025a91ea05052f1bac439fad8c Signed-off-by: Damien George <damien@micropython.org>
2020-09-18stm32/led: Support PWM output without TIM3.Tweako
For example, the STM32WB55 doesn't have TIM3 but can still drive LEDs using PWM on other timers.
2020-09-18py/dynruntime.h: Add mp_import_* and mp_load/store_*.Jim Mussared
These functions already exist in the fun table, and this commit just adds convenience macros for them.
2020-09-18all: Rename absolute time-based functions to include "epoch".Damien George
For time-based functions that work with absolute time there is the need for an Epoch, to set the zero-point at which the absolute time starts counting. Such functions include time.time() and filesystem stat return values. And different ports may use a different Epoch. To make it clearer what functions use the Epoch (whatever it may be), and make the ports more consistent with their use of the Epoch, this commit renames all Epoch related functions to include the word "epoch" in their name (and remove references to "2000"). Along with this rename, the following things have changed: - mp_hal_time_ns() is now specified to return the number of nanoseconds since the Epoch, rather than since 1970 (but since this is an internal function it doesn't change anything for the user). - littlefs timestamps on the esp8266 have been fixed (they were previously off by 30 years in nanoseconds). Otherwise, there is no functional change made by this commit. Signed-off-by: Damien George <damien@micropython.org>
2020-09-18ports: Add utime.gmtime() function.Damien George
To portably get the Epoch. This is simply aliased to localtime() on ports that are not timezone aware. Signed-off-by: Damien George <damien@micropython.org>
2020-09-18esp8266: Remove release-specific manifest, disable osdebug by default.Damien George
This commit removes release-specific builds for the esp8266 and makes the normal build of the GENERIC board more like the release build. This makes esp8266 like all the other ports, for which there is no difference between a daily build and a release build, making things less confusing. Release builds were previously defined by UART_OS=-1 (disable OS messages) and using manifest_release.py to include more frozen modules. The changes in this commit are: - Remove manifest_release.py. - Add existing modules from manifest_release.py (except example code) to the GENERIC board's manifest.py file. - Change UART_OS default to -1 to disable OS messages by default. Signed-off-by: Damien George <damien@micropython.org>