<?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>topic Hardfault debugging with S32DS_3.4 in S32K</title>
    <link>https://community.nxp.com/t5/S32K/Hardfault-debugging-with-S32DS-3-4/m-p/2082137#M47853</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Hello, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;If you met hardfault when debugging with S32DS 3.4, you can do the follow steps and find the information where triggered the hardfault.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Copy the follows data into notepad and save as ‘.gdbinit’&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;EM&gt;define armex&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "EXEC_RETURN (LR):\n"&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; info registers $lr&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; if (((unsigned int)$lr &amp;amp; 0x4) == 0x4)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "Uses PSP 0x%x return.\n", $psp&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; set $armex_base = (unsigned int)$psp&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; else&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "Uses MSP 0x%x return.\n", $msp&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; set $armex_base = (unsigned int)$msp&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; end&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "xPSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+28)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "ReturnAddress&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+24)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "LR (R14)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+20)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+16)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+12)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+8)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+4)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "Return instruction:\n"&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; x/i *($armex_base+24)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "LR instruction:\n"&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; x/i *($armex_base+20)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;end&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;document armex&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;ARMv7 Exception entry behavior.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;xPSR, ReturnAddress, LR (R14), R12, R3, R2, R1, and R0&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;end&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Place the file into the folder of S32DS_3.x, like C:\NXP\S32DS_3.4\S32DS\build_tools&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;In S32DS, S32DS –&amp;gt; Window –&amp;gt; Performances –&amp;gt; Debug –&amp;gt; GDB –&amp;gt; GDB command file&lt;BR /&gt;Set as below&lt;BR /&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OliverTian_2-1744856832689.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/333559i690D1E0033812999/image-size/medium?v=v2&amp;amp;px=400" role="button" title="OliverTian_2-1744856832689.png" alt="OliverTian_2-1744856832689.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Debug as general and when meet hardfault, you can input &lt;FONT color="#00FF00"&gt;&lt;EM&gt;armex&lt;/EM&gt;&lt;/FONT&gt; in &lt;STRONG&gt;Debugger Console&lt;/STRONG&gt; to get more information from stack&lt;BR /&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OliverTian_3-1744856832740.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/333560iC08787CE905CF0E6/image-size/medium?v=v2&amp;amp;px=400" role="button" title="OliverTian_3-1744856832740.png" alt="OliverTian_3-1744856832740.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;
&lt;P&gt;Oliver&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 17 Apr 2025 02:36:35 GMT</pubDate>
    <dc:creator>OliverTian</dc:creator>
    <dc:date>2025-04-17T02:36:35Z</dc:date>
    <item>
      <title>Hardfault debugging with S32DS_3.4</title>
      <link>https://community.nxp.com/t5/S32K/Hardfault-debugging-with-S32DS-3-4/m-p/2082137#M47853</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Hello, &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;If you met hardfault when debugging with S32DS 3.4, you can do the follow steps and find the information where triggered the hardfault.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;SPAN&gt;&lt;SPAN&gt;Copy the follows data into notepad and save as ‘.gdbinit’&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;P&gt;&lt;EM&gt;define armex&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "EXEC_RETURN (LR):\n"&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; info registers $lr&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; if (((unsigned int)$lr &amp;amp; 0x4) == 0x4)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "Uses PSP 0x%x return.\n", $psp&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; set $armex_base = (unsigned int)$psp&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; else&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "Uses MSP 0x%x return.\n", $msp&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; set $armex_base = (unsigned int)$msp&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; end&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "xPSR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+28)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "ReturnAddress&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+24)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "LR (R14)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+20)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+16)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+12)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+8)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base+4)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "R0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x%x\n", *($armex_base)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "Return instruction:\n"&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; x/i *($armex_base+24)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; printf "LR instruction:\n"&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp; x/i *($armex_base+20)&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;end&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&amp;nbsp;document armex&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;ARMv7 Exception entry behavior.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;xPSR, ReturnAddress, LR (R14), R12, R3, R2, R1, and R0&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;end&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Place the file into the folder of S32DS_3.x, like C:\NXP\S32DS_3.4\S32DS\build_tools&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;In S32DS, S32DS –&amp;gt; Window –&amp;gt; Performances –&amp;gt; Debug –&amp;gt; GDB –&amp;gt; GDB command file&lt;BR /&gt;Set as below&lt;BR /&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OliverTian_2-1744856832689.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/333559i690D1E0033812999/image-size/medium?v=v2&amp;amp;px=400" role="button" title="OliverTian_2-1744856832689.png" alt="OliverTian_2-1744856832689.png" /&gt;&lt;/span&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN&gt;Debug as general and when meet hardfault, you can input &lt;FONT color="#00FF00"&gt;&lt;EM&gt;armex&lt;/EM&gt;&lt;/FONT&gt; in &lt;STRONG&gt;Debugger Console&lt;/STRONG&gt; to get more information from stack&lt;BR /&gt;&lt;/SPAN&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="OliverTian_3-1744856832740.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/333560iC08787CE905CF0E6/image-size/medium?v=v2&amp;amp;px=400" role="button" title="OliverTian_3-1744856832740.png" alt="OliverTian_3-1744856832740.png" /&gt;&lt;/span&gt;&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Cheers!&lt;/P&gt;
&lt;P&gt;Oliver&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 17 Apr 2025 02:36:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Hardfault-debugging-with-S32DS-3-4/m-p/2082137#M47853</guid>
      <dc:creator>OliverTian</dc:creator>
      <dc:date>2025-04-17T02:36:35Z</dc:date>
    </item>
    <item>
      <title>Re: Hardfault debugging with S32DS_3.4</title>
      <link>https://community.nxp.com/t5/S32K/Hardfault-debugging-with-S32DS-3-4/m-p/2082140#M47854</link>
      <description>&lt;P&gt;Hope this will help you.&lt;/P&gt;</description>
      <pubDate>Thu, 17 Apr 2025 02:35:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Hardfault-debugging-with-S32DS-3-4/m-p/2082140#M47854</guid>
      <dc:creator>OliverTian</dc:creator>
      <dc:date>2025-04-17T02:35:29Z</dc:date>
    </item>
  </channel>
</rss>

