<?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>LPCXpresso IDEのトピックRe: Fat</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Fat/m-p/534993#M4387</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CodeRedSupport on Wed Jun 30 14:56:56 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The whole of this block of code is basically implementing the section in the Wikipedia entry that starts....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;The [B]File Allocation Table[/B] ([B]FAT[/B]) is a list of entries that&amp;nbsp; map to each cluster on the partition. Each entry records one of five&amp;nbsp; things:&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;about half way down &lt;/SPAN&gt;&lt;A href="http://"&gt;http://en.wikipedia.org/wiki/File_Allocation_Table&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The FAT variant used by the bootloader is FAT12, which means each entry consumes 12 bits, so 2 entries are spread across 3 bytes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The 3 lines you have in red are basically writing two FAT entries per iteration, each FAT entry containing the cluster number of the next cluster in a chain - as the whole of the disk is being set up to contain a single file (the firmware.bin file).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CodeRedSupport.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 21:48:37 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T21:48:37Z</dc:date>
    <item>
      <title>Fat</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Fat/m-p/534992#M4386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by renan on Wed Jun 30 14:05:24 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;This code is part of the usb bootloader example for rdb1768:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;// Generate File Allocation Table to save Flash space
&amp;nbsp;&amp;nbsp;&amp;nbsp; // First Two FAT entries are reserved
&amp;nbsp;&amp;nbsp;&amp;nbsp; Fat_RootDir[0]= 0xF8;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Fat_RootDir[1]= 0xFF;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Fat_RootDir[2]= 0xFF;
&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Start cluster of a file is indicated by the Directory entry = 2 */
&amp;nbsp;&amp;nbsp;&amp;nbsp; m = 3;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for ( n = 3;n &amp;lt; NO_OF_CLUSTERS+2;n+=2) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if( n == ((NO_OF_CLUSTERS+2)-1) )
&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;&amp;nbsp; next_cluster = 0xFFF;
&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; else
&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;&amp;nbsp; next_cluster = n + 1;
&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;&amp;nbsp; [COLOR=Red]Fat_RootDir[m] = (BYTE)n &amp;amp; 0xFF;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fat_RootDir[m+1] = (((BYTE)next_cluster &amp;amp; 0xF) &amp;lt;&amp;lt; 4) | ((BYTE)(n&amp;gt;&amp;gt;8)&amp;amp;0xF);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fat_RootDir[m+2] = (BYTE)(next_cluster &amp;gt;&amp;gt; 4) &amp;amp; 0xFF;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m = m+3;[/COLOR]
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What's going on in the red part of the code?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Suppose that the FAT is the image attached. An example of how it is going to be the [COLOR=Black] [/COLOR][COLOR=Black]Fat_RootDir vector.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Renan&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/COLOR]&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:48:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Fat/m-p/534992#M4386</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:48:36Z</dc:date>
    </item>
    <item>
      <title>Re: Fat</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Fat/m-p/534993#M4387</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by CodeRedSupport on Wed Jun 30 14:56:56 MST 2010&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The whole of this block of code is basically implementing the section in the Wikipedia entry that starts....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;The [B]File Allocation Table[/B] ([B]FAT[/B]) is a list of entries that&amp;nbsp; map to each cluster on the partition. Each entry records one of five&amp;nbsp; things:&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;about half way down &lt;/SPAN&gt;&lt;A href="http://"&gt;http://en.wikipedia.org/wiki/File_Allocation_Table&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The FAT variant used by the bootloader is FAT12, which means each entry consumes 12 bits, so 2 entries are spread across 3 bytes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The 3 lines you have in red are basically writing two FAT entries per iteration, each FAT entry containing the cluster number of the next cluster in a chain - as the whole of the disk is being set up to contain a single file (the firmware.bin file).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;CodeRedSupport.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 21:48:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Fat/m-p/534993#M4387</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T21:48:37Z</dc:date>
    </item>
  </channel>
</rss>

