> but we get so many of them, so we probably gets out of stack limits.
Isn't it frustrating that the hardware doesn't support checking for stack limit overflow? After all the PDP11 (which was the inspiration for the 68000 which begat the ColdFire) had this back in 1970.
Add a function to check your stack limit. Call it from the start of every interrupt service routine.
"So many of them...". But an interrupt routine shouldn't be able to be called while in the same service routine. These things shouldn't be re-entrant, and certainly not on limited-RAM machines. Add some tests for reentrancy (Check for a flag on entry to the routine, THEN set it, and clear on exit - fail if already set or simply return).
> We see noise on the D+, D- lines that should not be there, especially while connecting to USB charger without any communication.
I would expect noise. You're making intermittent high-current connections down cables right next to the data wires in the cable. Make sure you have the required resistors on those lines, but expect noise. Check it on other devices (that can be plugged into a charger) and see what they're seeing.