tilib: fixed hangs and crashes on startup/exit.

This commit is contained in:
Daniel Beer 2011-10-18 11:28:53 +13:00
parent f18b0c188b
commit d610f6471a
1 changed files with 6 additions and 1 deletions

View File

@ -317,6 +317,8 @@ static int refresh_bps(struct tilib_device *dev)
report_error(dev, "MSP430_EEM_SetBreakpoint");
return -1;
}
bp->flags &= ~DEVICE_BP_DIRTY;
}
return 0;
@ -397,7 +399,7 @@ static void tilib_destroy(device_t dev_base)
struct tilib_device *dev = (struct tilib_device *)dev_base;
printc_dbg("MSP430_Run\n");
if (dev->MSP430_Run(RUN_TO_BREAKPOINT, 1) < 0)
if (dev->MSP430_Run(FREE_RUN, 1) < 0)
report_error(dev, "MSP430_Run");
printc_dbg("MSP430_Close\n");
@ -507,6 +509,9 @@ static int do_init(struct tilib_device *dev, const struct device_args *args)
return -1;
}
/* Without this delay, MSP430_OpenDevice will often hang. */
usleep(1000000);
printc_dbg("MSP430_OpenDevice\n");
if (dev->MSP430_OpenDevice("DEVICE_UNKNOWN", "", 0, 0, 0) < 0) {
report_error(dev, "MSP430_OpenDevice");