For the application(firmware) booted by bootloader(OTA),
the image doesn't need the "flash_config" and "ivt" header.
So update the link file to support both kinds of application
(firmware) booted by bootROM and bootloader.
In default, the compilation will get the image with
"flash_config" and "ivt" header, for example the bootloader
compiling.
When compiling the OTA application image, please add the
line as below in the mbed_app.json file.
"target.macros_add" : ["MBED_APP_COMPILE"]
This will remove the "flash_config" and "ivt" header in the
final image.
Signed-off-by: Gavin Liu <gang.liu@nxp.com>
Update the flash driver to support both Hyper Flash
and QSPI Flash.
In addition, the static function cannot be linked to
SRAM even defined by AT_QUICKACCESS_SECTION_CODE macro.
So remove all "static" modifier for the FLASHIAP
functions.
Signed-off-by: Gavin Liu <gang.liu@nxp.com>
The memset function from c library will be linked in flash
space, it's risk for FLASHIAP. So I wrote flexspi_memset
to replace the memset for IMX FLASHIAP, and put the function
into targets/.../TARGET_IMX/flash_api.c file. All IMX Soc
platforms can declare it as extern and use in their Soc
flexspi driver files.
Signed-off-by: Gavin Liu <gang.liu@nxp.com>
The flash access may fail when implementing flash
initialization. So there is risk for interrupt handler
which linked in flash space.
Add the critical section to avoid the risk.
Signed-off-by: Gavin Liu <gang.liu@nxp.com>
NXP MIMXRT1050 EVK can support Hyper Flash or QSPI Flash with
small hardware reworks. Modify the XIP file to support boot
from the two kinds of Flash device. The Hyper Flash should be
the default device and defined in tartgets.json with the macro
"HYPERFLASH_BOOT". To select the QSPI Flash, just remove the
macro with the below line in any overriding json file.
"target.macros_remove" : ["HYPERFLASH_BOOT"]
Signed-off-by: Gavin Liu <gang.liu@nxp.com>
In case when target.mbed_ram_start and target.mbed_ram_size are not set
neither in targets.json nor in mbed_app.json, the IRAM1 region values
defined in tools/arm_pack_manager/index.json are passed by Mbed CLI as
the linker script preprocessing flags. As a result, wrong addresses of
MBED_RAM_START and MBED_RAM_SIZE are defined in the linker script since
CMSIS DFP pack has no information about RAM split between CM0+ and CM4 applications.
Set the values explicitly in targets.json to ensure the correct RAM layout.
The MBED_ROM_START and MBED_ROM_SIZE provided by CMSIS DFP are already
correct since the linker scripts places CM4 vector table at MBED_APP_START,
taking into account the flash application area of the CM0+ prebuilt application.