- Tue Aug 16, 2011 10:35 pm
#131934
I'm trying to debug a weird issue by where my firmware resets itself whilst running on a MSP430F2274 - that is, it returns to the first line of assembler code labelled 'cstart_begin' in the disassembly.
If I put a breakpoint on the line of assembler code previous to cstart_begin, it never fires - hence it must be jumping to here.
To shed a bit more light on this, I have my own custom hardware PCB with a few chips hanging off the I2C bus. These I2C chips have a power rail which can be switched on/off via a MOSFET controlled by a single bit on PORT3 of the CPU. It's when I'm switching the I2C rail ON that the resets happen. Not every single time, just sometimes.
It's weird and I suspected a power surge issue, but I've tried various different PSUs and hence I'm pretty confident there is enough power. Although, I haven't yet scoped it to see if there is a spike.
However, the firmware behaviour seems weird. Why does it jump to cstart_begin? What makes it jump? Can anyone shed more light on this?
Thanks,
Stuart.
If I put a breakpoint on the line of assembler code previous to cstart_begin, it never fires - hence it must be jumping to here.
To shed a bit more light on this, I have my own custom hardware PCB with a few chips hanging off the I2C bus. These I2C chips have a power rail which can be switched on/off via a MOSFET controlled by a single bit on PORT3 of the CPU. It's when I'm switching the I2C rail ON that the resets happen. Not every single time, just sometimes.
It's weird and I suspected a power surge issue, but I've tried various different PSUs and hence I'm pretty confident there is enough power. Although, I haven't yet scoped it to see if there is a spike.
However, the firmware behaviour seems weird. Why does it jump to cstart_begin? What makes it jump? Can anyone shed more light on this?
Thanks,
Stuart.