1. Remove M453. It is not to support in this commit.
2. Remove uvisor. It is incomplete and not to support in this commit.
3. Replace __disable_irq() with critical_section APIs.
The key 'release' in hal/targets.json is ambiguous. This changes the key
to 'release_versions' to emphasize that the entries should be version
numbers/strings and that it should be an array, not a singular value.
Previously, the condition for including a target in a release was decided
by a 'release' key being set to 'true' in hal/targets.json. This doesn't
have enough granularity when we release multiple versions of mbed. This PR
changes the 'release' key to an array of strings, where each member is a
version that the target supports. Currently the valid versions are '2' and
'5'.
This PR also adds more robust checking for invalid target configurations
in a release. This is enforced whenever the release list is built from the
data, preventing invalid targets from coming into the release.
Finally, it updates the build_release.py script to use the new api for
fetching release targets.
This commit adds two implementations for the mbed wait functions (wait,
wait_ms, wait_us):
- with the RTOS present, the wait functions will use `Thread::wait` for
millisecond delays and a busy wait loop for sub-millisecond delays.
- with the RTOS not present, the wait functions will always use a busy
wait loop.
The NRF5x driver transmits a byte by writing it to the uart data
register and then waiting for the TXRDY event indicating that this
byte was sent. If another UART interrupt comes in at the right time
the the UART ISR handler will process and clear the TXRDY event,
even though this interrupt is not enabled. This causes serial_putc
to get stuck waiting on an already cleared TXRDY.
This patch fixing the lockup by preventing the UART ISR from handling
the TXRDY event if this interrupt is not enabled.
Beetle board is built to optimize power consumption therefore does not
provide on-board LEDs.
This patch adds a comment in PinNames in order to clarify that the
Emulated LEDs are provided for compatibility reasons with the MBED test
suite.
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
With this change, we check for all-1s before executing erase. This means that
the cost of erasing a range is now proportional to the amount of sectors which
have been programmed. This should result in latency improvements in our use of
containers based on flash storage.
The RWW fix is controversial because it requires holding off interrupts for
periods of around 5ms at a time. But there were still some minor improvements
around that change which could be retained. This commit contains these
changes.
The LF clock initialization is already handled by the SystemInit function.
This code was causing troubles when run on targets with an alternate LF
clock.
MBED OS requires an us_ticker_read function that returns a 32bit
value in microseconds. This can not be represented directly on
the Beetle Timer Load register.
max_us_on_reg = (0xFFFFFFFF ticks)/DIVIDER_US
This patch introduces an intermediate layer that counts the timer wraps
around and returns the correct value of us to the MBED library.
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
MBED OS requires an lp_ticker_read function that returns a 32bit
value in microseconds. This can not be represented directly on
the Beetle Dual Timer Load register.
max_us_on_reg = (0xFFFFFFFF ticks)/DIVIDER_US
This patch introduces an intermediate layer that counts the timer wraps
around and returns the correct value of us to the MBED library.
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
Before, the following results in a compilation error:
const struct Object *obj;
void obj_doit(const Object *obj);
Callback<void()> cb(obj, obj_doit);
This is especially noticable when migrating from the old Thread
constructor, which previously _required_ const.
Short term fix for all cv qualifiers through a C cast:
void *_obj = (void*)obj;
the unified target for NRF51 has been renamed MCU_NRF51_UNIFIED and
hal implementation has been moved from TARGET_MCU_NRF51822 to
TARGET_MCU_NRF51822_UNIFIED.
In the process, the only real taget kept for NRF51 based targets is
NRF51_DK.
It is too risky at this stage to switch NRF51822 (16K target) to the new
softdevice. The overhead of the RTOS is already too huge.
those symbols are not used.
bootloader and log are not needed in our case, just remove files causing
troubles.
define app_timer symbols with the RTX implementation.
FunctionPointer/FunctionPointerArg0/FunctionPointerArg1 has been
replaced by the more flexible Callback template class.
For the motivation behind adopting the Callback class:
https://github.com/mbedmicro/mbed/pull/1783
Create the wrapper class SingletonPtr. This provides a safe way to
declare and use singletons. This class allows both the lazy
initialization of a singleton, and allows the singleton to be
garbage collected by the linker if it is never referenced.
This patch also updates the HAL to use SingletonPtr when declaring
singleton mutexes.