circuitpython/ports/nrf
Scott Shawcroft 8137e2d6d2
Switch all ports to auto-growing split heap
This simplifies allocating outside of the VM because the VM doesn't
take up all remaining memory by default.

On ESP we delegate to the IDF for allocations. For all other ports,
we use TLSF to manage an outer "port" heap. The IDF uses TLSF
internally and we use their fork for the other ports.

This also removes the dynamic C stack sizing. It wasn't often used
and is not possible with a fixed outer heap.

Fixes #8512. Fixes #7334.
2023-11-01 15:24:16 -07:00
..
bluetooth Switch all ports to auto-growing split heap 2023-11-01 15:24:16 -07:00
boards Switch all ports to auto-growing split heap 2023-11-01 15:24:16 -07:00
common-hal Switch to using MP_ERROR_TEXT instead of translate, globally 2023-10-30 09:49:06 +01:00
device/nrf52 more missing-prototypes fixes 2021-11-10 21:00:17 -06:00
freeze run code formatting script 2021-03-15 19:27:36 +05:30
nrfx@3f55e49eb1 update nrfx submodule to v2 2019-12-18 15:39:11 +07:00
peripherals/nrf Switch to using MP_ERROR_TEXT instead of translate, globally 2023-10-30 09:49:06 +01:00
supervisor Switch all ports to auto-growing split heap 2023-11-01 15:24:16 -07:00
.gitignore remove redundant port/*/.gitignore; cleanup others 2022-10-01 11:52:36 -04:00
background.c Fix ticks 2023-04-07 09:49:51 -07:00
background.h Add Bangle.js 2, JDI memory displays and ACeP epd 2023-02-15 15:03:40 -08:00
espruino_dfu_private_key.pem Add Bangle.js 2, JDI memory displays and ACeP epd 2023-02-15 15:03:40 -08:00
gccollect.c run code formatting script 2021-03-15 19:27:36 +05:30
ld_defines.c run code formatting script 2021-03-15 19:27:36 +05:30
Makefile Switch to gcc 12.3 for arm32 2023-10-17 11:43:38 -07:00
mpconfigport.h MP_REGISTER_ROOT_POINTER for port-specific root pointers 2023-09-29 15:46:42 -04:00
mpconfigport.mk initial v1.19.1 merge; not compiled yet 2023-08-01 13:50:05 -04:00
mphalport.h Merge tag 'v1.17' into merge-1.17 2021-10-15 08:20:54 -05:00
nrfx_config.h nrf/nrfx_config: Use UARTE for nrf52xxx devices. 2023-04-05 10:00:06 +10:00
nrfx_glue.h nrf/modules/nrf: Add function to enable/disable DCDC. 2021-08-09 14:55:59 +10:00
nrfx_log.h all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
qstrdefsport.h nrf/qstrdefsport.h: Add entries for in-built FS mount points. 2021-08-08 23:17:49 +10:00
README.md Fix docs build by splitting out support matrix 2023-10-24 16:20:51 -07:00
sd_mutex.c Switch to using MP_ERROR_TEXT instead of translate, globally 2023-10-30 09:49:06 +01:00
sd_mutex.h run code formatting script 2021-03-15 19:27:36 +05:30

Nordic Semiconductor nRF52 Series

This is a port of CircuitPython to the Nordic Semiconductor nRF52 series of chips.

Note

: There are board-specific READMEs that may be more up to date than the generic board-neutral documentation below.

Flash

Some boards have UF2 bootloaders and can simply be flashed in the normal way, by copying firmware.uf2 to the BOOT drive.

For some boards, you can use the flash target:

make BOARD=pca10056 flash

Segger Targets

Install the necessary tools to flash and debug using Segger:

JLink Download

nrfjprog linux-32bit Download

nrfjprog linux-64bit Download

nrfjprog osx Download

nrfjprog win32 Download

note: On Linux it might be required to link SEGGER's libjlinkarm.so inside nrfjprog's folder.

DFU Targets

run follow command to install adafruit-nrfutil from PyPi

$ pip3 install --user adafruit-nrfutil

make flash and make sd will not work with DFU targets. Hence, dfu-gen and dfu-flash must be used instead.

  • dfu-gen: Generates a Firmware zip to be used by the DFU flash application.
  • dfu-flash: Triggers the DFU flash application to upload the firmware from the generated Firmware zip file.

When enabled you have different options to test it: