The S110 linker script is still using start address 0x16000, which was
required by version 7.1 of the s110 SoftDevice. Update it to the current
address, required by S110 v8.0.0.
LPC810 has only 4KB of flash, thus avoiding dead code is really nice.
Here the NVIC interrupt setup was pulled from the us_ticker code even
if no code is using timer events.
This also adds ARM_GCC support for TARGET_LPC81X.
LPC81X and LPC82X support Cortex M0+ VTOR register, so it is not
necessary to put non-init text at 0x200.
* Grouped SAMR21G18A specific files to its particular folder.
* Added files for all variants of SAMR21 and SAMD21.
* Removed Quick Start files from ASF.
* Added Target Dependency in port.c for PORT MASK.
* Grouped PWM pin implementation to SAMR21G18A folder.
* added more pins for external interrupt as per pio_samr21g18a.h
* updated serial_api.c for sanity checks, removed unused variables and other corrections.
Moved "stm32l1xx_hal_conf.h" to target folder. This file is part of
STM32CubeL1, and this is the way it is done for the 95 examples supplied
with STM32CubeL1. This file should be part of project(target) folder,
not API. On mbed, this has been done for TARGET_STM32F4 and
TARGET_STM32F7 targets (in ../targets/cmsis/TARGET_STM folder). All
targets in these two folders already have the "stm32l1xx_hal_conf.h"
file in the target folder.
Since some Nordic platforms don't use an external clock source, they
need to be built with the TARGET_NRF_LFCLK_RC flag. If they don't,
SystemInit will wait indefinitely for an external clock to start.
This patch adds a 1s timeout to the external oscillator initialisation,
and falls back to using the internal RC one if no LFCLKSTARTED event was
received in this interval.
For most applications, this won't matter. When building for the wrong
Nordic target, pin numbers will be mixed up as well and the application
will break later on.
But on targets that can only be updated using FOTA and don't have an
interface chip, this patch avoid ending up with a bricked device after a
slight mistake. Indeed, BLE DFU service is portable across all boards
and will run even with a mixed-up target setup, allowing the user to
re-install the right application.
An example scenario is transferring an application on a standalone
NRF51 chip, after spending some time prototyping on an mKIT, which tends
to happen a bit too often...
Signed-off-by: Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
Rather than indefinitely adding platforms to a #define list that use
the internal RC oscillator instead of an external crystal, let platforms
define this and the 'core code' can be platform agnostic.
Note, that this also allows people to use this symbol in libraries.
There's one notable example in the BLE_API that can now be refactored to
the same method, hopefully saving someone some unpleasant debugging
when their platform doesn't work because of a missing platform dependent
define in the high level API.
Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
This commit adds the ability for a compile flag to be set from targets.py
which changes the soft device to s110.
The compile flag is: MCU_NRF51_16K_S110. In order to avoid duplication
of the startup file, for the 16K parts we introduce an S110 or S130
scatter file. This means all 16K platforms must define
MCU_NRF51_16K
and ONE of
MCU_NRF51_16K_S110 or MCU_NRF51_16K_S130
Based on an earlier commit by Mihail but modified to avoid copy/paste
of the startup code for S110/S130
Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
This adds the BBC micro:bit platform, based on NRF51822
Initially, add the platform to use whatever version of softdevice is the
default for the NRF51822-based platforms.
Originally written by James, modified for new target inheritance by
Jonathan Austin:
Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>