KoMo2  1.0.0
A modern ARM emulator GUI.
kcmd.h
1 
11 #include <array>
12 #include <string>
13 
18 enum class ClientState : unsigned char {
19  NORMAL = 0X00,
20  BUSY = 0X01,
21  BREAKPOINT = 0X41,
22  MEMFAULT = 0X43,
23  FINISHED = 0X44,
24  RUNNING = 0X80,
25  RUNNING_SWI = 0x81,
26  STEPPING = 0X82,
27  BROKEN = 0x30,
28 };
29 
36 inline unsigned char operator|(ClientState l, unsigned char r) {
37  return static_cast<unsigned char>(l) | r;
38 }
39 
45 namespace Jimulator {
50 class MemoryValues {
51  public:
55  u_int32_t address;
59  std::string hex;
63  std::string disassembly;
67  bool breakpoint = false;
68 };
69 
70 // ! Reading data
71 
72 const ClientState checkBoardState();
73 const std::array<std::string, 16> getJimulatorRegisterValues();
74 std::array<Jimulator::MemoryValues, 13> getJimulatorMemoryValues(
75  const uint32_t s_address_int);
76 const std::string getJimulatorTerminalMessages();
77 
78 // ! Loading data
79 
80 void compileJimulator(std::string pathToBin,
81  const char* const pathToS,
82  const char* const pathToKMD);
83 const bool loadJimulator(const char* const pathToKMD);
84 
85 // ! Sending commands
86 
87 void startJimulator(const int steps);
88 void continueJimulator();
89 void pauseJimulator();
90 void resetJimulator();
91 const bool sendTerminalInputToJimulator(const unsigned int val);
92 const bool setBreakpoint(const uint32_t address);
93 } // namespace Jimulator
unsigned char operator|(BoardInstruction l, unsigned char r)
Performing an or between a BoardInstruction and an unsigned char.
u_int32_t address
The address of the memory value.
Definition: kcmd.h:55
Groups together functions that make up the Jimulator API layer - these functions and classes are used...
Definition: kcmd.h:45
void resetJimulator()
Reset the emulators running.
Definition: kcmd.cpp:363
const bool setBreakpoint(const uint32_t address)
Sets a breakpoint.
Definition: kcmd.cpp:372
void pauseJimulator()
Pauses the emulator running.
Definition: kcmd.cpp:356
void startJimulator(const int steps)
Commences running the emulator.
Definition: kcmd.cpp:335
const bool sendTerminalInputToJimulator(const unsigned int val)
Sends terminal information to Jimulator.
Definition: kcmd.cpp:499
const bool loadJimulator(const char *const pathToKMD)
Clears the existing source object and loads the file at pathToKMD into Jimulator. ...
Definition: kcmd.cpp:326
A class that returns all of the information associated with a single row of a memory window...
Definition: kcmd.h:50
void compileJimulator(const char *const pathToBin, const char *const pathToS, const char *const pathToKMD)
Runs pathToS through the associated compiler binary, and outputs a .kmd file at pathToKMD.
std::string disassembly
What the actual .s file says on this line.
Definition: kcmd.h:63
void continueJimulator()
Continues running Jimulator.
Definition: kcmd.cpp:346
std::string hex
A hexadecimal representation of what is stored in that memory value.
Definition: kcmd.h:59
std::array< Jimulator::MemoryValues, 13 > getJimulatorMemoryValues(const uint32_t s_address_int)
Get the memory values from Jimulator, starting to s_address.
Definition: kcmd.cpp:525
const ClientState checkBoardState()
Check the state of the board - logs what it is doing.
Definition: kcmd.cpp:422
const std::string getJimulatorTerminalMessages()
Reads for messages from Jimulator, to display in the terminal output.
Definition: kcmd.cpp:470
const std::array< std::string, 16 > getJimulatorRegisterValues()
Queries a register in Jimulator to get it&#39;s current value.
Definition: kcmd.cpp:453