void TBSharedData::read()
{
	// block here
	_armPort.Read();
	_arm = _armPort.Content()._current_position;
	_armFrame++;

	if (_headPort.Read(0))
	{
		_head = _headPort.Content();
		_headFrame++;
	}

	if (_targetTrackingPort.Read(0))
	{
		_target = _targetTrackingPort.Content();
		_targetFrame++;
	}
	if (_vergencePort.Read(0))
	{
		_vergence = _vergencePort.Content();	
		_vergenceFrame++;
	}

	_printStatus();
}
static void _next(struct CLIDebugger* debugger, struct CLIDebugVector* dv) {
	UNUSED(dv);
	if (debugger->d.currentBreakpoint) {
		if (debugger->d.currentBreakpoint->isSw && debugger->d.setSoftwareBreakpoint) {
			debugger->d.setSoftwareBreakpoint(&debugger->d, debugger->d.currentBreakpoint->address, debugger->d.currentBreakpoint->sw.mode, &debugger->d.currentBreakpoint->sw.opcode);
		}
		debugger->d.currentBreakpoint = 0;
	}
	ARMRun(debugger->d.cpu);
	_printStatus(debugger, 0);
}
static void _commandLine(struct Debugger* debugger) {
	struct CLIDebugger* cliDebugger = (struct CLIDebugger*) debugger;
	const char* line;
	_printStatus(cliDebugger, 0);
	int count = 0;
	HistEvent ev;
	while (debugger->state == DEBUGGER_PAUSED) {
		line = el_gets(cliDebugger->elstate, &count);
		if (!line) {
			return;
		}
		if (line[0] == '\n') {
			if (history(cliDebugger->histate, &ev, H_FIRST) >= 0) {
				_parse(cliDebugger, ev.str, strlen(ev.str) - 1);
			}
		} else {
			_parse(cliDebugger, line, count - 1);
			history(cliDebugger->histate, &ev, H_ENTER, line);
		}
	}
}
static void _reset(struct CLIDebugger* debugger, struct CLIDebugVector* dv) {
	UNUSED(dv);
	ARMReset(debugger->d.cpu);
	_printStatus(debugger, 0);
}
Beispiel #5
0
static void _reset(struct CLIDebugger* debugger, struct CLIDebugVector* dv) {
	UNUSED(dv);
	debugger->d.core->reset(debugger->d.core);
	_printStatus(debugger, 0);
}