Releases: ARMmbed/uvisor
Releases · ARMmbed/uvisor
Stack fault recovery
New features:
- Recovery from stack faults.
- Allow nested faults when handling SVCalls (allowed: MemManage and Bus faults).
- More detailed blue screens.
Improvements:
- All entry points unified to a single API table.
- vMPU code refactored.
- Automatic source code listing in build system.
Atomic Thread Switch
Merge pull request #341 from niklas-arm/fix/atomic_thread_switch Wrap thread_switch in an atomic section
Alpha-level support for Keil RTX on mbed OS
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.
Fix hanging applications when uVisor is disabled
Applications running on platforms where uVisor is supported but disabled were hanging in debug mode, due to some spurious debug messages printed by uVisor.
This release fixes that bug.
Swap uvisor and uvisor-lib
Main changes
- ARMmbed/uvisor-lib is not a submodule of ARMmbed/uvisor any more.
- All APIs are now put in a centralized folder —
api
. - The uVisor binary is now released as a static library which includes the compiled uVisor APIs as well.
- As a result, uVisor is now de-coupled from the host OS. uvisor-lib is the glue layer needed to integrate the uVisor in mbed OS and yotta. Read the updated documentation for more details.
API changes
- Removed
vIRQ_SetVectorX
. UsevIRQ_SetVector
, instead.
Bug fixes
- Check for an uninitialized debug box.
- Prevent null handlers in the debug box driver.
- Distinguish between checks on public flash and physical flash.
- Avoid dependency on reset value of MPU RNR register.
- Restore priority bits when writing to the NVIC IP register.
v0.10.0 — A hardware-independent uVisor
Improved build system
- Reduced need for hardware-specific details.
- Introducing uVisor configurations: The set of hardware-specific details that
defines a single uVisor release binary. - New centralized build system. A single
make
in the top folder builds all
configurations for all platforms in release and debug mode.
New platforms
- Now supporting the whole Cortex-M3 and Cortex-M4 based EFM32 family from
Silicon Labs.
New features
- New APIs to read current box ID and caller box ID.
- New concept of box namespaces.
- Add context switching features in
UVISOR_DISABLED
mode. - Extended SVCall handler table.
- Global vMPU configurations for ARMv7-M: Shared vs. Standalone SRAM.
- Make ACLs optional in secure box configuration.
- [prototype] Debug boxes.
Bug fixes
- Disable IRQ when releasing it.
- Reset box contexts at initialization (ARMv7-M MPU driver).
- Ensure asm operands are not optimized out in memory access macros.