Hi Vishal,
My comments step-by-step are:
1) 2) 3) - are ok
4) This is normal because at the previous steps you used the explication downloaded in a volatile memory (RAM). When a ROM launch is used this will attach to the target and you can debug an application who just boot up from a flash device (non-volatile memory).
5) Flash Programmer cannot run using a ROM configuration. For running the FP you'll need a memory already initialized, that's why is mandatory to use SRAM or RAM Download launches.
6) You can program any application, but before that make sure you erased the desired zone from flash.
7) Just after you'll flash the application using FP + RAM target, you'll be able to debug it using next steps:
a. attach using ROM target
b. Reset using CW
c. You're now at the entry_point of your app (with PC = 0xffff_fffc).
Another mandatory step - note that an application which is running from RAM memory will not run just as it is from flash! There are different reasons:
1. There are some specific initialization flows for every specific memory: flash vs RAM
2. The memory addresses from elf need to be different/ specific per memory where you want to execute your app.
3. Depends by your application this can be relocated to RAM (all the code + data (like the u-boot) or only the data) - please take a look in our ROM app from stationary project to see the differences between it and the RAM on.
Thank you,
Marius