diff options
-rw-r--r-- | sim/ft32/ChangeLog | 4 | ||||
-rw-r--r-- | sim/ft32/interp.c | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/sim/ft32/ChangeLog b/sim/ft32/ChangeLog index 29f661f..47218b4 100644 --- a/sim/ft32/ChangeLog +++ b/sim/ft32/ChangeLog @@ -1,3 +1,7 @@ +2015-09-29 James Bowman <james.bowman@ftdichip.com> + + * interp.c (cpu_mem_write): Do no write PM when locked. + 2015-09-22 James Bowman <james.bowman@ftdichip.com> * ft32/interp.c (cpu_mem_read): Call getchar when ea is 0x10000. diff --git a/sim/ft32/interp.c b/sim/ft32/interp.c index a20907c..c769ff7 100644 --- a/sim/ft32/interp.c +++ b/sim/ft32/interp.c @@ -205,8 +205,12 @@ static void cpu_mem_write (SIM_DESC sd, uint32_t dw, uint32_t ea, uint32_t d) cpu->state.pm_addr = d; break; case 0x1fc88: - /* Write to PM */ - ft32_write_item (sd, dw, cpu->state.pm_addr, d); + if (cpu->state.pm_unlock) + { + /* Write to PM. */ + ft32_write_item (sd, dw, cpu->state.pm_addr, d); + cpu->state.pm_addr += 4; + } break; case 0x1fffc: /* Normal exit. */ |