ae30a1e5aa
This PR refines the _bleio API. It was originally motivated by the addition of a new CircuitPython service that enables reading and modifying files on the device. Moving the BLE lifecycle outside of the VM motivated a number of changes to remove heap allocations in some APIs. It also motivated unifying connection initiation to the Adapter class rather than the Central and Peripheral classes which have been removed. Adapter now handles the GAP portion of BLE including advertising, which has moved but is largely unchanged, and scanning, which has been enhanced to return an iterator of filtered results. Once a connection is created (either by us (aka Central) or a remote device (aka Peripheral)) it is represented by a new Connection class. This class knows the current connection state and can discover and instantiate remote Services along with their Characteristics and Descriptors. Relates to #586
51 lines
1.8 KiB
Plaintext
51 lines
1.8 KiB
Plaintext
/*
|
|
GNU linker script for NRF52840 w/S140 6.x.x SoftDevice
|
|
|
|
MEMORY MAP
|
|
------------------------------------------------------------------------
|
|
START ADDR END ADDR SIZE DESCRIPTION
|
|
---------- ---------- ------- -----------------------------------------
|
|
0x000FF000..0x000FFFFF ( 4KB) Bootloader Settings
|
|
0x000FE000..0x000FEFFF ( 4KB) Master Boot Record Params
|
|
0x000F4000..0x000FDFFF ( 40KB) Bootloader (UF2 + CDC + OTA)
|
|
|
|
0x000ED000..0x000F3FFF (28KB ) Private Config Data (Bonding, Keys, etc.)
|
|
0x000AD000..0x000ECFFF (256KB) User Filesystem
|
|
0x00026000..0x000ACFFF (540KB) Application Code (including ISR vector)
|
|
0x00001000..0x00025FFF (148KB) SoftDevice
|
|
0x00000000..0x00000FFF (4KB) Master Boot Record
|
|
*/
|
|
|
|
|
|
/* Specify the memory areas (S140 6.x.x) */
|
|
MEMORY
|
|
{
|
|
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x100000
|
|
|
|
FLASH_ISR (rx) : ORIGIN = 0x00026000, LENGTH = 0x001000
|
|
FLASH_TEXT (rx) : ORIGIN = 0x00027000, LENGTH = 0x086000
|
|
FLASH_FATFS (r) : ORIGIN = 0x000AD000, LENGTH = 0x040000
|
|
|
|
/* 0x2000000 - RAM:ORIGIN is reserved for Softdevice */
|
|
/* SoftDevice 6.1.0 takes 0x1628 bytes (5.54 kb) minimum. */
|
|
/* To measure the minimum required amount of memory for given configuration, set this number
|
|
high enough to work and then check the mutation of the value done by sd_ble_enable. */
|
|
RAM (xrw) : ORIGIN = 0x20000000 + 16K, LENGTH = 256K - 16K
|
|
}
|
|
|
|
/* produce a link error if there is not this amount of RAM for these sections */
|
|
_minimum_stack_size = 2K;
|
|
_minimum_heap_size = 0;
|
|
|
|
/* top end of the stack */
|
|
|
|
/*_stack_end = ORIGIN(RAM) + LENGTH(RAM);*/
|
|
_estack = ORIGIN(RAM) + LENGTH(RAM);
|
|
|
|
/* RAM extents for the garbage collector and soft device init */
|
|
_ram_start = ORIGIN(RAM);
|
|
_ram_end = ORIGIN(RAM) + LENGTH(RAM);
|
|
_heap_end = 0x20020000; /* tunable */
|
|
|
|
INCLUDE "boards/common.ld"
|