I have a project that is exported from mbed SDK to e2 studion (with gcc arm toolchain version 4.9.3). I am trying to adapt this to work with my own BL that is based on RZ_A1H_QSPI_LOADER. Because of this I have changed the linker script to move the base (isr_vectors) to higher address (0x18010200). Also I am not using the bootloader that is part of the mbed projects (mbed_sf_boot). My BL calls the entry point in isr_vector and then the app goes through the Reset_Handler function in Startup_RZA1H.S. This moves through the VFP and NEON initialization and switch on code that is part of this function. The problem that I face now is that later in my code, at the first point where I use floating point calculation, I get exception at assembly instruction "VLDR". This probably means that VFP is not accessable or working. The code runs fine if I use the default linker script as in the original exported project (that starts with mbed_sf_boot). I am wondering if this issue is related to the RZ_A1H_QSPI_LOADER - maybe it behaves differently to the mbed_sf_boot - something that should enabled is not or the opposite - something that is expected to not be enabled is already initialized. Edit: ops, I see that this is intended - they use "lazy" VFP initialization on first usage (through the exception). I will keep on researching.
↧