<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>MCX MicrocontrollersのトピックMCX-A346: RAM-based Vector Table Results in HardFault</title>
    <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCX-A346-RAM-based-Vector-Table-Results-in-HardFault/m-p/2177435#M4125</link>
    <description>&lt;P&gt;I have a RAM-based vector table, properly initialised with valid vectors to handlers in flash memory. Upon executing an SVC instruction, the exception handling escalates to HardFault. It appears that fetching the SVC handler address (LSB set) from the vector table fails. The HardFault handler, though, then does get properly fetched and executed. In this handler, I read the following values.&lt;/P&gt;&lt;P&gt;stack pointer:&lt;BR /&gt;SP 0x20027E68&lt;/P&gt;&lt;P&gt;EXC_RETURN 0xFFFFFFA8&lt;/P&gt;&lt;P&gt;stacked LR, PC, and XPSR:&lt;BR /&gt;LNKst 0x00004523&lt;BR /&gt;PCst 0x00004468&lt;BR /&gt;XPSRst 0x69000000&lt;/P&gt;&lt;P&gt;registers:&lt;BR /&gt;VTOR 0x20020000&lt;BR /&gt;SHCSR 0x00070004&lt;BR /&gt;CFSR 0x00000000&lt;BR /&gt;HFSR 0x40000000&lt;/P&gt;&lt;P&gt;HFSR indicates a forced (escalated) HardFault.&lt;/P&gt;&lt;P&gt;This is on the bare metal, without the SDK. RAM C0 is used for the test set-up, with the vector table at the bottom and the stack at the top. The (test) SVC handler is minimal, just an infinite loop. I have tested with 45, 60, and 180 MHz system clocks (FIRC, OD core voltage for higher clock rates).&lt;/P&gt;&lt;P&gt;What am I missing? Thanks!&lt;/P&gt;</description>
    <pubDate>Mon, 29 Sep 2025 11:23:30 GMT</pubDate>
    <dc:creator>ygrayne</dc:creator>
    <dc:date>2025-09-29T11:23:30Z</dc:date>
    <item>
      <title>MCX-A346: RAM-based Vector Table Results in HardFault</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCX-A346-RAM-based-Vector-Table-Results-in-HardFault/m-p/2177435#M4125</link>
      <description>&lt;P&gt;I have a RAM-based vector table, properly initialised with valid vectors to handlers in flash memory. Upon executing an SVC instruction, the exception handling escalates to HardFault. It appears that fetching the SVC handler address (LSB set) from the vector table fails. The HardFault handler, though, then does get properly fetched and executed. In this handler, I read the following values.&lt;/P&gt;&lt;P&gt;stack pointer:&lt;BR /&gt;SP 0x20027E68&lt;/P&gt;&lt;P&gt;EXC_RETURN 0xFFFFFFA8&lt;/P&gt;&lt;P&gt;stacked LR, PC, and XPSR:&lt;BR /&gt;LNKst 0x00004523&lt;BR /&gt;PCst 0x00004468&lt;BR /&gt;XPSRst 0x69000000&lt;/P&gt;&lt;P&gt;registers:&lt;BR /&gt;VTOR 0x20020000&lt;BR /&gt;SHCSR 0x00070004&lt;BR /&gt;CFSR 0x00000000&lt;BR /&gt;HFSR 0x40000000&lt;/P&gt;&lt;P&gt;HFSR indicates a forced (escalated) HardFault.&lt;/P&gt;&lt;P&gt;This is on the bare metal, without the SDK. RAM C0 is used for the test set-up, with the vector table at the bottom and the stack at the top. The (test) SVC handler is minimal, just an infinite loop. I have tested with 45, 60, and 180 MHz system clocks (FIRC, OD core voltage for higher clock rates).&lt;/P&gt;&lt;P&gt;What am I missing? Thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 29 Sep 2025 11:23:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/MCX-A346-RAM-based-Vector-Table-Results-in-HardFault/m-p/2177435#M4125</guid>
      <dc:creator>ygrayne</dc:creator>
      <dc:date>2025-09-29T11:23:30Z</dc:date>
    </item>
    <item>
      <title>Re: MCX-A346: RAM-based Vector Table Results in HardFault</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCX-A346-RAM-based-Vector-Table-Results-in-HardFault/m-p/2177718#M4127</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/255348"&gt;@ygrayne&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks for your post,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The MCX A34x series is a new product so there is not a lot of information about the configuration in low level, I found the following information about the Cortex-M cores&amp;nbsp;&lt;A href="https://www.systemonchips.com/optimizing-arm-vector-table-relocation-to-ram-with-minimal-memory-overhead/" target="_self"&gt;Optimizing ARM Vector Table Relocation to RAM with Minimal Memory Overhead&lt;/A&gt;&amp;nbsp;you could use it as reference. That information is not tested or validated by NXP, is a Cortex-M generic so you only use it as reference to accomplish your goal. Also, I recommend review the&amp;nbsp;&lt;A href="https://developer.arm.com/documentation/100230/latest" target="_self"&gt;Arm® Cortex®-M33 Processor Technical Reference Manual&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;</description>
      <pubDate>Mon, 29 Sep 2025 21:27:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/MCX-A346-RAM-based-Vector-Table-Results-in-HardFault/m-p/2177718#M4127</guid>
      <dc:creator>carlos_o</dc:creator>
      <dc:date>2025-09-29T21:27:59Z</dc:date>
    </item>
    <item>
      <title>Re: MCX-A346: RAM-based Vector Table Results in HardFault</title>
      <link>https://community.nxp.com/t5/MCX-Microcontrollers/MCX-A346-RAM-based-Vector-Table-Results-in-HardFault/m-p/2184147#M4182</link>
      <description>&lt;P&gt;The problem is that the Cortex-M33 core is not in its reset state as documented by the corresponding reference manual when my program starts to run via its initial PC value (at address 0x04), but PRIMASK = 1, most likely set by the boot ROM code. Consequently, the SVC instruction escalates to HardFault. Resetting PRIMASK to its reset state (CPSIE I) resolves the issue.&lt;/P&gt;</description>
      <pubDate>Sat, 11 Oct 2025 01:52:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MCX-Microcontrollers/MCX-A346-RAM-based-Vector-Table-Results-in-HardFault/m-p/2184147#M4182</guid>
      <dc:creator>ygrayne</dc:creator>
      <dc:date>2025-10-11T01:52:43Z</dc:date>
    </item>
  </channel>
</rss>

