Refactor the architecture layer
The architecture layer has been refactored to better improve readability and maintainability, as well as to increase flexibility in order to support different base architectures.
The ARMv7-M architecture implementation has also been adjusted to use CMSIS instead of custom variations of the same functionality.
@manojkumar-arm, @omasab, @masahisak, @tusharkhandelwal2: this is a potentially breaking change for ARMv7-M platforms that do not use the bootloader
module to manage the transition from a ROM firmware to a RAM firmware. If your platform meets this criteria, please ensure your platform is still able to boot after applying this patch.
If booting fails after applying this PR, make sure that your platform's bootloader logic sets the vector table offset register (SCB->VTOR
) to the vector table of your RAM firmware binary before jumping to its entrypoint. Both the msys_rom
and isys_rom
modules already do this for platforms using these modules as they use the bootloader
module to load the firmware.