Hi Vinayak
You need to execute the CommandLaunch() routine from SRAM and not from Flash. Generally you also need to ensure that interrupts are disabled when it is executing.
Beware that
status = FlashErase(flash_addr_ptr,sizeof(myData));
doesn't match your prototype
U32 FlashErase(U32 block_start);
so your compiler should be giving your warnings or errors.
I have attached the Flash driver from the uTasker project which supports all KE,KV,KW,KL,K parts flash and includes program-once, flash swap, parameter storage, as well as KE EEPROM as reference of how to do it generically without needing drivers for each type.
If used within the uTasker project with Kinetis simulator it will also accurately emulate Flash operation and inform of any incorrect usage or other violations.
As comparison, you can also load the following image to your board and experiment with flash writing, sector erasure etc.
http://www.utasker.com/kinetis/FRDM-KL43Z.html
Commands (on the OpenSDA UART at 115k) are explained in http://www.utasker.com/kinetis/KE_EEPROM.html whereby the same interface can be used for EEPROM or Flash.
Regards
Mark