I'm using S32K312 MCU that have a large Flash memory.

I created two BIN files operating in locations 0x00400000 and 0x00500000 respectively as Linker Script files after writing Bootloader code.
This bootloader code works with UART port and Erase and Write a BIN file to Flash area.
Two BIN files have the same image and only the Flash address is different.
Images operating on 0x00400000 operate by flashwriting using JTAG.
The image operating at 0x00400000 programs the BIN file to the location of 0x00500000 on FLASH through UART.
Verified that the contents of the BIN file and the contents of FLASH match.
Jump to the next 0x00500000 location.

Left view is on Text editor and right is S32DS debugger.
And last memory is below.

And then jump to application
FunctionPointer functionPtr = (FunctionPointer)(*(uint32 *)0x00500000);
(functionPtr )();
HardFault_Handler will occurr.

How do I jump to 0x00400000 or 0x00500000 position after completing Flash write with Bootloader?