13 * @brief Abstraction for analyzers
15 * Analyzers can be inserted into the core and all
16 * changes in the state of the core are reported to it.
20 Analyzer(Core
*core
) : core(core
) {}
21 virtual ~Analyzer() {}
24 virtual void reset(unsigned int /*type*/) {}
25 virtual void trace(dword
/*address*/) {}
26 virtual void step(lword
/*ticks*/) {}
29 virtual void readRegister(unsigned int /*r*/, byte
/*val*/) {}
30 virtual void writeRegister(unsigned int /*r*/, byte
/*val*/) {}
31 virtual void readByte(unsigned int /*addr*/, byte
/*val*/) {}
32 virtual void writeByte(unsigned int /*addr*/, byte
/*val*/) {}
33 virtual void readFlash(unsigned int /*addr*/, byte
/*val*/) {}
34 virtual void writeFlash(unsigned int /*addr*/, word
/*data*/) {}
35 virtual void fetchOperand(word
/*val*/) {}
38 virtual void push(byte
/*val*/) {}
39 virtual void pop(byte
/*val*/) {}
40 virtual void jump(dword
/*address*/, bool /*push*/) {}
41 virtual void skip() {}
42 virtual void call(dword
/*address*/, bool /*push*/) {}
43 virtual void ret(bool /*interrupt*/) {}
46 virtual void sleep(unsigned int /*mode*/) {}
47 virtual void systemBreak() {}
48 virtual void interrupt(unsigned int /*vector*/, unsigned int /*addr*/) {}
59 * @brief Factory for analyzers
61 * A factory for creating analyzers based on their name.
63 class AnalyzerFactory
{
66 * Build a new analyzer with name \e name
68 static Analyzer
*newAnalyzer(Core
*core
, const char *name
);
70 #ifdef ENABLE_SCRIPTING
73 * Set the scriptengine to use when creating scripting analysers
75 static void setScriptEngine(ScriptEngine
*vm
);
78 static ScriptEngine
*vm
;
84 #endif /*AVR_ANALYZER_H*/