Hello Diana
I created 3 different projects in s32 design studio,
1) Proj1: S32K148_bootloader_primary - used to select the bootloader proj1 or bootloader proj2
with below memory map:
/* Flash */
m_interrupts (RX) : ORIGIN = 0x00000000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x00000400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x10000000, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader */
Also refer the attached image 
2) Proj2: Bootloader 1 with below memory map.
/* Flash */
m_interrupts (RX) : ORIGIN = 0x10001000, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x10001400, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x10001410, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader *
3) Proj3: Bootloader 2 with below memory map.
/* Flash */
m_interrupts (RX) : ORIGIN = 0x10002410, LENGTH = 0x00000400
m_flash_config (RX) : ORIGIN = 0x10002810, LENGTH = 0x00000010
m_text (RX) : ORIGIN = 0x10002820, LENGTH = 0x00001000 /* Only 4 kB are allowed for the bootloader */
During debugging(via s32 design studio and openSDA), SP and PC registers are loaded with invalid address.
Refer the screen shot.

Any idea why the address(0x10001000) are become invalid after calling the function JumpToBootLoader()?
or method of flashing is not correct?