- 12 Dec, 2019 14 commits
-
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
-
Damien George authored
So they can be built as dynamic native modules, as well as existing static native modules.
-
Damien George authored
-
Damien George authored
This commit adds a new tool called mpy_ld.py which is essentially a linker that builds .mpy files directly from .o files. A new header file (dynruntime.h) and makefile fragment (dynruntime.mk) are also included which allow building .mpy files from C source code. Such .mpy files can then be dynamically imported as though they were a normal Python module, even though they are implemented in C. Converting .o files directly (rather than pre-linked .elf files) allows the resulting .mpy to be more efficient because it has more control over the relocations; for example it can skip PLT indirection. Doing it this way also allows supporting more architectures, such as Xtensa which has specific needs for position-independent code and the GOT. The tool supports targets of x86, x86-64, ARM Thumb and Xtensa (windowed and non-windowed). BSS, text and rodata sections are supported, with relocations to all internal sections and symbols, as well as relocations to some external symbols (defined by dynruntime.h), and linking of qstrs.
-
Damien George authored
Usage: mpy-tool.py -o merged.mpy --merge mod1.mpy mod2.mpy The constituent .mpy files are executed sequentially when the merged file is imported, and they all use the same global namespace.
-
Damien George authored
These allow discovery of symbols by native code that is loaded dynamically.
-
Damien George authored
-
Damien George authored
Implements text, rodata and bss generalised relocations, as well as generic qstr-object linking. This allows importing dynamic native modules on all supported architectures in a unified way.
-
- 10 Dec, 2019 2 commits
-
-
Damien George authored
-
Damien George authored
-
- 09 Dec, 2019 7 commits
-
-
Jim Mussared authored
The condition for skipping was accidentally inverted in 7723dac3 Fixes issue #5400.
-
Emil Renner Berthing authored
For the case where MICROPY_CPYTHON_COMPAT is disabled. This fix makes basics/fun_error2.py pass and not crash the interpreter.
-
Jim Mussared authored
-
Damien George authored
-
Daniel Mizyrycki authored
-
Daniel Mizyrycki authored
-
Damiano Mazzella authored
-
- 05 Dec, 2019 4 commits
-
-
Andrej Krejcir authored
When the file system is not enabled, the boot.py and main.py modules will still be executed, if they are frozen.
-
Chris Mason authored
-
Andrew Leech authored
Fixes issue #5159.
-
Damien George authored
The size of the event ringbuf was previously fixed to compile-time config value, but it's necessary to sometimes increase this for applications that have large characteristic buffers to read, or many events at once. With this commit the size can be set via BLE.config(rxbuf=512), for example. This also resizes the internal event data buffer which sets the maximum size of incoming data passed to the event handler.
-
- 04 Dec, 2019 6 commits
-
-
Damien George authored
This allows the user to explicitly select the behaviour of the write to the remote peripheral. This is needed for peripherals that have characteristics with WRITE_NO_RESPONSE set (instead of normal WRITE). The function's signature is now: BLE.gattc_write(conn_handle, value_handle, data, mode=0) mode=0 means write without response, while mode=1 means write with response. The latter was the original behaviour so this commit is a change in behaviour of this method, and one should specify 1 as the 4th argument to get back the old behaviour. In the future there could be more modes supported, such as long writes.
-
Jim Mussared authored
-
Jim Mussared authored
-
Jim Mussared authored
-
Damien George authored
-
Damien George authored
The default protection for the BLE ringbuf is to use MICROPY_BEGIN_ATOMIC_SECTION, which disables all interrupts. On stm32 it only needs to disable the lowest priority IRQ, pendsv, because that's the IRQ level at which the BLE stack is driven.
-
- 03 Dec, 2019 1 commit
-
-
Damien George authored
-
- 02 Dec, 2019 2 commits
-
-
Damien George authored
This removes the limit on data coming in from a BLE.gattc_read() request, or a notify with payload (coming in to a central). In both cases the data coming in to the BLE callback is now limited only by the available data in the ringbuf, whereas before it was capped at (default hard coded) 20 bytes.
-
Damien George authored
Instead of enqueue_irq() inspecting the ringbuf to decide whether to schedule the IRQ callback (if ringbuf is empty), maintain a flag that knows if the callback is on the schedule queue or not. This saves about 150 bytes of code (for stm32 builds), and simplifies all uses of enqueue_irq() and schedule_ringbuf().
-
- 28 Nov, 2019 1 commit
-
-
Damien George authored
-
- 27 Nov, 2019 3 commits
-
-
Damien George authored
-
Damien George authored
This board doesn't have much flash and removing these unneeded names saves about 900 bytes of code size.
-
Damien George authored
qstrs in this file are always included in all builds, even if not used anywhere. So remove those that are never needed, and make USB names conditional on having USB enabled.
-