| Age | Commit message (Collapse) | Author |
|
Signed-off-by: Damien George <damien@micropython.org>
|
|
|
|
|
|
|
|
|
|
|
|
Previously this documentation assumed peripheral=server and central=client,
but this is not accurate or true to the implementation.
|
|
In particular, the printed string can now be re-evaluated to construct the
same UUID object.
|
|
Almost all ubluetooth functions are positional-only, but some have optional
args. Make this clearer and show what the defaults are.
|
|
Simplifcation now that the trigger arg has been removed.
|
|
For the following 3 functions, previously the code relied on whether the
arg was passed at all, to make it optional. Now it allows them to be
explicitly `None` to indicate they are not used:
- gatts_notify(..., [data])
- gattc_discover_services(..., [uuid])
- gattc_discover_characteristics(..., [uuid])
Also ensure that the uuid arguments are actually instances of the uuid
type, and fix handling of the 5th arg in gattc_discover_characteristics().
|
|
Fixes a regression introduced by 70affd9ba22e7f62666a9a2fafc2a3c0be9ef95a
Fixes issue #6403
Signed-off-by: Damien George <damien@micropython.org>
|
|
So the output can be redirected if needed.
Signed-off-by: Damien George <damien@micropython.org>
|
|
So the output can be redirected if needed.
Signed-off-by: Damien George <damien@micropython.org>
|
|
|
|
|
|
Alter the build flags as needed to support freezing modules with a
manifest. This makes freezing works just like it does for e.g. the unix
port.
|
|
Support freezing modules via manifest.py for consistency with the other
ports. In essence this comes down to calling makemanifest.py and adding
the resulting .c file to the build. Note the file with preprocessed qstrs
has been renamed to match what makemanifest.py expects and which is also
the name all other ports use.
|
|
The msvc compiler doesn't accept zero-sized arrays so let the freezing
process generate compatible C code in case no modules are found and the
involved arrays are all empty. This doesn't affect the functionality in
any way because those arrays only get accessed when mp_frozen_mpy_names
contains names, i.e. when modules are actually found.
|
|
Change in code size (for ports that use axtls) is:
unix x64: -152 -0.030% [incl -160(data)]
unix nanbox: -112 -0.025% [incl -96(data)]
esp8266: -64 -0.009% GENERIC
Signed-off-by: Damien George <damien@micropython.org>
|
|
Adds a new compile-time option MICROPY_PY_MATH_POW_FIX_NAN for use with
toolchains that don't handle pow-of-NaN correctly.
|
|
Prior to this commit, pow(-2, float('nan')) would return (nan+nanj), or
raise an exception on targets that don't support complex numbers. This is
fixed to return simply nan, as CPython does.
Signed-off-by: Damien George <damien@micropython.org>
|
|
Signed-off-by: Damien George <damien@micropython.org>
|
|
So this code can be used if pyb_hid_report_desc is not included in the
port's root pointer list.
Signed-off-by: Damien George <damien@micropython.org>
|
|
The mpconfigport.h file is an internal header and should only ever be
included once by mpconfig.h.
Signed-off-by: Damien George <damien@micropython.org>
|
|
Signed-off-by: Damien George <damien@micropython.org>
|
|
MP_BC_CALL_FUNCTION will leave the result on the Python stack, so that
result must be discarded by MP_BC_POP_TOP.
Signed-off-by: Damien George <damien@micropython.org>
|
|
|
|
This allows prototyping rfcore.c improvements from Python.
This was mostly written by @dpgeorge with small modifications to work after
rfcore_init() by @jimmo.
|
|
Before this change there was up to a 128ms delay on incoming payloads from
CPU2 as it was polled by SysTick. Now the RX IRQ immediately schedules the
PendSV.
|
|
Also explain what the payload fixup code is doing.
|
|
|
|
|
|
This is required to allow using WS firmware newer than 1.1.1 concurrently
with USB (e.g. USB VCP). It prevents CPU2 from modifying the CLK48 config
on boot.
Tested on WS=1.8 FUS=1.1.
See AN5289 and https://github.com/micropython/micropython/issues/6316
|
|
|
|
- Split tables and buffers into SRAM2A/2B.
- Use structs rather than word offsets to access tables.
- Use FLASH_IPCCDBA register value rather than option bytes directly.
|
|
|
|
This allows `ble.active(1)` to fail correctly if the HCI controller is
unavailable.
It also avoids an infine loop in the NimBLE event handler where NimBLE
doesn't correctly detect that the HCI controller is unavailable and keeps
trying to reset.
Furthermore, it fixes an issue where GATT service registrations were left
allocated, which led to a bad realloc if the stack was activated multiple
times.
|
|
MicroPython and NimBLE must be on the same core, for synchronisation of the
BLE ringbuf and the MicroPython scheduler. However, in the current IDF
versions (3.3 and 4.0) there are issues (see e.g. #5489) with running
NimBLE on core 1.
This change - pinning both tasks to core 0 - makes it possible to reliably
run the BLE multitests on esp32 boards.
|
|
|
|
The 2ms used previously was not long enough and it could lose HCI sync.
Also print error on tx failure to make this more obvious in the future.
|
|
|
|
Generally a controller should either have its own public address hardcoded,
or loaded by the driver (e.g. cywbt43).
However, for a controller that has no public address where you still want a
long-term stable address, this allows you to use a static address generated
by the port. Typically on STM32 this will be an LAA, but a board might
override this.
|
|
|
|
|
|
Changes `BLE.config('mac')` to return a tuple (addr_mode, addr).
Adds `BLE.config(addr_mode=...)` to set the addressing mode.
|
|
This commit adds support for using Bluetooth on the unix port via a H4
serial interface (distinct from a USB dongle), with both BTstack and NimBLE
Bluetooth stacks.
Note that MICROPY_PY_BLUETOOTH is now disabled for the coverage variant.
Prior to this commit Bluetooth was anyway not being built on Travis because
libusb was not detected. But now that bluetooth works in H4 mode it will
be built, and will lead to a large decrease in coverage because Bluetooth
tests cannot be run on Travis.
|
|
|
|
|
|
|