<?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>Kinetis MicrocontrollersのトピックRe: Clarification on &amp;quot;ONCE&amp;quot; Flash fields</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684444#M42136</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Luca&lt;/P&gt;&lt;P&gt;Question 0: The area is not memory mapped (not visible using debugger and only accessible using codes and indexes) and I assume that the mapping shown is more an implementation detail and has little relevance for its programming model. Therefore I wouldn't worry too much about the details: basically use the command and index since that determines the data accessed and don't think about the (theoretical) implementation details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question 1: Again I wouldn't worry too much about the fact that address ranges overlap - it may be a documentation error or it may be that the area has two banks (the addresses given are only valid for specific instructions). The accesses are controlled by the command and index and the programmer can ignore the internal implementation details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question 3: All command transfer 4 bytes at a time but the Read Resource Command looks to use the Flash address, which is passed together with the command, to identify the byte that are involved (in this case the programmer can indeed consider the address range to be in a "virtual" memory mapped area (0..0xff) and an additional "Resource Select Code) switches this like a bank to determine whether the 0..0x7 range is read form the Version ID bank or the Program Flash 0 IFR.&lt;BR /&gt;This command is not needed for normal operation but could be used to experiment and get to better understand the internal workings/implementation if you are still curious.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 26 Jul 2017 11:55:26 GMT</pubDate>
    <dc:creator>mjbcswitzerland</dc:creator>
    <dc:date>2017-07-26T11:55:26Z</dc:date>
    <item>
      <title>Clarification on "ONCE" Flash fields</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684439#M42131</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The mapping and functionality of the "once" flash flieds is not very clear for me.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Program once (PO)&lt;/STRONG&gt;: read freely, no erase and limited program capability.&lt;/P&gt;&lt;P&gt;the PO IFR has 16bytes of XACC, 16bytes for SACC, 64bytes for ID Field.&amp;nbsp;&lt;BR /&gt;According to the Datasheet, "&lt;SPAN class=""&gt;The Program Once Field in the program flash IFR provides 96 bytes of user data storage&lt;BR /&gt;separate from the program flash main array". &lt;BR /&gt;&lt;STRONG&gt;1)&lt;/STRONG&gt;&amp;nbsp;32bytes are for access and supervisor control, 64bytes are for program ID field. Where is the user data storage located?&amp;nbsp;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG&gt;2) &lt;/STRONG&gt;the XACC and SACC are related to&amp;nbsp;what? To the regular flash or the program once filed?&amp;nbsp;what and where am I going to store/execute that code?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Program Flash Erasable IFR Map&lt;/STRONG&gt;:&lt;BR /&gt;16bytes x 2 total. &lt;BR /&gt;x20:x23 Programmed using Program Once, CANNOT be read with Read Once. &lt;STRONG&gt;How do I read this? &lt;/STRONG&gt;Should I use the&amp;nbsp;&lt;SPAN style="color: #0000ff;"&gt;Read Resource Command?&lt;/SPAN&gt;&lt;BR /&gt;x30:x33 Programmed using Program Once, READ with Read Once.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then the commands: {&lt;BR /&gt; &lt;SPAN class=""&gt;[...]The Read Once command provides read access to special 96-byte fields located in the&lt;BR /&gt;program flash 0 IFR (see &lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff;"&gt;Program Flash IFR Map &lt;/SPAN&gt;&lt;SPAN class=""&gt;and &lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff;"&gt;Program Once Field&lt;/SPAN&gt;&lt;SPAN class=""&gt;). Access to&lt;BR /&gt;the Program Once ID field is via 16 records (index values 0x00 - 0x0F), each 4 bytes&lt;BR /&gt;long. Access to the Program Once XACC and SACC fields are via 4 records (index&lt;BR /&gt;values 0x10 - 0x13), each of which is 8 bytes long.&lt;BR /&gt; &lt;SPAN class=""&gt;The Read Once command also provides read access to special 4-byte records (index&lt;BR /&gt;values 0x30 - 0x33) located in the program flash erasable IFR (see &lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff;"&gt;Program Flash&lt;BR /&gt;Erasable IFR Map &lt;/SPAN&gt;&lt;SPAN class=""&gt;and &lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff;"&gt;Erasable Program Once Field&lt;/SPAN&gt;&lt;SPAN class=""&gt;). These fields are programmed&lt;BR /&gt;using the Program Once command&lt;/SPAN&gt;&amp;nbsp;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;BR /&gt;According to my understanding,there is no way to read feld x20:x23 from the erasable fields, unless I am going to read them with the&amp;nbsp;&lt;SPAN style="color: #0000ff;"&gt;Read Resource Command.&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Am I right?&lt;/STRONG&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;Again on the Program Once Command: {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;[...]&lt;SPAN class=""&gt;The Program Once command enables programming to special 96-byte fields in the&lt;BR /&gt;program flash 0 IFR (see &lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff;"&gt;Program Flash IFR Map &lt;/SPAN&gt;&lt;SPAN class=""&gt;and &lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff;"&gt;Program Once Field&lt;/SPAN&gt;&lt;SPAN class=""&gt;). Access to&lt;BR /&gt;the Program Once ID field is via 16 records (index values 0x00 - 0x0F), each 4 bytes&lt;BR /&gt;long. Access to the Program Once XACC and SACC fields are via 4 records (index&lt;BR /&gt;values 0x10 - 0x13), each of which is 8 bytes long. These records can be read using the&lt;BR /&gt;Read Once command (see &lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff;"&gt;Read Once Command&lt;/SPAN&gt;&lt;SPAN class=""&gt;) or using the Read Resource command&lt;BR /&gt;(see &lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff;"&gt;Read Resource Command&lt;/SPAN&gt;&lt;SPAN class=""&gt;).&lt;/SPAN&gt;&amp;nbsp;}&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;Summarising my doubts:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;The fields I can program using the &lt;STRONG&gt;Program Once&lt;/STRONG&gt; are not "User data storge" fields but special byte fields?&lt;BR /&gt;&lt;/SPAN&gt;Why the command is called&amp;nbsp;&lt;STRONG&gt;Read Once&lt;/STRONG&gt; if I can read more than once that field?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;The XACC and SACC on IFR are related to what? Are the same&amp;nbsp;to what the FMC refers to as FAC? If so, what's the meaning of the Default Flash Protection bytes area (0x0_408 - 0x0_040B) ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;Any hit would be gladly appreciated.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;B.R.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;L.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2017 15:24:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684439#M42131</guid>
      <dc:creator>Catosh</dc:creator>
      <dc:date>2017-07-05T15:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: Clarification on "ONCE" Flash fields</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684440#M42132</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the area you are referring to is called the "Program Once" area. Each 4 or 8 byte groups (depending on processor type - either using long word or 8 byte phrase programming) of its 64 byte can be programmed once and never changed/deleted. It can be read as many times as you like so the "read once" command is not referring to the ability to read it only once but to the fact that it is in the Program once area.&lt;BR /&gt;The program once area is not memory mapped (like program/data Flash) and can only be read by using the the FCMD_READ_ONCE command. It is programmed using the FCMD_PROGRAM_ONCE command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have attached the uTasker flash driver (suitable for any Kinetis part) which includes program once interface (search for SUPPORT_PROGRAM_ONCE for all relevant code).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Use its open source project from &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;SPAN&gt; to test this and also to simulate it so that you can see what happens inside (useful also for testing without writing to the real HW so that application errors can be solved before setting the final memory)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Jul 2017 16:16:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684440#M42132</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-07-05T16:16:45Z</dc:date>
    </item>
    <item>
      <title>Re: Clarification on "ONCE" Flash fields</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684441#M42133</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Mark,&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for your quick reply, you helped me in clarify some aspects of the Program Once.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BTW, a major doubt is on fields of the program once. Those 96 bytes are not "user data storage", but are already splitted and defined as &lt;STRONG&gt;ID&lt;/STRONG&gt; field and &lt;STRONG&gt;XACC/SCAA&lt;/STRONG&gt; fields, isn't it? And&amp;nbsp;the XACC and SCAA&amp;nbsp;(Execute only and Supervisor Only) are those&amp;nbsp;loaded in the FTFA_XACCn and &lt;SPAN&gt;FTFA_SACCn&amp;nbsp;&lt;/SPAN&gt;registers during the reset sequence.&amp;nbsp;&lt;BR /&gt;The 64 bytes in the program once ID field are referred to what?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Then:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Read Resource&lt;/STRONG&gt; can access only the IFR and VersionID field 4 bytes at time, while &lt;STRONG&gt;ReadOnce&lt;/STRONG&gt; can read also the 4byte records in Program Flash Erasabe IFR MAP? So the data written in 0x20 - 0x23 is not accessible but writable?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The size of the fields is still not clear to me:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class=""&gt;Table 34-10. Read Resource Select Codes&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100"&gt;&lt;SPAN class="" style="font-size: 9pt;"&gt;Resource&lt;BR /&gt;Select Code &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="235"&gt;&lt;SPAN class="" style="font-size: 9pt;"&gt;Description &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="134"&gt;&lt;SPAN class="" style="font-size: 9pt;"&gt;Resource Size &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="201"&gt;&lt;SPAN class="" style="font-size: 9pt;"&gt;Local Address Range&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="100"&gt;&lt;SPAN class=""&gt;0x00 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="235"&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Program Flash 0 IFR &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="134"&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;256 Bytes &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="201"&gt;&lt;SPAN class=""&gt;0x00_0000–0x00_00FF&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="100"&gt;&lt;SPAN class=""&gt;0x01&lt;/SPAN&gt;&lt;SPAN class="" style="color: #0000ff; font-size: 7pt;"&gt;1 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="235"&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;Version ID &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="134"&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;8 Bytes &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="201"&gt;&lt;SPAN class=""&gt;0x00_0000–0x00_0007&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt; bu according to the IFR table:&lt;BR /&gt; &lt;SPAN class=""&gt;The program flash IFR is located within the program flash 0 memory block .&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Address Range &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Size (Bytes) &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Field Description&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0x00 – 0x9F &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;160 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Reserved&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xA0 – 0xA3 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;4 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once XACCH-1 Field&lt;BR /&gt;(index = 0x10)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xA4 – 0xA7 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;4 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once XACCL-1 Field&lt;BR /&gt;(index = 0x10)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xA8 – 0xAB &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;4 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once XACCH-2 Field&lt;BR /&gt;(index = 0x11)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xAC – 0xAF &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;4 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once XACCL-2 Field&lt;BR /&gt;(index = 0x11)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xB0 – 0xB3 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;4 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once SACCH-1 Field&lt;BR /&gt;(index = 0x12)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xB4 – 0xB7 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;4 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once SACCL-1 Field&lt;BR /&gt;(index = 0x12)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xB8 – 0xBB &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;4 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once SACCH-2 Field&lt;BR /&gt;(index = 0x13)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xBC – 0xBF &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;4 &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once SACCL-2 Field&lt;BR /&gt;(index = 0x13)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;0xC0 – 0xFF &lt;/SPAN&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;STRONG&gt;&lt;SPAN class=""&gt;64&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD width="224"&gt;&lt;SPAN class=""&gt;Program Once ID Field&lt;BR /&gt;(index = 0x00 - 0x0F)&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;BR /&gt;Which one is correct?&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks and best regards,&amp;nbsp;&lt;/P&gt;&lt;P&gt;L.T.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Jul 2017 07:42:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684441#M42133</guid>
      <dc:creator>Catosh</dc:creator>
      <dc:date>2017-07-06T07:42:34Z</dc:date>
    </item>
    <item>
      <title>Re: Clarification on "ONCE" Flash fields</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684442#M42134</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think that you are using the KL82, which has additional capabilities in its flash memory module.&lt;/P&gt;&lt;P&gt;It may be best to first read the description of the module in a different part - such as the KL28 - which only has the basic user program once area.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At the moment you are mixing you the user program once area with additional ones. At the end of the day the module still has the standard 64 bytes of user area (can be programmed once but not erased) plus various new stuff which is in addition to that and makes it rather confusing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;From a programmer's point of view you can think of it as 64 bytes, which an be individually programmed (once) as long words. This is done using the "Program Once Command - 0x43". A parameter (record index) of 0..15 is passed with it to identify which of the 16 long words is to be programmed. Just where this is actually stored is another question but not that relevant for the programmer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The extended capabilities add further record indexes to specify that the value to be programmed in other special areas (like the XACC, SACC fields and more) that are beyond the basic user program once capability.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Once you have used the basic programming area you can then move on the extended capabilities, if needed. Remember that most Kinetis parts with program once do not have the extended stuff.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Jul 2017 13:04:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684442#M42134</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-07-06T13:04:24Z</dc:date>
    </item>
    <item>
      <title>Re: Clarification on "ONCE" Flash fields</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684443#M42135</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Mark, &lt;BR /&gt;sorry for the long delay. I took a look to the KL28 and still I have a couple of doubts.&lt;/P&gt;&lt;P&gt;Basically:&lt;BR /&gt;address range 0x00 - 0x9F reserved&lt;BR /&gt; range 0xA0 - 0xBF index 0x10 - 0x13 is related to the XACC and SACC control (ProgramOnce, ReadOnce)&lt;BR /&gt; range 0xC0 - 0xFF index 0x00 - 0x0F user data ProgramOnce, ReadOnce. &lt;BR /&gt; range 0xC0 - 0xCF index 0x30 - 0x33 ProgramOnce, ReadOnce, Erasable.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Question 0: What does "address range" refer to? I read that program once fields are not memory mapped... with a debugger I should not be able to read this area, am I right? &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Question 1: the address range of "program once ID field" and of the "program Flash Erasabe IFR Map" overlap.&lt;BR /&gt; is the "program Flash Erasabe IFR Map" part of the "program once ID field" or do I misunderstand the "address range" meaning?&lt;BR /&gt;&lt;BR /&gt;Question 2: The read resource reads the entire space of the program flash 0 IFR (or the version ID), while the ReadOnce reads only 4 bytes?&lt;BR /&gt;&lt;BR /&gt;B.R.&lt;/P&gt;&lt;P&gt;Luca&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 25 Jul 2017 13:47:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684443#M42135</guid>
      <dc:creator>Catosh</dc:creator>
      <dc:date>2017-07-25T13:47:25Z</dc:date>
    </item>
    <item>
      <title>Re: Clarification on "ONCE" Flash fields</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684444#M42136</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Luca&lt;/P&gt;&lt;P&gt;Question 0: The area is not memory mapped (not visible using debugger and only accessible using codes and indexes) and I assume that the mapping shown is more an implementation detail and has little relevance for its programming model. Therefore I wouldn't worry too much about the details: basically use the command and index since that determines the data accessed and don't think about the (theoretical) implementation details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question 1: Again I wouldn't worry too much about the fact that address ranges overlap - it may be a documentation error or it may be that the area has two banks (the addresses given are only valid for specific instructions). The accesses are controlled by the command and index and the programmer can ignore the internal implementation details.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Question 3: All command transfer 4 bytes at a time but the Read Resource Command looks to use the Flash address, which is passed together with the command, to identify the byte that are involved (in this case the programmer can indeed consider the address range to be in a "virtual" memory mapped area (0..0xff) and an additional "Resource Select Code) switches this like a bank to determine whether the 0..0x7 range is read form the Version ID bank or the Program Flash 0 IFR.&lt;BR /&gt;This command is not needed for normal operation but could be used to experiment and get to better understand the internal workings/implementation if you are still curious.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Jul 2017 11:55:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684444#M42136</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-07-26T11:55:26Z</dc:date>
    </item>
    <item>
      <title>Re: Clarification on "ONCE" Flash fields</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684445#M42137</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mark,&amp;nbsp;&lt;BR /&gt;Thanks for your patience and support.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me briefly recap to check if I understood correctly..&amp;nbsp;&lt;BR /&gt;indexes 0x10 - &amp;nbsp;0x13 - Related to flash exec and access.&amp;nbsp;&lt;BR /&gt;indexes 0x00 - 0x0F&amp;nbsp;&amp;nbsp;&amp;nbsp;- empty area for the user. "ID Field" has no "identifier" meaning: 64Bytes for user data.&amp;nbsp;&lt;BR /&gt;Both areas are Not erasable, ponce to write, ronce to read. Not&amp;nbsp;memory mapped, address range used only together with ReadResource. Address range 0x00-0x9F is reserved (not programmable and not erasable; read has no meaning for the coder here ).&amp;nbsp;&lt;BR /&gt;Other indexes (0x20, 0x30, etc) are related to additional features of the MCU that are configured using the program once flash command. These fields can be erased and read using the appropriate commands.&amp;nbsp;&lt;BR /&gt;The Address Range has no meaning from the programmer perspective so overlaps are not relevant (Data in 0x80 or in 0xC0 are &lt;STRONG&gt;not&lt;/STRONG&gt; present in the same address range of the Program Once ID Field). &amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;In a simple table,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE style="border-width: 2px; border-color: #000000; background-color: #ffffff; margin-left: auto; margin-right: auto;" width="612"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="103"&gt;Address range&lt;/TD&gt;&lt;TD width="91"&gt;Field index&lt;/TD&gt;&lt;TD width="137"&gt;Description&lt;/TD&gt;&lt;TD width="64"&gt;Write&lt;/TD&gt;&lt;TD width="64"&gt;Read&lt;/TD&gt;&lt;TD width="153"&gt;Erase&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0x00 - 0x9F&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;Reserved&lt;/TD&gt;&lt;TD&gt;NO&lt;/TD&gt;&lt;TD rowspan="10" width="64"&gt;Read Once, Read Resource&lt;/TD&gt;&lt;TD rowspan="10" width="153"&gt;NO&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xA0 - 0xA3&lt;/TD&gt;&lt;TD&gt;0x10&lt;/TD&gt;&lt;TD&gt;XACCH-1&lt;/TD&gt;&lt;TD rowspan="9" width="64"&gt;Program once&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xA4 - 0xA7&lt;/TD&gt;&lt;TD&gt;0x10&lt;/TD&gt;&lt;TD&gt;XACCL-1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xA8 - 0xAB&lt;/TD&gt;&lt;TD&gt;0x11&lt;/TD&gt;&lt;TD&gt;XACCH-2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xAC - 0xAF&lt;/TD&gt;&lt;TD&gt;0x11&lt;/TD&gt;&lt;TD&gt;XACCL-2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xB0 - 0xB3&lt;/TD&gt;&lt;TD&gt;0x12&lt;/TD&gt;&lt;TD&gt;SACCH-1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xB4 - 0xB7&lt;/TD&gt;&lt;TD&gt;0x12&lt;/TD&gt;&lt;TD&gt;SACCL-1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xB8 - 0xBB&lt;/TD&gt;&lt;TD&gt;0x13&lt;/TD&gt;&lt;TD&gt;SACCH-2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xBC - 0xBF&lt;/TD&gt;&lt;TD&gt;0x13&lt;/TD&gt;&lt;TD&gt;SACCL-2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xC0 - 0xFF&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;0x00 - 0x0F&lt;/TD&gt;&lt;TD width="137"&gt;Program Once ID Field&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0x80 - 0x83&lt;/TD&gt;&lt;TD&gt;0x20&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD rowspan="4" width="64"&gt;Program Once&lt;/TD&gt;&lt;TD rowspan="4" width="64"&gt;NO&lt;/TD&gt;&lt;TD rowspan="4" width="153"&gt;Erase ALL Blocks, Erase All Blocks Unsecure, mass Erase&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0x80 - 0x83&lt;/TD&gt;&lt;TD&gt;0x21&lt;/TD&gt;&lt;TD width="137"&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0x80 - 0x83&lt;/TD&gt;&lt;TD&gt;0x22&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0x80 - 0x83&lt;/TD&gt;&lt;TD&gt;0x23&lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xC0 - 0xC3&lt;/TD&gt;&lt;TD&gt;0x30&lt;/TD&gt;&lt;TD rowspan="4" width="137"&gt;Key for SB firmware to upload wiht KBL&lt;/TD&gt;&lt;TD rowspan="4" width="64"&gt;Program Once (4 Bytes)&lt;/TD&gt;&lt;TD rowspan="4" width="64"&gt;Read Once (4 Bytes)&lt;/TD&gt;&lt;TD rowspan="4" width="153"&gt;Erase ALL Blocks, Erase All Blocks Unsecure, mass Erase&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xC4 - 0xC7&lt;/TD&gt;&lt;TD&gt;0x31&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xC8 - 0xCB&lt;/TD&gt;&lt;TD&gt;0x32&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;0xCC - 0xCF&lt;/TD&gt;&lt;TD&gt;0x33&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This should be correct - At least I hope.&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Jul 2017 12:54:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684445#M42137</guid>
      <dc:creator>Catosh</dc:creator>
      <dc:date>2017-07-26T12:54:02Z</dc:date>
    </item>
    <item>
      <title>Re: Clarification on "ONCE" Flash fields</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684446#M42138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Luca&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know whether all details are perfectly accurate but I would go with that and do some practical tests/experiments. Then you can confirm and possibly iterate accordingly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Jul 2017 13:05:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Clarification-on-quot-ONCE-quot-Flash-fields/m-p/684446#M42138</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-07-27T13:05:10Z</dc:date>
    </item>
  </channel>
</rss>

