aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sim/ft32/ChangeLog4
-rw-r--r--sim/ft32/interp.c8
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. */