- 26 Jun, 2021 2 commits
-
-
robert-hh authored
This class supports SPI bus controller mode, with blocking transfers. SPI device numbers start at 0, to comply with the pinout of the Teensy boards. With the configured clock frequency the fastest baud rate is 33MHz. For messages longer 16 bytes DMA is used. The class uses the existing framework with extmod/machine_spi.c. Extended driver options: - drive=n with n being between 1 and 6 or PIN.POWER_1 to PIN.POWER_6. Since the pins used by the SPI are fixed, no Pin settings can be made. Thus the drive option is added allowing to control ringing and crosstalk on the connection. - gap_ns=nnnnn is the time between sent data items in a frame given in ns. Default is 2 clock cycles.
-
Damien George authored
Coverage calculated by Codecov has the same reliability/deterministic issues as Coveralls did, so the problem is likely to do with the output of lcov/gcov, rather than the analysis and display of the data. Switch from lcov to gcov for data generation to try and simplify this process of computing coverage. Signed-off-by: Damien George <damien@micropython.org>
-
- 25 Jun, 2021 12 commits
-
-
Damien George authored
As discussed in #7455, Coveralls doesn't work properly anymore, it has many spurious errors with reduced coverage. Signed-off-by: Damien George <damien@micropython.org>
-
Jonathan Hogg authored
When looping, now disable the TX interrupt after calling rmt_write_items() function to handle change in IDF behaviour (since v4.1). Also check length of pulses to ensure it fits hardware limit. Fixes issue #7403.
-
Damien George authored
This helps the test pass on systems with an inaccurate sleep time. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
The GC now works correctly using asyncify and the functions emscripten_scan_stack() and emscripten_scan_registers(). Stack/call depth is monitored via the use of the pystack option. Fixes issue #6738. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Only include .c and .cpp files explicitly in the list of files passed to the preprocessor for QSTR extraction. All relevant .h files will be included in this process by "#include" from the .c(pp) files. In particular for moduledefs.h, this is included by py/objmodule.c (and doesn't actually contain any extractable MP_QSTR_xxx, but rather defines macros with MP_QSTR_xxx's in them which are then part of py/objmodule.c). The main reason for this change is to simplify the preprocessing step on the javascript port, which tries to compile .h files as C++ precompiled headers if they are passed with -E to clang. Signed-off-by: Damien George <damien@micropython.org>
-
David Lechner authored
`mpy-cross` can be compiled to WASM using Emscripten, but it is not happy unless the stack check is disabled. Signed-off-by: David Lechner <david@pybricks.com>
-
David Lechner authored
This fixes failing builds when the GitHub CI image lags behind Ubuntu security updates.
-
Krzysztof Adamski authored
Calculating the weekday each time you want to set a date is error prone and tiresome. MicroPython can do it on its own - hardware on some ports do not support storing weekday in hardware and always computes it on the fly, ignoring the value given to the constructor. During discussion for #7432 the conclusion was that there seems to be no obvious reason to let user set the weekday to an incorrect value so it makes sense to just ignore the provided weekday value and always compute the correct value. This patch introduces this change for the rp2 port. Signed-off-by: Krzysztof Adamski <k@japko.eu>
-
Krzysztof Adamski authored
The RTC in rp2 can store any, even wrong, number as a weekday in RTC. It was, however, discussed in #7394 that we would like to unify all ports and use 0 as Monday, not Sunday in the machine.RTC implementation. This patch makes sure that the default date set in RTC is adheres to this convention. It also fixes the example in quickref to use proper weekday to avoid confusion. Signed-off-by: Krzysztof Adamski <k@japko.eu>
-
Krzysztof Adamski authored
This function may be useful for other ports as well so lets move it to timeutils so it can be reused. Signed-off-by: Krzysztof Adamski <k@japko.eu>
-
- 24 Jun, 2021 4 commits
-
-
David Lechner authored
This is useful when binding asynchronous functions in C. Signed-off-by: David Lechner <david@pybricks.com>
-
Amir Gonnen authored
Add an optional 'lock' kwarg to callback that locks GC and scheduler. This allows the callback to be invoked asynchronously in 'interrupt context', for example as a signal handler. Also add the 'cfun' member function to callback, that allows retrieving the C callback function address. This is needed when the callback should be set to a struct field. See related #7373. Signed-off-by: Amir Gonnen <amirgonnen@gmail.com>
-
Jeff Epler authored
Fixes the following (the line numbers match commit 0e87459e): ../../extmod/crypto-algorithms/sha256.c:49:19: runtime error: left shif... ../../extmod/moduasyncio.c:106:35: runtime error: member access within ... ../../py/binary.c:210:13: runtime error: left shift of negative value -... ../../py/mpz.c:744:16: runtime error: negation of -9223372036854775808 ... ../../py/objint.c:109:22: runtime error: left shift of 1 by 31 places c... ../../py/objint_mpz.c:374:9: runtime error: left shift of 4611686018427... ../../py/objint_mpz.c:374:9: runtime error: left shift of negative valu... ../../py/parsenum.c:106:14: runtime error: left shift of 46116860184273... ../../py/runtime.c:395:33: runtime error: left shift of negative value ... ../../py/showbc.c:177:28: runtime error: left shift of negative value -... ../../py/vm.c:321:36: runtime error: left shift of negative value -1``` Testing was done on an amd64 Debian Buster system using gcc-8.3 and these settings: CFLAGS += -g3 -Og -fsanitize=undefined LDFLAGS += -fsanitize=undefined The introduced TASK_PAIRHEAP macro's conditional (x ? &x->i : NULL) assembles (under amd64 gcc 8.3 -Os) to the same as &x->i, since i is the initial field of the struct. However, for the purposes of undefined behavior analysis the conditional is needed. Signed-off-by: Jeff Epler <jepler@gmail.com>
-
Damien George authored
This is necessary when building a custom out-of-tree board. Signed-off-by: Damien George <damien@micropython.org>
-
- 23 Jun, 2021 8 commits
-
-
Damien George authored
The tools/autobuild/ scripts replace this. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Following how other .irq() methods work on other objects. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Otherwise it can easily lead to a hard crash. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
It reschedules the BT HCI poll soft timer so that it is called exactly when the next timer expires. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Instead of using systick the BT subsystem is now scheduled using a soft timer. This means it is scheduled only when it is enabled. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
And call mp_pairheap_init_node() in soft_timer_static_init() so that reinsert can be called after static_init. Signed-off-by: Damien George <damien@micropython.org>
-
- 22 Jun, 2021 2 commits
-
-
Michael Weiss authored
Signed-off-by: mishafarms <github@mishafarms.us>
-
Jim Mussared authored
This is to provide a summary of the licenses used by MicroPython. - Add SPDX identifier for every directory that includes non-MIT-licensed content. - Add brief summary. - Update docs license to be more explicit. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
-
- 20 Jun, 2021 1 commit
-
-
Damien George authored
Dynamically generate/loaded native code (eg from @micropython.native or native .mpy files) needs to be able allocate from IRAM, and the memory protection feature must be disabled for that to work. Disabling it is needed to get native code working on ESP32-S2 and -C3. Signed-off-by: Damien George <damien@micropython.org>
-
- 18 Jun, 2021 6 commits
-
-
David Lechner authored
This introduces a new macro to get the main thread and uses it to ensure that asynchronous exceptions such as KeyboardInterrupt (CTRL+C) are only scheduled on the main thread. This is more deterministic than being scheduled on a random thread and is more in line with CPython that only allow signal handlers to run on the main thread. Fixes issue #7026. Signed-off-by: David Lechner <david@pybricks.com>
-
David Lechner authored
This moves mp_pending_exception from mp_state_vm_t to mp_state_thread_t. This allows exceptions to be scheduled on a specific thread. Signed-off-by: David Lechner <david@pybricks.com>
-
Damien George authored
Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
2.5 can be represented correctly in object representation C, but 2.3 cannot (it is slightly truncated). Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
It's not supported on older GCC versions. Signed-off-by: Damien George <damien@micropython.org>
-
Damien George authored
Commit 0abf6f83 removed _boot.py from the manifest for the GENERIC_512K board because the build does not include a filesystem. But the main code expects _boot.py to be there and prints an error if it's not. So add a custom _boot.py, which just sets the gc.threshold(). Signed-off-by: Damien George <damien@micropython.org>
-
- 17 Jun, 2021 5 commits
-
-
Damien George authored
Fixes issue #7352. Signed-off-by: Damien George <damien@micropython.org>
-
Mike Causer authored
The 72x40 OLED requires selecting the internal IREF, as opposed to the default external IREF. This is an undocumented feature in the SSD1306 datasheet, but is present in the SSD1315 datasheet. It's possible the 72x40 OLED is actually using the newer SSD1315 controller. Sending the IREF select command to SSD1306 displays has no effect on them, so it's added to the init_display() instead of wrapping in an "if width = 72". Also tested on a 128x64 OLED using the SSD1315 controller (smaller ribbon cable) and the proposed change has no effect on the display, as the module comes with the correct current limiting resistor. Internal and external IREF work the same. Fixes issue #7281.
-
Jonathan Hogg authored
Make the hardware SPI initializer method match the `init()` method by allowing `None` to be given for `sck`/`mosi`/`miso` to specify an unused signal.
-
Thomas Wenrich authored
-
Thomas Wenrich authored
This adds a wlan.config(reconnects=N) option to set the number of reconnect attempts that will be made if the WLAN connection goes down. The default is N=-1 (infinite retries, current behavior). Setting wlan.config(reconnects=0) will disable the reconnect attempts. A nice side effect of reconnects=0 is that wlan.status() will report the disconnect reason now. See related issue #5326.
-