Add new event type for ebreak, also report memory write error

This commit is contained in:
Hamid Rostami 2026-04-14 22:09:12 +01:00
parent 00f1a863f3
commit 1f7132e1e8
2 changed files with 9 additions and 0 deletions

View file

@ -309,6 +309,14 @@ uint32_t uvm32_run(uvm32_state_t *vmst, uvm32_evt_t *evt, uint32_t instr_meter)
setStatusErr(vmst, UVM32_ERR_MEM_RD);
setup_err_evt(vmst, evt);
break;
case 8:
setStatusErr(vmst, UVM32_ERR_MEM_WR);
setup_err_evt(vmst, evt);
break;
case 3: // ebreak
vmst->_ioevt.typ = UVM32_EVT_BREAK;
setStatus(vmst, UVM32_STATUS_PAUSED);
break;
default:
// unhandled exception
setStatusErr(vmst, UVM32_ERR_INTERNAL_CORE);

View file

@ -98,6 +98,7 @@ typedef enum {
typedef enum {
UVM32_EVT_ERR, /*! Error has occurred, details in uvm32_evt_t data.err field */
UVM32_EVT_SYSCALL, /*! A syscall has been requested, details in uvm32__evt_t data.syscall field */
UVM32_EVT_BREAK,
UVM32_EVT_END, /*! The program has ended by making a UVM32_SYSCALL_HALT */
} uvm32_evt_typ_t;