OpenCores
URL https://opencores.org/ocsvn/riscv_vhdl/riscv_vhdl/trunk

Subversion Repositories riscv_vhdl

[/] [riscv_vhdl/] [trunk/] [debugger/] [src/] [gui_plugin/] [CpuWidgets/] [AsmArea.h] - Rev 5

Go to most recent revision | Compare with Previous | Blame | View Log

/**
 * @file
 * @copyright  Copyright 2016 GNSS Sensor Ltd. All right reserved.
 * @author     Sergey Khabarov - sergeykhbr@gmail.com
 * @brief      Disassembler viewer area.
 */
 
#pragma once
 
#include "api_core.h"   // MUST BE BEFORE QtWidgets.h or any other Qt header.
#include "attribute.h"
#include "igui.h"
#include "iservice.h"
#include "coreservices/isocinfo.h"
#include "coreservices/isrccode.h"
 
#include <QtWidgets/QWidget>
#include <QtWidgets/QTableWidget>
#include <QtGui/QResizeEvent>
 
namespace debugger {
 
class AsmArea : public QTableWidget,
                public IGuiCmdHandler {
    Q_OBJECT
public:
    explicit AsmArea(IGui *gui, QWidget *parent, uint64_t fixaddr);
    virtual ~AsmArea();
 
    /** IGuiCmdHandler */
    virtual void handleResponse(AttributeType *req, AttributeType *resp);
 
signals:
    void signalNpcChanged();
    void signalAsmListChanged();
    void signalBreakpointsChanged();
 
public slots:
    void slotNpcChanged();
    void slotAsmListChanged();
    void slotUpdateByTimer();
    void slotRedrawDisasm();
    void slotCellDoubleClicked(int row, int column);
 
protected:
    void resizeEvent(QResizeEvent *ev) Q_DECL_OVERRIDE;
    void wheelEvent(QWheelEvent * ev) Q_DECL_OVERRIDE;
 
private:
    bool isNpcTrackEna();
    int getNpcRowIdx();
    void selectNpcRow(int idx);
    void adjustRowCount();
    void outSymbolLine(int idx, AttributeType &data);
    void outAsmLine(int idx, AttributeType &data);
    void addMemBlock(AttributeType &resp, AttributeType &lines);
 
private:
    enum EColumnNames {
        COL_addrline,
        COL_code,
        COL_label,
        COL_mnemonic,
        COL_comment,
        COL_Total
    };
 
    AttributeType cmdReadMem_;
    AttributeType cmdRegs_;
    AttributeType asmLines_;
    AttributeType asmLinesOut_;
    QString name_;
    IGui *igui_;
 
    uint64_t fixaddr_;
    int selRowIdx;
    int hideLineIdx_;
    int lineHeight_;
    mutex_def mutexAsmGaurd_;
    uint64_t npc_;
    int visibleLinesTotal_;
    uint64_t startAddr_;
    uint64_t endAddr_;
    bool waitRegNpc_;
};
 
}  // namespace debugger
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.