<?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>LPC MicrocontrollersのトピックRe: LPC11U6X Flash Signature</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600366#M23292</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" class="" data-content-finding="Community" data-userid="287203" data-username="gionaimperatori" href="https://community.nxp.com/people/gionaimperatori"&gt;Giona Imperatori&lt;/A&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;I'll contact with the AE team for confirming, and I will inform you ASAP if I get some replies.&lt;/P&gt;&lt;P&gt;Thanks for your understanding.&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ping&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 Dec 2016 08:47:57 GMT</pubDate>
    <dc:creator>jeremyzhou</dc:creator>
    <dc:date>2016-12-14T08:47:57Z</dc:date>
    <item>
      <title>LPC11U6X Flash Signature</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600363#M23289</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;since a while I'm struggling with this topic.&lt;/P&gt;&lt;P&gt;My goal is to be able to generate the Flash signature in FW and in SW.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the simple FW piece of code:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;const char dummyData1[] __attribute__((aligned (0x1000))) = {&lt;BR /&gt; 0xFF, 0x00, 0xFF, 0x11, 0xFF, 0x22, 0xFF, 0x33, 0xFF, 0x44, 0xFF, 0x55, 0xFF, 0x66, 0xFF, 0x77,&lt;BR /&gt; 0xFF, 0x00, 0xFF, 0x11, 0x55, 0x22, 0xFF, 0x33, 0xFF, 0x44, 0xFF, 0x55, 0xFF, 0x66, 0xFF, 0x77,&lt;BR /&gt; 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;UInt32 ComputeFlashSignature(void)&lt;BR /&gt;{&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;//Chip_FMC_ClearSignatureBusy();&lt;BR /&gt; LPC_FMC-&amp;gt;FMSSTOP &amp;amp;= ~FMC_FLASHSIG_BUSY;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;UInt32 start = (UInt32)dummyData1;&lt;BR /&gt; UInt32 stop = start + 32 -1;&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;Chip_FMC_ComputeSignature(start, stop);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;while(Chip_FMC_IsSignatureBusy());&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;volatile UInt32 sign = Chip_FMC_GetSignature(0);&lt;/P&gt;&lt;P style="padding-left: 30px;"&gt;return sign;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Assumed that &lt;EM&gt;dummyData&lt;/EM&gt; is placed at 0x1000, I'm calculating the signature from 0x1000 to 0x101F.&lt;/P&gt;&lt;P&gt;Since the HW block is ignoring the 4 LSBs, it results in:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;start: 0x100 =&amp;gt; 0x1000&lt;/LI&gt;&lt;LI&gt;stop: 0x101 =&amp;gt; 0x1010&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;This should sum up to 16B being used for the signature calculation.&lt;/P&gt;&lt;P&gt;The HW block seams to behave&amp;nbsp;differently, if I change any of the bytes from #16 to #19 the signatures changes. It does not if I change any of the bytes after the byte #19.&lt;/P&gt;&lt;P&gt;So in total the HW block calculates the CRC on 20B, not 16 as some would expect.&lt;/P&gt;&lt;P&gt;This leads to my first question.&lt;/P&gt;&lt;P&gt;How is it possible to calculate the signature of the entire flash? My MCU has 256KB flash, address ranging from 0x0 to 0x3FFFF.&lt;/P&gt;&lt;P style="padding: 0px;"&gt;If I set this range it would result in:&lt;/P&gt;&lt;UL style="padding: 0px 0px 0px 30px;"&gt;&lt;LI style="margin: 0.2em 0px; padding: 0px;"&gt;start: 0x0 =&amp;gt; 0x0&lt;/LI&gt;&lt;LI style="margin: 0.2em 0px; padding: 0px;"&gt;stop: 0x3FFF =&amp;gt; 0x3FFF0 (+ the 4 &lt;EM&gt;mysterious&lt;/EM&gt; addition bytes)&lt;/LI&gt;&lt;/UL&gt;&lt;P style="padding: 0px;"&gt;This is not the entire range, since some bytes at the end are skipped.&lt;/P&gt;&lt;P&gt;If I set the range 0x0, 0x40000:&lt;/P&gt;&lt;UL style="padding: 0px 0px 0px 30px;"&gt;&lt;LI style="margin: 0.2em 0px;"&gt;start: 0x0 =&amp;gt; 0x0&lt;/LI&gt;&lt;LI style="margin: 0.2em 0px;"&gt;stop: 0x4000&amp;nbsp;=&amp;gt; 0x40000&amp;nbsp;(+ the 4 &lt;EM&gt;mysterious&lt;/EM&gt; addition bytes)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Here the&amp;nbsp;&lt;EM&gt;mysterious&lt;/EM&gt;&lt;SPAN&gt;&amp;nbsp;bytes will be out of range/wrapped around on the first 4 bytes at address 0.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;So, I'm completely misunderstanding something, or there is something which is not clear in the documentation?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Additionally, I'm trying to calculate this signature in SW, unsuccessfully. The pseudo code in the manual seams to to produce the same signature that is generated in HW.&lt;/P&gt;&lt;P&gt;Any hint?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you in advance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 11 Dec 2016 20:17:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600363#M23289</guid>
      <dc:creator>gionaimperatori</dc:creator>
      <dc:date>2016-12-11T20:17:40Z</dc:date>
    </item>
    <item>
      <title>Re: LPC11U6X Flash Signature</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600364#M23290</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A _jive_internal="true" data-content-finding="Community" data-userid="287203" data-username="gionaimperatori" href="https://community.nxp.com/people/gionaimperatori" rel="nofollow noopener noreferrer" target="_blank"&gt;Giona Imperatori&lt;/A&gt; ,&lt;/P&gt;&lt;P&gt;I'd highly recommend you to use the following function, I think it's clear to illustrate the flash signature generation.&lt;/P&gt;&lt;PRE class="language-c line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="comment token"&gt;/**
 * @brief&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Set FLASH access time in clocks
 * @param&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;clks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: Clock cycles for FLASH access (minus 1)
 * @return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Nothing
 */&lt;/SPAN&gt;
STATIC INLINE &lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;Chip_FMC_SetFLASHAccess&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;FMC_FLASHTIM_T clks&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint32_t tmp &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; LPC_FMC&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;FLASHTIM &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="operator token"&gt;~&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0x3&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="comment token"&gt;/* Don't alter upper bits */&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPC_FMC&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;FLASHTIM &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; tmp &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; clks&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/* Flash signature start and busy status bit */&lt;/SPAN&gt;
&lt;SPAN class="property macro token"&gt;#define FMC_FLASHSIG_BUSY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(1UL &amp;lt;&amp;lt; 17)&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/**
 * @brief&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Start computation of a signature for a FLASH memory range
 * @param&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: Starting FLASH address for computation, must be aligned on 16 byte boundary
 * @param&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: Ending FLASH address for computation, must be aligned on 16 byte boundary
 * @return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Nothing
 * @note&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Only bits 20..4 are used for the FLASH signature computation.
 *&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;&amp;nbsp;&amp;nbsp;Use the Chip_FMC_IsSignatureBusy() function to determine when the
 *&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;&amp;nbsp;&amp;nbsp;signature computation operation is complete and use the
 *&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;&amp;nbsp;&amp;nbsp;Chip_FMC_GetSignature() function to get the computed signature.
 */&lt;/SPAN&gt;
STATIC INLINE &lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;Chip_FMC_ComputeSignature&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uint32_t start&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; uint32_t stop&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPC_FMC&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;FMSSTART &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;start &lt;SPAN class="operator token"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;4&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LPC_FMC&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;FMSSTOP &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;stop &lt;SPAN class="operator token"&gt;&amp;gt;&amp;gt;&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;4&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;|&lt;/SPAN&gt; FMC_FLASHSIG_BUSY&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/**
 * @brief&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Start computation of a signature for a FLASH memory address and block count
 * @param&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: Starting FLASH address for computation, must be aligned on 16 byte boundary
 * @param&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;blocks&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: Number of 16 byte blocks used for computation
 * @return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Nothing
 * @note&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Only bits 20..4 are used for the FLASH signature computation.
 *&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;&amp;nbsp;&amp;nbsp;Use the Chip_FMC_IsSignatureBusy() function to determine when the
 *&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;&amp;nbsp;&amp;nbsp;signature computation operation is complete and the
 *&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;&amp;nbsp;&amp;nbsp;Chip_FMC_GetSignature() function to get the computed signature.
 */&lt;/SPAN&gt;
STATIC INLINE &lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;Chip_FMC_ComputeSignatureBlocks&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;uint32_t start&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; uint32_t blocks&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="token function"&gt;Chip_FMC_ComputeSignature&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;start&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;start &lt;SPAN class="operator token"&gt;+&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;blocks &lt;SPAN class="operator token"&gt;*&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;16&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/**
 * @brief&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Check for signature geenration completion
 * @return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;true if the signature computation is running, false if finished
 */&lt;/SPAN&gt;
STATIC INLINE bool &lt;SPAN class="token function"&gt;Chip_FMC_IsSignatureBusy&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;void&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;bool&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;LPC_FMC&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;FMSSTOP &lt;SPAN class="operator token"&gt;&amp;amp;&lt;/SPAN&gt; FMC_FLASHSIG_BUSY&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt; &lt;SPAN class="operator token"&gt;!=&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;

&lt;SPAN class="comment token"&gt;/**
 * @brief&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Returns the generated FLASH signature value
 * @param&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;index&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;: Not used, must be 0
 * @return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;the generated FLASH signature value
 */&lt;/SPAN&gt;
STATIC INLINE uint32_t &lt;SPAN class="token function"&gt;Chip_FMC_GetSignature&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="keyword token"&gt;int&lt;/SPAN&gt; index&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;{&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; LPC_FMC&lt;SPAN class="operator token"&gt;-&amp;gt;&lt;/SPAN&gt;FMSW&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;index&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;;&lt;/SPAN&gt;
&lt;SPAN class="punctuation token"&gt;}&lt;/SPAN&gt;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&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;/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;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;BR /&gt;Have a great day,&lt;BR /&gt;Ping&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Dec 2016 03:27:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600364#M23290</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2016-12-13T03:27:47Z</dc:date>
    </item>
    <item>
      <title>Re: LPC11U6X Flash Signature</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600365#M23291</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Ping, thank you for your time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As you can see from my original question, I'm&amp;nbsp;&lt;STRONG&gt;already using&lt;/STRONG&gt; the code you posted.&lt;/P&gt;&lt;P&gt;This does not show&amp;nbsp;&lt;STRONG&gt;at all&lt;/STRONG&gt; how the signature has to be calculated in SW. It only shows how to generate it in HW. But this was not really the question.&lt;/P&gt;&lt;P&gt;One question was how to generate this signature in software (PC software, like C, C#, Python, ...).&lt;/P&gt;&lt;P&gt;I did implement the code which is given in the user manual (&lt;A class="link-titled" href="http://www.nxp.com/documents/user_manual/UM10732.pdf" title="http://www.nxp.com/documents/user_manual/UM10732.pdf"&gt;http://www.nxp.com/documents/user_manual/UM10732.pdf&lt;/A&gt;), page 428. But this code does not seem to generate the word which is generated in HW.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But......&lt;/P&gt;&lt;P&gt;The UM of the LPC11U6X advertise that this family has a &lt;STRONG&gt;32bit generator only &lt;/STRONG&gt;(Table357), and it's providing a different pseudo code.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Also the code that you posted somehow mentions that, more specifically in the comment of the function&amp;nbsp;Chip_FMC_IsSignatureBusy() -&amp;gt; "Only the index 0 is supported".&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;By googling I landed by chance here (&lt;A href="https://developer.mbed.org/forum/mbed/topic/4557/" title="https://developer.mbed.org/forum/mbed/topic/4557/"&gt;LPC Signature Generator | mbed&lt;/A&gt;&amp;nbsp;), and I decided to give it a try, to test the code which is presented there&amp;nbsp;&lt;STRONG&gt;even though is for antoher LPC family, suppoed to have&amp;nbsp;a 128bit signature generator&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;Well, I was quite surprise to see that the first word of the software posted on mbed was matching the signature which I calculated in HW on my LPCXPresso mounting a LPC11U68JBD100 device, which is supposed to have a 32bit signature genreator.&lt;/P&gt;&lt;P&gt;Seen that, driven by my curiosity I tried to access the register FMSW&lt;STRONG&gt;1&lt;/STRONG&gt;, which should not exist. And, funny enough, the register does exists and it contains the correct signature. So do also &lt;SPAN&gt;FMSW2 and&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;FMSW3.&lt;/SPAN&gt;&lt;SPAN style="color: #005042; font-size: 9pt;"&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;How cool is that? The LPC11U68 does actually have a 128bit generator, and not 32bit as you (NXP) claim.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;So, to me it seams that you (NXP) don't actually know what you put in your silicon... &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;As a customer, what should I do? Implement my application according of what I see, with the&amp;nbsp;risk that you decide to change the HW and my application will not work anymore. Or stick to what the user manual says, with the result that my application wont work at all?&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Or&amp;nbsp;look for another chip provider?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Dear Ping,&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;can you please clarify this issue?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Have a great day too!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Giona&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PS: I attach a screen shot of the debugging tool, which shows the ghost registers.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_107.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/11779i10B426D5736B9D5B/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_107.png" alt="pastedImage_107.png" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Dec 2016 16:29:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600365#M23291</guid>
      <dc:creator>gionaimperatori</dc:creator>
      <dc:date>2016-12-13T16:29:08Z</dc:date>
    </item>
    <item>
      <title>Re: LPC11U6X Flash Signature</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600366#M23292</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class=""&gt;&lt;A _jive_internal="true" class="" data-content-finding="Community" data-userid="287203" data-username="gionaimperatori" href="https://community.nxp.com/people/gionaimperatori"&gt;Giona Imperatori&lt;/A&gt;&lt;/SPAN&gt;,&lt;/P&gt;&lt;P&gt;Thanks for your reply.&lt;/P&gt;&lt;P&gt;I'll contact with the AE team for confirming, and I will inform you ASAP if I get some replies.&lt;/P&gt;&lt;P&gt;Thanks for your understanding.&lt;/P&gt;&lt;P&gt;Have a great day,&lt;BR /&gt;Ping&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Dec 2016 08:47:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC11U6X-Flash-Signature/m-p/600366#M23292</guid>
      <dc:creator>jeremyzhou</dc:creator>
      <dc:date>2016-12-14T08:47:57Z</dc:date>
    </item>
  </channel>
</rss>

