I'm using Keil scatter file to put my bootloader @0x08000000, application @0x08010000, boot_tag @0x0800FE00, my bootloader firmware works, it print out application sp and reset_handler before call jump_to_app(), those to values match with .map file, but, application firmware not start ?
Which optimization are you using?
Please read our knowledgebase article: https://developer.arm.com/documentation/ka002218/latest/
There are more things to consider than just the SP and the start address of the application.