<?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 MMFAR &amp; BFAR read in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/MMFAR-BFAR-read/m-p/630825#M37956</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;on a MK22 chip, I am modifying the HardFault Handler to record some specific registers (SHCSR,CFSR,HFSR,MMFAR &amp;amp; BFAR).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a weird problem: when the code reads the MMFAR &amp;amp; BFAR registers (address 0xE000ED34 &amp;amp; 0xE000ED38), the returned value is their address.&amp;nbsp; But if I break at that very location, reading with JTAG these registers gives me other values.&lt;/P&gt;&lt;P&gt;This behaviour is not exhibited with other SCB registers (SHCSR, CFSR, HFSR).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I first thought of small bug somewhere, but the code (down to assembly) is identical for all SCB register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a portion of the assembly code, exhibiting this behaviour: it reads CFSR &amp;amp; HFSR, calls a backup function, than reads MMFAR &amp;amp; BFAR and calls the same backup function.&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp; 10122:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4b0e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [pc, #56]&amp;nbsp;&amp;nbsp; ; (1015c &amp;lt;RegBackup+0xa4&amp;gt;)
&amp;nbsp;&amp;nbsp; 10124:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 681b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [r3, #0]
&amp;nbsp;&amp;nbsp; 10126:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [sp, #0]
&amp;nbsp;&amp;nbsp; 10128:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4b0d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [pc, #52]&amp;nbsp;&amp;nbsp; ; (10160 &amp;lt;RegBackup+0xa8&amp;gt;)
&amp;nbsp;&amp;nbsp; 1012a:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4668&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, sp
&amp;nbsp;&amp;nbsp; 1012c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 681b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [r3, #0]
&amp;nbsp;&amp;nbsp; 1012e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9301&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [sp, #4]
&amp;nbsp;&amp;nbsp; 10130:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f243 01d0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movw&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, #12496&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x30d0
&amp;nbsp;&amp;nbsp; 10134:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2208&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movs&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, #8
&amp;nbsp;&amp;nbsp; 10136:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f7ff fca7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fa88 &amp;lt;supervisor_FlashWrite&amp;gt;
&amp;nbsp;&amp;nbsp; 1013a:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4b0a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [pc, #40]&amp;nbsp;&amp;nbsp; ; (10164 &amp;lt;RegBackup+0xac&amp;gt;)
&amp;nbsp;&amp;nbsp; 1013c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 681b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [r3, #0]
&amp;nbsp;&amp;nbsp; 1013e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [sp, #0]
&amp;nbsp;&amp;nbsp; 10140:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4b09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [pc, #36]&amp;nbsp;&amp;nbsp; ; (10168 &amp;lt;RegBackup+0xb0&amp;gt;)
&amp;nbsp;&amp;nbsp; 10142:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4668&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, sp
&amp;nbsp;&amp;nbsp; 10144:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 681b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [r3, #0]
&amp;nbsp;&amp;nbsp; 10146:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9301&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [sp, #4]
&amp;nbsp;&amp;nbsp; 10148:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f243 01d8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movw&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, #12504&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x30d8
&amp;nbsp;&amp;nbsp; 1014c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2208&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movs&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, #8
&amp;nbsp;&amp;nbsp; 1014e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f7ff fc9b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fa88 &amp;lt;supervisor_FlashWrite&amp;gt;
&amp;nbsp;&amp;nbsp; 10152:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sp, #8
&amp;nbsp;&amp;nbsp; 10154:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bd10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {r4, pc}
&amp;nbsp;&amp;nbsp; 10156:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bf00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop
&amp;nbsp;&amp;nbsp; 10158:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed24
&amp;nbsp;&amp;nbsp; 1015c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed28
&amp;nbsp;&amp;nbsp; 10160:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed2c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed2c
&amp;nbsp;&amp;nbsp; 10164:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed34&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed34
&amp;nbsp;&amp;nbsp; 10168:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed38&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed38‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stepping the instructions, I observe that instruction 0x1013C leaves R3 unmodified with value 0xE000ED34.&amp;nbsp; The same thing happens @ instruction 0x10144.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Conversly, @ instructions 0x10124 &amp;amp; 0x1012C, register R3 correctly loads the pointed value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Am I missing anything ?&amp;nbsp; Can it be that these MMFAR &amp;amp; BFAR register have some particular behaviour that I'm not aware of ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 29 Mar 2017 10:23:30 GMT</pubDate>
    <dc:creator>guylejeune</dc:creator>
    <dc:date>2017-03-29T10:23:30Z</dc:date>
    <item>
      <title>MMFAR &amp; BFAR read</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/MMFAR-BFAR-read/m-p/630825#M37956</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;on a MK22 chip, I am modifying the HardFault Handler to record some specific registers (SHCSR,CFSR,HFSR,MMFAR &amp;amp; BFAR).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a weird problem: when the code reads the MMFAR &amp;amp; BFAR registers (address 0xE000ED34 &amp;amp; 0xE000ED38), the returned value is their address.&amp;nbsp; But if I break at that very location, reading with JTAG these registers gives me other values.&lt;/P&gt;&lt;P&gt;This behaviour is not exhibited with other SCB registers (SHCSR, CFSR, HFSR).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I first thought of small bug somewhere, but the code (down to assembly) is identical for all SCB register.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a portion of the assembly code, exhibiting this behaviour: it reads CFSR &amp;amp; HFSR, calls a backup function, than reads MMFAR &amp;amp; BFAR and calls the same backup function.&lt;/P&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&amp;nbsp;&amp;nbsp; 10122:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4b0e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [pc, #56]&amp;nbsp;&amp;nbsp; ; (1015c &amp;lt;RegBackup+0xa4&amp;gt;)
&amp;nbsp;&amp;nbsp; 10124:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 681b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [r3, #0]
&amp;nbsp;&amp;nbsp; 10126:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [sp, #0]
&amp;nbsp;&amp;nbsp; 10128:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4b0d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [pc, #52]&amp;nbsp;&amp;nbsp; ; (10160 &amp;lt;RegBackup+0xa8&amp;gt;)
&amp;nbsp;&amp;nbsp; 1012a:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4668&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, sp
&amp;nbsp;&amp;nbsp; 1012c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 681b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [r3, #0]
&amp;nbsp;&amp;nbsp; 1012e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9301&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [sp, #4]
&amp;nbsp;&amp;nbsp; 10130:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f243 01d0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movw&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, #12496&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x30d0
&amp;nbsp;&amp;nbsp; 10134:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2208&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movs&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, #8
&amp;nbsp;&amp;nbsp; 10136:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f7ff fca7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fa88 &amp;lt;supervisor_FlashWrite&amp;gt;
&amp;nbsp;&amp;nbsp; 1013a:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4b0a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [pc, #40]&amp;nbsp;&amp;nbsp; ; (10164 &amp;lt;RegBackup+0xac&amp;gt;)
&amp;nbsp;&amp;nbsp; 1013c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 681b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [r3, #0]
&amp;nbsp;&amp;nbsp; 1013e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [sp, #0]
&amp;nbsp;&amp;nbsp; 10140:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4b09&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [pc, #36]&amp;nbsp;&amp;nbsp; ; (10168 &amp;lt;RegBackup+0xb0&amp;gt;)
&amp;nbsp;&amp;nbsp; 10142:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4668&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mov&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, sp
&amp;nbsp;&amp;nbsp; 10144:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 681b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [r3, #0]
&amp;nbsp;&amp;nbsp; 10146:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9301&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, [sp, #4]
&amp;nbsp;&amp;nbsp; 10148:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f243 01d8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movw&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, #12504&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x30d8
&amp;nbsp;&amp;nbsp; 1014c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2208&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; movs&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, #8
&amp;nbsp;&amp;nbsp; 1014e:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; f7ff fc9b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bl&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fa88 &amp;lt;supervisor_FlashWrite&amp;gt;
&amp;nbsp;&amp;nbsp; 10152:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b002&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; add&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sp, #8
&amp;nbsp;&amp;nbsp; 10154:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bd10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {r4, pc}
&amp;nbsp;&amp;nbsp; 10156:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bf00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nop
&amp;nbsp;&amp;nbsp; 10158:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed24
&amp;nbsp;&amp;nbsp; 1015c:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed28
&amp;nbsp;&amp;nbsp; 10160:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed2c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed2c
&amp;nbsp;&amp;nbsp; 10164:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed34&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed34
&amp;nbsp;&amp;nbsp; 10168:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e000ed38&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .word&amp;nbsp;&amp;nbsp; 0xe000ed38‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Stepping the instructions, I observe that instruction 0x1013C leaves R3 unmodified with value 0xE000ED34.&amp;nbsp; The same thing happens @ instruction 0x10144.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Conversly, @ instructions 0x10124 &amp;amp; 0x1012C, register R3 correctly loads the pointed value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Am I missing anything ?&amp;nbsp; Can it be that these MMFAR &amp;amp; BFAR register have some particular behaviour that I'm not aware of ?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Mar 2017 10:23:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/MMFAR-BFAR-read/m-p/630825#M37956</guid>
      <dc:creator>guylejeune</dc:creator>
      <dc:date>2017-03-29T10:23:30Z</dc:date>
    </item>
    <item>
      <title>Re: MMFAR &amp; BFAR read</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/MMFAR-BFAR-read/m-p/630826#M37957</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You will get these values if IMPRECISERR is set.&amp;nbsp; That is to say, when the fault is 'discovered' the address bus no longer contains a value related to the fault, so what gets 'stored' is the single address guaranteed NOT to relate to the fault -- that of the register itself.&amp;nbsp; This is MOST OFTEN due to write-buffering (enabled by default), and THAT is usually due to an attempt to write a peripheral-control-register before enabling the clock to that submodule(powering it up)..&amp;nbsp; You can either look at your fault-frame stacked-PC and 'work backwards' a bit to find a 'viable culprit', OR you can disable write-buffering for a test-mode (ACTLR DISDEFWBUF, named SCB_ACTLR_DISDEFWBUF_MASK in the header file I use for MK22FA).&amp;nbsp; The exact statement in DUI0553A_cortex_m4_dgug.pdf is "When set to 1, disables write buffer use during default memory map accesses. This causes all BusFaults to be precise BusFaults but decreases performance because any store to memory must complete before the processor can execute the next instruction."&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FWIW the assembly-front-end I use for all unused&amp;amp;fault vectors is this (in crt0.s)&lt;/P&gt;&lt;P&gt;HardFault_Handler&lt;BR /&gt;MemManage_Handler&lt;BR /&gt;BusFault_Handler&lt;/P&gt;&lt;P&gt;;;;; and other such labels for unused vectors&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movs r0,#4&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; movs r1, lr&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; tst r0, r1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; beq _MSP&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mrs r0, psp&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b _HALT&lt;BR /&gt;&amp;nbsp; _MSP:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mrs r0, msp&lt;BR /&gt;&amp;nbsp; _HALT:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr r1,[r0,#20]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b hard_fault_handler_c&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bkpt #0&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The follow-on 'C' code of hard_fault_handler_c is attached.&amp;nbsp; IMHO this function should be a primary element of ALL 'example projects' -- the first thing many NOOBs run into is hard-faults....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 29 Mar 2017 17:17:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/MMFAR-BFAR-read/m-p/630826#M37957</guid>
      <dc:creator>egoodii</dc:creator>
      <dc:date>2017-03-29T17:17:21Z</dc:date>
    </item>
    <item>
      <title>Re: MMFAR &amp; BFAR read</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/MMFAR-BFAR-read/m-p/630827#M37958</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you for this detailed answer &amp;amp; explanation !&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Mar 2017 09:26:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/MMFAR-BFAR-read/m-p/630827#M37958</guid>
      <dc:creator>guylejeune</dc:creator>
      <dc:date>2017-03-30T09:26:33Z</dc:date>
    </item>
  </channel>
</rss>

