<?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 Re: How to Calculate CRC on a structure? in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327300#M15110</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gilles&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot man. this thing worked now I am getting the same value i.e from online CRC calculator and crc from this code matches. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Amit Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 20 Sep 2014 04:01:58 GMT</pubDate>
    <dc:creator>Amit_Kumar1</dc:creator>
    <dc:date>2014-09-20T04:01:58Z</dc:date>
    <item>
      <title>How to Calculate CRC on a structure?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327293#M15103</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;I am using built in CRC PE component to calculate CRC32 of an array which is coming fine but how do I do it for structure ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;char buffer[10] = "abcdefghij";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CRC1_GetBlockCRC(crc1, buffer, sizeof(buffer)-1, &amp;amp;crc_val);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; This syntax gives the actual CRC value which I compared with the &lt;A href="http://www.lammertbies.nl/comm/info/crc-calculation.html"&gt;online CRC calculator&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why do we have to subtract 1 from sizeof ??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Secondly , I want to calculate the CRC as following.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;typedef&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;struct&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;name&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;weight&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;int32_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;marks&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;average&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;int32_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;value&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;crc&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;}&lt;/SPAN&gt;&lt;SPAN style="color: #005032; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;LDD_Test&lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #005032; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;LDD_Test &lt;/SPAN&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;TEST;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;BR /&gt; &lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;int&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;&lt;STRONG&gt;main&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(&lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;void&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TEST.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;name = &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;0x41424344&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TEST.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;weight &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;= 59.23;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #0000c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;TEST.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;marks &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;= 530;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #0000c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;TEST.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;average &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;= 46.58;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TEST.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;value &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;= 120;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CRC1_GetBlockCRC(crc1, &amp;amp;TEST, &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;sizeof&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(TEST)-5, &amp;amp;TEST.&lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;crc&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;);&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f;"&gt;// Get 32 bit CRC last 4 bytes of struct is CRC so excluding that. I have tested for ARRAY &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #0000c0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;FAT1_write(&amp;amp;fp1, &amp;amp;TEST, &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;sizeof&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;(TEST), &amp;amp;bw);&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The above code is just for illustration. The CRC calculated by this is incorrect. My Query is how do we do operations on structure as we do for any strings or array ? Kindly help&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Amit Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 09:09:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327293#M15103</guid>
      <dc:creator>Amit_Kumar1</dc:creator>
      <dc:date>2014-09-18T09:09:14Z</dc:date>
    </item>
    <item>
      <title>Re: How to Calculate CRC on a structure?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327294#M15104</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Amit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You might try using a Union instead of a structure.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.programiz.com/c-programming/c-unions" title="http://www.programiz.com/c-programming/c-unions"&gt;http://www.programiz.com/c-programming/c-unions&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;John Baker&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 14:09:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327294#M15104</guid>
      <dc:creator>johnbaker</dc:creator>
      <dc:date>2014-09-18T14:09:27Z</dc:date>
    </item>
    <item>
      <title>Re: How to Calculate CRC on a structure?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327295#M15105</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Amit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For your -1 problem, in&lt;/P&gt;&lt;P&gt;&amp;nbsp; char buffer[10] = "abcdefghij";&lt;/P&gt;&lt;P&gt;the string "abcdefghij" is not 10 bytes long but 11 bytes with the null character at the end, so probably your compiler has increased the size of buffer to 11 bytes instead of 10. So you need to use - 1 to compute the CRC only on the first 10 bytes (a to j).&lt;/P&gt;&lt;P&gt;To check the size of buffer, try to add :&lt;/P&gt;&lt;P&gt;printf("size : %d\n", sizeof(buffer));&lt;/P&gt;&lt;P&gt;in your code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now for your structure, the problem is that the compiler can add so padding to the structure so the offset of crc (= number of bytes before crc) may not be sizeof(TEST) - 4.&lt;/P&gt;&lt;P&gt;Instead of using sizeof, you can ask the compiler the address of the crc for a structure that would be located at offset 0; this gives the number of bytes before the crc :&lt;/P&gt;&lt;P&gt;&amp;nbsp; CRC1_GetBlockCRC(crc1, &amp;amp;TEST, &amp;amp;((LDD_Test *)0)-&amp;gt;crc, &amp;amp;TEST.crc);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also take care that due to possible padding between fileds of the structure (for alignment reasons), even if you set each field to a value, some bytes of the structure may be uninitialized.&lt;/P&gt;&lt;P&gt;This is the case if you declare a local variable of type LDD_Test in a function : this wariable will be allocated on the stack and these padding bytes will be uninitialized.&lt;/P&gt;&lt;P&gt;A good practice is to always clear all the structure before using it with :&lt;/P&gt;&lt;P&gt;&amp;nbsp; memset(&amp;amp;TEST, 0, sizeof(TEST));&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Sep 2014 20:14:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327295#M15105</guid>
      <dc:creator>trailman</dc:creator>
      <dc:date>2014-09-18T20:14:55Z</dc:date>
    </item>
    <item>
      <title>Re: Re: How to Calculate CRC on a structure?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327296#M15106</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Buloz&lt;/P&gt;&lt;P&gt;Thanks for responding. I used your syntax but still it didn't seems to work. my actual data length is 51 bytes in which last 4 bytes are the CRC. all are in bigendian format. below is the hex value which I am getting.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #00ccff;"&gt;CA D0 41 42 43 44 45 46&lt;/SPAN&gt; &lt;SPAN style="color: #ffcc99;"&gt;47 48 49 50 51 52 53 54&lt;/SPAN&gt; &lt;SPAN style="color: #ff6600;"&gt;51&lt;/SPAN&gt; &lt;SPAN style="color: #cc99ff;"&gt;07 &lt;/SPAN&gt;&lt;SPAN style="color: #808000;"&gt;&lt;SPAN style="color: #cc99ff;"&gt;12&lt;/SPAN&gt; &lt;SPAN style="color: #339900;"&gt;1A D6 FE&lt;/SPAN&gt;&lt;/SPAN&gt; &lt;SPAN style="color: #993366;"&gt;&lt;SPAN style="color: #339900;"&gt;1A&lt;/SPAN&gt; BF 42 4E 31&lt;/SPAN&gt; &lt;SPAN style="color: #339900;"&gt;3F B5 8C E3&lt;/SPAN&gt; &lt;SPAN style="color: #8b008b;"&gt;41 17 22 01&lt;/SPAN&gt; &lt;SPAN style="color: #6666ff;"&gt;3E 2A A8 EC&lt;/SPAN&gt; &lt;SPAN style="color: #ff9900;"&gt;3E 22 20 79&lt;/SPAN&gt; &lt;SPAN style="color: #339966;"&gt;3F 7A A8 1B&lt;/SPAN&gt; &lt;SPAN style="color: #ff6600;"&gt;BE 39 93 2B &lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using&amp;nbsp; &lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;#pragma&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; pack(1) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f;"&gt;// To align the structure to 1 byte &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;before initializing the structure so that padding doesn't happen. I used sizeof function for printing the size of the structure and got 51 bytes as response.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;#pragma&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; pack(1) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f;"&gt;// To align the structure to 1 byte&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;typedef&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;struct&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint64_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data1&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint64_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data2&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data3&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint16_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data4&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data5&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data6&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data7&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data8&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data9&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data10&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data11&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;crc&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;}&lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;LDD_Test&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;This is how the above data is. Is the CRC correct?I checked with the online CRC calculator and it didn't matched. &lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;Kind regards&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;Amit Kumar&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Sep 2014 05:39:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327296#M15106</guid>
      <dc:creator>Amit_Kumar1</dc:creator>
      <dc:date>2014-09-19T05:39:33Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Re: How to Calculate CRC on a structure?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327297#M15107</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Amit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I wont answer your question as I do not use PE, I have just a (maybe useful) note concerning the performance. Supposing you work with a 32-bit MCU, it is always good to have the fields of a structure aligned naturally, i.e. at 32-bit addresses. If #pragma pack() is needed to be used for correct CRC computation, then it is of course a valid reason for loosing a bit of performance. But what I would definitely do is reordering the variables so that the larger data types are aligned properly, as below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;#pragma&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; pack(1) &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f;"&gt;// To align the structure to 1 byte&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;typedef&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;struct&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint64_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data1&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint64_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data2&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data5&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data6&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data7&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data8&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data9&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data10&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #7f0055;"&gt;&lt;STRONG&gt;float&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data11&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint16_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data4&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint8_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;data3&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #0000c0;"&gt;crc&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="color: #000000;"&gt;}&lt;/SPAN&gt;&lt;SPAN style="color: #005032;"&gt;LDD_Test&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P class="western"&gt;&lt;SPAN style="color: #000000; font-size: 10pt; font-family: 'Courier New', monospace;"&gt;&lt;SPAN style="font-family: arial,helvetica,sans-serif;"&gt;To correct/incorrect CRC computation, the only thing I would say is that I never needed to perform on multiple architectures simultaneously. That is in my opinion, in most of embedded applications, the CRC is always computed by the same processor, so there is often no need to ensure that the CRC is the same as some web-based CRC calculator gives you - typically you only need to be sure that CRC computed by your processor on the same data is always the same. But that of course depends on your application, just consider it. Sorry for not really helping.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Sep 2014 06:23:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327297#M15107</guid>
      <dc:creator>kubiznak_petr</dc:creator>
      <dc:date>2014-09-19T06:23:45Z</dc:date>
    </item>
    <item>
      <title>Re: Re: Re: How to Calculate CRC on a structure?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327298#M15108</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Petr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the response. In my project I will be storing values to SD card (using microcontroller) and for reading I would be reading on PC. So in this case there are different devices calculating the CRC Thats why I am concern in getting the standard CRC values. &lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Kind Regards&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt; line-height: 1.5em;"&gt;Amit Kumar &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Sep 2014 06:33:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327298#M15108</guid>
      <dc:creator>Amit_Kumar1</dc:creator>
      <dc:date>2014-09-19T06:33:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to Calculate CRC on a structure?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327299#M15109</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Amit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know what algorithm you use for CRC32, nor the seed you use (the crc1 parameter to your CRC1_GetBlockCRC() I guess), but I don't get the same CRC that you for your 47 bytes of data :&lt;/P&gt;&lt;P&gt;CA D0 41 42 43 44 45 46 47 48 49 50 51 52 53 54 51 07 12 1A D6 FE 1A BF 42 4E 31 3F B5 8C E3 41 17 22 01 3E 2A A8 EC 3E 22 20 79 3F 7A A8 1B&lt;/P&gt;&lt;P&gt;I get&amp;nbsp; E1 A9 8B B9 while you get&amp;nbsp; BE 39 93 2B&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I use a standard CRC32 algorithm with its standard seed.&lt;/P&gt;&lt;P&gt;The code I used to compute the checksum is :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#include &amp;lt;sys/types.h&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#include &amp;lt;stdio.h&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;// CRC32 computation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;static u_int32_t Crc32_ComputeBuf(u_int32_t crc32, const void *buf, int buflen)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static const u_int32_t crcTable[256] = {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000,0x77073096,0xEE0E612C,0x990951BA,0x076DC419,0x706AF48F,0xE963A535,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x9E6495A3,0x0EDB8832,0x79DCB8A4,0xE0D5E91E,0x97D2D988,0x09B64C2B,0x7EB17CBD,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xE7B82D07,0x90BF1D91,0x1DB71064,0x6AB020F2,0xF3B97148,0x84BE41DE,0x1ADAD47D,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x6DDDE4EB,0xF4D4B551,0x83D385C7,0x136C9856,0x646BA8C0,0xFD62F97A,0x8A65C9EC,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x14015C4F,0x63066CD9,0xFA0F3D63,0x8D080DF5,0x3B6E20C8,0x4C69105E,0xD56041E4,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xA2677172,0x3C03E4D1,0x4B04D447,0xD20D85FD,0xA50AB56B,0x35B5A8FA,0x42B2986C,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xDBBBC9D6,0xACBCF940,0x32D86CE3,0x45DF5C75,0xDCD60DCF,0xABD13D59,0x26D930AC,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x51DE003A,0xC8D75180,0xBFD06116,0x21B4F4B5,0x56B3C423,0xCFBA9599,0xB8BDA50F,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2802B89E,0x5F058808,0xC60CD9B2,0xB10BE924,0x2F6F7C87,0x58684C11,0xC1611DAB,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xB6662D3D,0x76DC4190,0x01DB7106,0x98D220BC,0xEFD5102A,0x71B18589,0x06B6B51F,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x9FBFE4A5,0xE8B8D433,0x7807C9A2,0x0F00F934,0x9609A88E,0xE10E9818,0x7F6A0DBB,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x086D3D2D,0x91646C97,0xE6635C01,0x6B6B51F4,0x1C6C6162,0x856530D8,0xF262004E,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x6C0695ED,0x1B01A57B,0x8208F4C1,0xF50FC457,0x65B0D9C6,0x12B7E950,0x8BBEB8EA,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFCB9887C,0x62DD1DDF,0x15DA2D49,0x8CD37CF3,0xFBD44C65,0x4DB26158,0x3AB551CE,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xA3BC0074,0xD4BB30E2,0x4ADFA541,0x3DD895D7,0xA4D1C46D,0xD3D6F4FB,0x4369E96A,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x346ED9FC,0xAD678846,0xDA60B8D0,0x44042D73,0x33031DE5,0xAA0A4C5F,0xDD0D7CC9,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x5005713C,0x270241AA,0xBE0B1010,0xC90C2086,0x5768B525,0x206F85B3,0xB966D409,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xCE61E49F,0x5EDEF90E,0x29D9C998,0xB0D09822,0xC7D7A8B4,0x59B33D17,0x2EB40D81,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xB7BD5C3B,0xC0BA6CAD,0xEDB88320,0x9ABFB3B6,0x03B6E20C,0x74B1D29A,0xEAD54739,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x9DD277AF,0x04DB2615,0x73DC1683,0xE3630B12,0x94643B84,0x0D6D6A3E,0x7A6A5AA8,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xE40ECF0B,0x9309FF9D,0x0A00AE27,0x7D079EB1,0xF00F9344,0x8708A3D2,0x1E01F268,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x6906C2FE,0xF762575D,0x806567CB,0x196C3671,0x6E6B06E7,0xFED41B76,0x89D32BE0,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10DA7A5A,0x67DD4ACC,0xF9B9DF6F,0x8EBEEFF9,0x17B7BE43,0x60B08ED5,0xD6D6A3E8,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xA1D1937E,0x38D8C2C4,0x4FDFF252,0xD1BB67F1,0xA6BC5767,0x3FB506DD,0x48B2364B,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xD80D2BDA,0xAF0A1B4C,0x36034AF6,0x41047A60,0xDF60EFC3,0xA867DF55,0x316E8EEF,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x4669BE79,0xCB61B38C,0xBC66831A,0x256FD2A0,0x5268E236,0xCC0C7795,0xBB0B4703,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x220216B9,0x5505262F,0xC5BA3BBE,0xB2BD0B28,0x2BB45A92,0x5CB36A04,0xC2D7FFA7,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xB5D0CF31,0x2CD99E8B,0x5BDEAE1D,0x9B64C2B0,0xEC63F226,0x756AA39C,0x026D930A,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x9C0906A9,0xEB0E363F,0x72076785,0x05005713,0x95BF4A82,0xE2B87A14,0x7BB12BAE,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0CB61B38,0x92D28E9B,0xE5D5BE0D,0x7CDCEFB7,0x0BDBDF21,0x86D3D2D4,0xF1D4E242,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x68DDB3F8,0x1FDA836E,0x81BE16CD,0xF6B9265B,0x6FB077E1,0x18B74777,0x88085AE6,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xFF0F6A70,0x66063BCA,0x11010B5C,0x8F659EFF,0xF862AE69,0x616BFFD3,0x166CCF45,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xA00AE278,0xD70DD2EE,0x4E048354,0x3903B3C2,0xA7672661,0xD06016F7,0x4969474D,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x3E6E77DB,0xAED16A4A,0xD9D65ADC,0x40DF0B66,0x37D83BF0,0xA9BCAE53,0xDEBB9EC5,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x47B2CF7F,0x30B5FFE9,0xBDBDF21C,0xCABAC28A,0x53B39330,0x24B4A3A6,0xBAD03605,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xCDD70693,0x54DE5729,0x23D967BF,0xB3667A2E,0xC4614AB8,0x5D681B02,0x2A6F2B94,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0xB40BBE37,0xC30C8EA1,0x5A05DF1B,0x2D02EF8D };&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned char *pbuf = (unsigned char*)buf;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int iLookup;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0; i &amp;lt; buflen; i++) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iLookup = (crc32 &amp;amp; 0xFF) ^ (*pbuf++);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; crc32 = ((crc32 &amp;amp; 0xFFFFFF00) &amp;gt;&amp;gt; 8) &amp;amp; 0xFFFFFF;&amp;nbsp; // ' nasty shr 8 with vb :/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; crc32 = crc32 ^ crcTable[iLookup];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return crc32;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;u_int32_t crc32_of_buffer(const char *buf, int buflen)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return Crc32_ComputeBuf(0xFFFFFFFF, buf, buflen) ^ 0xFFFFFFFF;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;int main() {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; char buf[] = {0xCA, 0xD0, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x50, 0x51, 0x52, 0x53, 0x54, 0x51, 0x07, 0x12, 0x1A, 0xD6, 0xFE, 0x1A, 0xBF, 0x42, 0x4E, 0x31, 0x3F, 0xB5, 0x8C, 0xE3, 0x41, 0x17, 0x22, 0x01, 0x3E, 0x2A, 0xA8, 0xEC, 0x3E, 0x22, 0x20, 0x79, 0x3F, 0x7A, 0xA8, 0x1B};&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("size=%d, CRC32=%08X\n", sizeof(buf), crc32_of_buffer(buf, sizeof(buf)));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Sep 2014 21:43:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327299#M15109</guid>
      <dc:creator>trailman</dc:creator>
      <dc:date>2014-09-19T21:43:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to Calculate CRC on a structure?</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327300#M15110</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gilles&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot man. this thing worked now I am getting the same value i.e from online CRC calculator and crc from this code matches. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kind Regards&lt;/P&gt;&lt;P&gt;Amit Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 20 Sep 2014 04:01:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/How-to-Calculate-CRC-on-a-structure/m-p/327300#M15110</guid>
      <dc:creator>Amit_Kumar1</dc:creator>
      <dc:date>2014-09-20T04:01:58Z</dc:date>
    </item>
  </channel>
</rss>

