Hi,
    The function arm_simulate_step has bugs.
    It would read load address twice if dry_run_pc not NULL when step. No 
matter for RAM,but it may cause hardware feature error when read SFR.
 
suggested :
arm_simulator.c
 
line 536
if((!dry_run_pc) || (instruction.info.load_store.Rd == 15))
{
  if((retval = target_read_u32(target, load_address, &load_value)) != ERROR_OK)
    {
      return retval;
    }
}
 
line 602
for (i = 0; i < 16; i++)
{
   if (instruction.info.load_store_multiple.register_list & (1 << i))
   {
     if((!dry_run_pc) || (i == 15))
     {
       target_read_u32(target, Rn, &load_values[i]);
     }
     Rn += 4;
   }
}
 
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to