aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-05-28unix/modusocket: Raise ETIMEDOUT when connect or accept has timeout.Damien George
2019-05-28esp32/machine_touchpad: Use HW timer for FSM to enable wake-on-touch.Tom Manning
2019-05-27py/vm: Remove obsolete comments about matching of exception opcodes.Damien George
These are incorrect since 5a2599d96299ad37cda954f1de345159f9acf11c
2019-05-24stm32/sdram: Update MPU settings to block invalid region, change attrs.Andrew Leech
Set the active MPU region to the actual size of SDRAM configured and invalidate the rest of the memory-mapped region, to prevent errors due to CPU speculation. Also update the attributes of the SDRAM region as per ST recommendations, and change region numbers to avoid conflicts elsewhere in the codebase (see eth usage).
2019-05-24esp8266: Fix ticks_ms to correctly handle wraparound of system counter.Damien George
Fixes issue #4795.
2019-05-24zephyr: Switch back to enabling I2C in board-specific configs.Paul Sokolovsky
I2C can't be enabled in prj_base.conf because it's a board-specific feature. For example, if a board doesn't have I2C but CONFIG_I2C=y then the build will fail (on Zephyr build system side). The patch here gets the qemu_cortex_m3 build working again.
2019-05-24zephyr/README: Reorder content related to recently added I2C.Paul Sokolovsky
So it fits better with existing narrative.
2019-05-24mpy-cross/mpconfigport.h: Remove defn of MP_NOINLINE to use global one.Damien George
A global definition of MP_NOINLINE was added to py/mpconfig.h long ago in 0f5bf1aafe0ca073d958f271bd96addc6da8fe10
2019-05-23windows: Fix line wrapping behaviour on the REPL.stijn
This enables going back to previous wrapped lines using backspace or left arrow: instead of just sticking to the beginning of a line, the cursor will move a line up.
2019-05-23stm32/sdcard: Add switch break to ensure only correct SD/MMC IRQ is run.Andrew Leech
2019-05-22py/mkrules.mk: Remove unnecessary ; in makefile.Sebastien Rinsoz
This ; make Windows compilation fail with GNU makefile 4.2.1. It was added in 0dc85c9f86735c35cf14555482b2c8923cf31a6a as part of a shell if- statement, but this if-statement was subsequently removed in 23a693ec2d8c2a194f61482dc0e1adb070fb6ad4 so the semicolon is not needed.
2019-05-22py: Update makefiles to use $(TOUCH) instead of hard coded "touch".Sebastien Rinsoz
The variable $(TOUCH) is initialized with the "touch" value in mkenv.mk like for the other command line tools (rm, echo, cp, mkdir etc). With this, for example, Windows users can specify the path of touch.exe.
2019-05-22nrf/mphalport: Use wfi to save power while waiting at the UART REPL.Damien George
2019-05-22nrf/uart: Make UART print output something, and add write method.Damien George
2019-05-22nrf/mpconfigport.h: Enable MICROPY_KBD_EXCEPTION by default.Damien George
2019-05-22nrf/uart: Change UART driver to be non-blocking and use IRQs.Damien George
As part of this, ctrl-C is now able to interrupt a running program.
2019-05-21nrf/nrfx_glue: Adapt to nrfx v.1.7.1.Glenn Ruben Bakke
Defining NRFX_STATIC_ASSERT macro to be empty, but available to nrfx.
2019-05-21lib/nrfx: Upgrade nrfx to master.Glenn Ruben Bakke
Updating the nrfx git submodule containing HAL drivers for nrf-port from v1.3.1 to current master. The version pointed to is one commit ahead of v1.7.1 release. The extra commit contains a bugfix for nrfx_uart_tx_in_progress() making it report correctly. The general upgrade of nrfx is considered to be safe, as almost all changes in between 1.3.1 and 1.7.1 are related to peripherals and target devices not used by the nrf-port as of today.
2019-05-21py: Update makefiles to use $(CAT) variable instead of hard coded "cat".Sébastien Rinsoz
The variable $(CAT) is initialised with the "cat" value in mkenv.mk like for the other command line tools (rm, echo, cp, mkdir etc). With this, for example, Windows users can specify the path of cat.exe.
2019-05-21py/objarray: Add decode method to bytearray.stijn
Reuse the implementation for bytes since it works the same way regardless of the underlying type. This method gets added for CPython compatibility of bytearray, but to keep the code simple and small array.array now also has a working decode method, which is non-standard but doesn't hurt.
2019-05-21stm32/i2c: Support setting the I2C TIMINGR value via keyword arg.Damien George
On MCUs that have an I2C TIMINGR register, this can now be explicitly set via the "timingr" keyword argument to the I2C constructor, for both machine.I2C and pyb.I2C. This allows to configure precise timing values when the defaults are inadequate.
2019-05-21stm32/machine_i2c: Simplify ROM initialisation of static HW I2C objects.Damien George
2019-05-21stm32/i2c: Make timeout for hardware I2C configurable.Andrew Leech
Previously the hardware I2C timeout was hard coded to 50ms which isn't guaranteed to be enough depending on the clock stretching specs of the I2C device(s) in use. This patch ensures the hardware I2C implementation honors the existing timeout argument passed to the machine.I2C constructor. The default timeout for software and hardware I2C is now 50ms.
2019-05-20docs/pyboard/quickref: Refer to new machine.I2C instead of old pyb.I2C.Damien George
On stm32 boards, machine.I2C is now preferred over pyb.I2C.
2019-05-20lib/stm32lib: Update library to fix UART9/10 baudrate on F4 MCUs.Damien George
2019-05-20drivers/display/ssd1306.py: Change to use new i2c.writevto() method.Damien George
Fixes issue #3482.
2019-05-20extmod/machine_i2c: Add i2c.writevto() that can write a vector of bufs.Damien George
For example: i2c.writevto(addr, (buf1, buf2)). This allows to efficiently (wrt memory) write data composed of separate buffers, such as a command followed by a large amount of data.
2019-05-20extmod/machine_i2c: Remove need for temporary memory in writemem() call.Damien George
2019-05-20zephyr/machine_i2c: Update to support new C-level I2C API.Damien George
2019-05-20nrf/machine/i2c: Update to support new C-level I2C API.Damien George
2019-05-20stm32/machine_i2c: Update to support new C-level I2C API.Damien George
2019-05-20extmod/machine_i2c: Change C-level API to allow split I2C transactions.Damien George
API is: int transfer( mp_obj_base_t *obj, uint16_t addr, size_t n, mp_machine_i2c_buf_t *bufs, unsigned int flags )
2019-05-20docs/machine.I2C: Add writevto method to write a vector of byte bufs.Damien George
This allows to efficiently send to an I2C slave data that is made up of more than one buffer. Instead of needing to allocate temporary memory to combine buffers together this new method allows to pass in a tuple or list of buffers. The name is based on the POSIX function writev() which has similar intentions and signature. The reasons for taking this approach (compared to having an interface with separate start/write/stop methods) are: - It's a backwards compatible extension. - It's convenient for the user. - It's efficient because there is only one Python call, then the C code can do everything in one go. - It's efficient on the I2C bus because the implementation can do everything in one go without pauses between blocks of bytes. - It should be possible to implement this extension in all ports, for hardware and software I2C. Further discussion is found in issue #3482, PR #4020 and PR #4763.
2019-05-20stm32/adc: Fix VBAT_DIV to be 4 for STM32F411.Damien George
Fixes issue #4794.
2019-05-17various: Update early copyright years to match actual edit history.Damien George
2019-05-17various: Add and update my copyright line based on git history.Paul Sokolovsky
For modules I initially created or made substantial contributions to.
2019-05-17stm32/modmachine: Create dedicated asm function to branch to bootloader.Damien George
Recent gcc versions (at least 9.1) give a warning about using "sp" in the clobber list. Such code is removed by this patch. A dedicated function is instead used to set SP and branch to the bootloader so the code has full control over what happens. Fixes issue #4785.
2019-05-17esp32/network_ppp: Add a timeout for closing PPP connection.Damien George
This also fixes deleting the PPP task, since eTaskGetState() never returns eDeleted. A limitation with this patch: once the PPP is deactivated (ppp.active(0)) it cannot be used again. A new PPP instance must be created instead.
2019-05-15esp32/machine_uart: Implement UART.deinit() method.Damien George
2019-05-15stm32/boards/NUCLEO_H743ZI: Enable SPI3 on this board.iabdalkader
2019-05-15stm32/irq: Fix IRQ_ENABLE_STATS stats config to work on all MCUs.iabdalkader
Only the M4 and M7 MCUs have an FPU and FPU_IRQn, and FPU_IRQn is not always the last entry/IRQ number.
2019-05-15stm32/spi: Enable SPI IRQs and add IRQHandlers for H7 MCUs.iabdalkader
The H7 HAL uses SPI IRQs when the SPI is running in DMA mode.
2019-05-15stm32/dma: Always reset and configure the H7 DMA peripheral.iabdalkader
This is required for the H7 DMA to work.
2019-05-15tools/upip.py: Add support for multiple index URLs with custom default.Damien George
The user can now select their own package index by either passing the "-i" command line option, or setting the upip.index_urls variable (before doing an install). The https://micropython.org/pi package index hosts packages from micropython-lib and will be searched first when installing a package. If a package is not found here then it will fallback to PyPI.
2019-05-14tests/basics: Add coverage tests for memoryview attributes.Damien George
2019-05-14py/objarray: Add support for memoryview.itemsize attribute.stijn
This allows figuring out the number of bytes in the memoryview object as len(memview) * memview.itemsize. The feature is enabled via MICROPY_PY_BUILTINS_MEMORYVIEW_ITEMSIZE and is disabled by default.
2019-05-14tests/pyb: Update UART expected output now that default timeout is 0.Damien George
Follow up to commit 34942d0a72980173eca51b201f271f67bcae46b5
2019-05-14extmod/modujson: Handle parsing of floats with + in the exponent.Damien George
Fixes issue #4780.
2019-05-13stm32/dma: Initialise all members of DMA structs for H7 MCUs.iabdalkader
2019-05-13nrf: Change types to size_t for all uses of mp_obj_str_get_data.Damien George