This release brings the support of Keil RTX with uVisor on mbed OS, plus
several other improvements.
**New features**
* Integration in Keil RTX in mbed OS.
* Secure dynamic allocation APIs.
* Box initialization routines.
* Register gateway.
* vMPU recovery generalized for both Kinetis and ARMv7-M MPUs.
* APIs for per-box interrupts disablement and re-enablement.
**Work in progress**
* Remote Procedure Call (RPC). New API signatures have been published.
* The alpha-level implementation will follow soon.
**Deprecated features**
* Secure gateway. Cross-box communication will be implemented with RPC
* gateways.
**Bugfixes**
* Several ARMv7-M-specific bug fixes.
* Fixed a bug that sent the device into lock-up after a hard fault.
* Fixed checks on revision numbers for Cortex-M devices.
**Miscellaneous improvements**
* Optimized memory protection for ARMv7-M devices with shared SRAM.
* Build artifacts are grouped into the target/build
* option/configuration-specific folder.
* Documents have been grouped into API vs. core documents.
* Improved style and consistency.
This commit updates the uVisor libraries following the following fix:
* ARMmbed/uvisor@767e794 "K64F vMPU: Use the MPU fault address"
The bug made some release builds of the uVisor example halt because of
an imprecise bus fault not correctly handled by uVisor internally.
The change only affects targets where `FEATURE_UVISOR` and
`UVISOR_SUPPORTED` are defined.
The configuration file at the moment only contains the CMSIS NVIC
virtualization macros. When FEATURE_UVISOR is set, we turn on CMSIS NVIC
virtualization automatically.
This removes the need for users to specify the macros themselves.
If UVISOR_SUPPORTED is set as well, the NVIC macros are turned into vIRQ
ones, otherwise they stay NVIC as usual, thanks to the fallback
implementation provided by `unsupported.h`.
Now there is no need any more to specify the UVISOR_PRESENT symbol from
the mbed command line tools. By using a target that has UVISOR_SUPPORTED
has a label, the uVisor-internal UVISOR_PRESENT symbol will be set
automatically.
Add the memory management code from uVisor to a shared location that is
suitable for both supported and unsupported use. To do this, we copy all
the RTX-specific files from the RTX folders in uVisor.
Note that the page allocator code is so identical between uVisor supported
and unsupported mode that we can copy the file as-is from uVisor for use on
unsupported targets. This commit performs that copying, to a file called
page_allocator.c_inc, which is included from unsupported_page_allocator.c
only for targets where uVisor is not present.