Have you tried changing the internal battery? It's like the size of a watch battery, in the battery compartment on one of the edges, when mine (Rebel- 300D) stopped popping up I had to change it, that didn't work & then I had to send it for repairs.

But it came back, lovely, for about $200, I think was the damage!
& then I upgraded to a 40D & just kept that for backup. I rarely use flash/popup or otherwise now.