- 21 May, 2019 1 commit
-
-
Andrew Leech authored
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.
-
- 20 May, 2019 11 commits
-
-
Damien George authored
On stm32 boards, machine.I2C is now preferred over pyb.I2C.
-
Damien George authored
-
Damien George authored
Fixes issue #3482.
-
Damien George authored
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.
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
API is: int transfer( mp_obj_base_t *obj, uint16_t addr, size_t n, mp_machine_i2c_buf_t *bufs, unsigned int flags )
-
Damien George authored
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.
-
Damien George authored
Fixes issue #4794.
-
- 17 May, 2019 4 commits
-
-
Damien George authored
-
Paul Sokolovsky authored
For modules I initially created or made substantial contributions to.
-
Damien George authored
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.
-
Damien George authored
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.
-
- 15 May, 2019 6 commits
-
-
Damien George authored
-
iabdalkader authored
-
iabdalkader authored
Only the M4 and M7 MCUs have an FPU and FPU_IRQn, and FPU_IRQn is not always the last entry/IRQ number.
-
iabdalkader authored
The H7 HAL uses SPI IRQs when the SPI is running in DMA mode.
-
iabdalkader authored
This is required for the H7 DMA to work.
-
Damien George authored
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.
-
- 14 May, 2019 4 commits
-
-
Damien George authored
-
stijn authored
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.
-
Damien George authored
Follow up to commit 34942d0a
-
Damien George authored
Fixes issue #4780.
-
- 13 May, 2019 4 commits
-
-
iabdalkader authored
-
Damien George authored
-
Damien George authored
-
Henrik Vendelbo authored
-
- 10 May, 2019 2 commits
-
-
Nicko van Someren authored
-
Damien George authored
Can now handle up to about 298 days maximum for millisecond periods. Fixes issue #4664.
-
- 09 May, 2019 4 commits
-
-
Damien George authored
Macro identifiers with a leading underscore are reserved.
-
Damien George authored
-
Damien George authored
Fixes issue #4527.
-
Andrew Leech authored
-
- 08 May, 2019 2 commits
-
-
Elad Namdar authored
The original code called setsockopt(SO_RCVTIMEO/SO_SNDTIMEO) with NULL timeout structure argument, which is an illegal usage of that function. The old code also didn't validate the return value of setsockopt, missing the bug completely.
-
Damien George authored
Before this change, if the USB was reconnected it was possible that some characters in the TX buffer were retransmitted because tx_buf_ptr_out and tx_buf_ptr_out_shadow were reset while tx_buf_ptr_in wasn't. That behaviour is fixed here by retaining the TX buffer state across reconnects. Fixes issue #4761.
-
- 07 May, 2019 2 commits
-
-
Damien George authored
The new function factory_reset_make_files() populates the given filesystem with the default factory files. It is defined with weak linkage so it can be overridden by a board. This commit also brings some minor user-facing changes: - boot.py is now no longer created unconditionally if it doesn't exist, it is now only created when the filesystem is formatted and the other files are populated (so, before, if the user deleted boot.py it would be recreated at next boot; now it won't be). - pybcdc.inf and README.txt are only created if the board has USB, because they only really make sense if the filesystem is exposed via USB.
-
Damien George authored
It's more common to need non-blocking behaviour when reading from a UART, rather than having a large timeout like 1000ms (the original behaviour). With a large timeout it's 1) likely that the function will read forever if characters keep trickling it; or 2) the function will unnecessarily wait when characters come sporadically, eg at a REPL prompt.
-