I want to develop mass storage device using LPC2148.I am just referring code from Keil for USBMem. My problem is - I get Get_descriptor command from PC to which I respond with device descriptor. On receiving 8th byte it generates Reset. Then I get Set_address command. On response to it, I execute Set Address command in protocol engine. Then again I get Get_descriptor command (It should actually have index field of 18 but I receive with 64). Again after 8th byte it generates Reset and again gives Set_address command instead of Get_descriptor command for Configuration descriptor. What can be the problem?
Actually, this can be a silly question, but in Keil program, why they don't face problem of interrupt within interrupt?
Because nested interrupts are disabled by default. This is not a silly question; it just shows that you need to read somewhat more. Try an ARM (7) architecture guide.
"Because nested interrupts are disabled by default."
They're not disabled; standard ARM(7) architecture doesn't have direct support per se. You have to insert code to provide the facility.