avr_gdb_init(avr);
}
if (!avr->gdb)
- exit(1); // no gdb ?
+ avr->state = cpu_Crashed;
}
static void _avr_io_command_write(struct avr_t * avr, avr_io_addr_t addr, uint8_t v, void * param)
if (avr->state == cpu_Sleeping) {
if (!avr->sreg[S_I]) {
- printf("simavr: sleeping with interrupts off, quitting gracefully\n");
+ if ( avr->log_level) printf("simavr: sleeping with interrupts off, quitting gracefully\n");
avr_terminate(avr);
- exit(0);
+ avr->state = cpu_Done;
+ return;
}
/*
* try to sleep for as long as we can (?)
if (avr->state == cpu_Sleeping) {
if (!avr->sreg[S_I]) {
- printf("simavr: sleeping with interrupts off, quitting gracefully\n");
+ if ( avr->log_level) printf("simavr: sleeping with interrupts off, quitting gracefully\n");
avr_terminate(avr);
- exit(0);
+ avr->state = cpu_Done;
+ return;
}
/*
* try to sleep for as long as we can (?)