puntos de interrupción de hardware son los comparadores realidad, la comparación de la PC actual con la dirección en el comparador (cuando está activado). Los puntos de interrupción de hardware son la mejor solución al establecer puntos de interrupción.Normalmente se establece a través de la sonda de depuración (utilizando JTAG, SWD, ...). La desventaja de los puntos de interrupción del hardware: son limitados. Las CPU tienen solo un número limitado de puntos de interrupción de hardware (comparadores). La cantidad de puntos de interrupción de hardware disponibles depende de la CPU. Los núcleos ARM 7/9 tienen 2, dispositivos ARM modernos (Cortex-M 0,3,4) entre 2 y 6, x86 usualmente 4.
Los puntos de interrupción del software se establecen de hecho sustituyendo las instrucciones para ser breakpoints con un instrucción de punto de interrupción. La instrucción de punto de interrupción está presente en la mayoría de las CPU, y generalmente tan corta como la instrucción más corta, por lo que solo un byte en x86 (0xcc, INT 3). En las CPU Cortex-M, las instrucciones son de 2 o 4 bytes, por lo que la instrucción de punto de interrupción es una instrucción de 2 bytes.
Los puntos de interrupción del software se pueden establecer fácilmente si el programa está ubicado en la RAM (como en una PC). Muchos sistemas integrados tienen el programa ubicado en la memoria flash. Aquí no es tan fácil intercambiar las instrucciones, ya que el flash necesita ser reprogramado, por lo que los puntos de corte de hardware se usan principalmente. La mayoría de las sondas de depuración solo admiten puntos de corte de hardware si el programa está ubicado en la memoria flash. Sin embargo, algunos (como el J-Link de SEGGER) permiten la reprogramación de la memoria flash con la instrucción de punto de interrupción y permiten una cantidad ilimitada de puntos de interrupción (de software) incluso cuando se depura un programa ubicado en el flash.
More info about software breakpoints in flash memory
¡Ah, entonces no podemos tener interrupciones de hardware ilimitadas! Ok, entonces, incluso si los puntos de interrupción del software son lentos, ¡no tenemos otra opción! Gracias, el enlace se ve bien. –
+1: nynaeve es uno de los mejores blogs de RE en la red IMO :) – Necrolis
@TheIndependentAquarius Técnicamente, no puede tener _unlimited_ puntos de interrupción del software;) –