<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 17, 2023 at 7:11 AM Kinsey Moore <<a href="mailto:kinsey.moore@oarcorp.com">kinsey.moore@oarcorp.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 16, 2023 at 9:42 PM Chris Johns <<a href="mailto:chrisj@rtems.org" target="_blank">chrisj@rtems.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 17/8/2023 6:30 am, Kinsey Moore wrote:<br>
> The current ARM support in libdebugger does not cover Cortex-M series<br>
> cores since it requires support for CP14 system register accessor<br>
> instructions. Cortex-M series cores support debug monitor mode, but its<br>
> configuration is accessed by memory mapped registers instead of using<br>
> CP14. This omits building libdebugger from BSPs that use a cortex-m ABI<br>
> flag.<br>
<br>
The ARM libdebugger has support to use memory mapped registers. It is determined<br>
 by the ROM and then rtems_debugger_arm_debug_registers. I think the code<br>
currently assume CP14 instructions but I think that could be made conditional<br>
where needed?<br>
<br>
Are these builds of Cortex-M processors able to support libdebugger?<br>
<br>
I have been rejecting changes like this unless there is a reason it cannot be<br>
made to work. Are there reasons it cannot be made to work?<br></blockquote><div><br></div><div>As to my current understanding, I believe that the Cortex-M3/4/7 cores can support libdebugger via their exclusive monitor mode. I'll see if I can work around the CP14 issues instead.</div></div></div></blockquote><div><br></div><div>Reading into the relevant Architecture and Technical reference manuals, the ROM tables in the Cortex-M cores do not expose information about the debug and data watchpoint blocks. It looks like all the breakpoint (0xE0002000) and watchpoint (0xE0001000) controls are the same IP at the same address across the Cortex-M line, but are in no way compatible with the CP14-based breakpoint and watchpoint blocks in the Cortex-A/R lines of cores. The Cortex-M cores require a nearly unrelated libdebugger implementation.</div><div><br></div><div>Kinsey<br></div></div></div>