aboutsummaryrefslogtreecommitdiff
path: root/qtmips_gui
diff options
context:
space:
mode:
authorPavel Pisa <pisa@cmp.felk.cvut.cz>2019-03-04 15:30:11 +0100
committerPavel Pisa <pisa@cmp.felk.cvut.cz>2019-03-04 15:30:11 +0100
commit1dc09ab41ae703a1f15be87cacab5e842cf1a09d (patch)
tree392908ad6642e1ad5f9afa8c21998665a83534af /qtmips_gui
parentcd3a4b268a9b3d4d5436fee5de7967adb6f6e170 (diff)
downloadqtmips-1dc09ab41ae703a1f15be87cacab5e842cf1a09d.tar.gz
qtmips-1dc09ab41ae703a1f15be87cacab5e842cf1a09d.tar.bz2
qtmips-1dc09ab41ae703a1f15be87cacab5e842cf1a09d.zip
Implemented interrupt delivery and processing for serial port.
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Diffstat (limited to 'qtmips_gui')
-rw-r--r--qtmips_gui/coreview.cpp1
-rw-r--r--qtmips_gui/terminaldock.cpp4
-rw-r--r--qtmips_gui/terminaldock.h2
3 files changed, 5 insertions, 2 deletions
diff --git a/qtmips_gui/coreview.cpp b/qtmips_gui/coreview.cpp
index ce438ca..d21f7f2 100644
--- a/qtmips_gui/coreview.cpp
+++ b/qtmips_gui/coreview.cpp
@@ -109,6 +109,7 @@ CoreViewScene::CoreViewScene(machine::QtMipsMachine *machine) : QGraphicsScene()
NEW(Junction, mm.j_addr, 570, mem_data->connector_address()->y());
static QMap<std::uint32_t, QString> excause_map =
{{machine::EXCAUSE_NONE, "NONE"},
+ {machine::EXCAUSE_INT, "INT"},
{machine::EXCAUSE_BREAK, "BERAK"},
{machine::EXCAUSE_SYSCALL, "SYSCALL"},
{machine::EXCAUSE_HWBREAK, "HWBREAK"},
diff --git a/qtmips_gui/terminaldock.cpp b/qtmips_gui/terminaldock.cpp
index bb26952..3dfd457 100644
--- a/qtmips_gui/terminaldock.cpp
+++ b/qtmips_gui/terminaldock.cpp
@@ -63,12 +63,14 @@ TerminalDock::~TerminalDock() {
delete append_cursor;
}
-void TerminalDock::setup(const machine::SerialPort *ser_port) {
+void TerminalDock::setup(machine::SerialPort *ser_port) {
if (ser_port == nullptr)
return;
connect(ser_port, SIGNAL(tx_byte(uint)), this, SLOT(tx_byte(uint)));
connect(ser_port, SIGNAL(rx_byte_pool(int,uint&,bool&)),
this, SLOT(rx_byte_pool(int,uint&,bool&)));
+ connect(input_edit, SIGNAL(textChanged(QString)),
+ ser_port, SLOT(rx_queue_check()));
}
void TerminalDock::tx_byte(unsigned int data) {
diff --git a/qtmips_gui/terminaldock.h b/qtmips_gui/terminaldock.h
index 27dc617..47a4ece 100644
--- a/qtmips_gui/terminaldock.h
+++ b/qtmips_gui/terminaldock.h
@@ -50,7 +50,7 @@ public:
TerminalDock(QWidget *parent, QSettings *settings);
~TerminalDock();
- void setup(const machine::SerialPort *ser_port);
+ void setup(machine::SerialPort *ser_port);
public slots:
void tx_byte(unsigned int data);