📄 filesys_8c.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>VLSI Solution Oy Evaluation MP3 Player Source Code Documentation</title><link href="doxygen.css" rel="stylesheet" type="text/css"><img src="vlsi_small.gif" hspace="20" bordercolor="#ffffff" alt="VLSI Solution Oy"><b>VLSI Solution Oy Evaluation MP3 Player Source Code Documentation</b><p></p></head><body><!-- Generated by Doxygen 1.3.7 --><div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div><h1>filesys.c File Reference</h1>File system functions, Implemented: FAT16, FAT32. <a href="#_details">More...</a><p><code>#include "<a class="el" href="board_8h-source.html">board.h</a>"</code><br><code>#include "<a class="el" href="filesys_8h-source.html">filesys.h</a>"</code><br><code>#include "<a class="el" href="storage_8h-source.html">storage.h</a>"</code><br><code>#include "console.h"</code><br><code>#include "<a class="el" href="mmc_8h-source.html">mmc.h</a>"</code><br><code>#include "<a class="el" href="display_8h-source.html">display.h</a>"</code><br><p>Include dependency graph for filesys.c:<p><center><img src="filesys_8c__incl.png" border="0" usemap="#filesys.c_map" alt="Include dependency graph"></center><map name="filesys.c_map"><area href="board_8h.html" shape="rect" coords="78,93,129,117" alt=""><area href="filesys_8h.html" shape="rect" coords="10,168,66,192" alt=""><area href="buffer_8h.html" shape="rect" coords="6,93,54,117" alt=""><area href="storage_8h.html" shape="rect" coords="141,168,202,192" alt=""><area href="mmc_8h.html" shape="rect" coords="314,168,362,192" alt=""><area href="display_8h.html" shape="rect" coords="386,168,445,192" alt=""></map><p><a href="filesys_8c-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0><tr><td></td></tr><tr><td colspan=2><br><h2>Classes</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structfragmentEntry.html">fragmentEntry</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Fragment Table. <a href="structfragmentEntry.html#_details">More...</a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>struct </td><td class="memItemRight" valign=bottom><a class="el" href="structdirectoryStack.html">directoryStack</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Directory traversing structure. <a href="structdirectoryStack.html#_details">More...</a><br><br></td></tr><tr><td colspan=2><br><h2>Defines</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a0">MAX_NUMBER_FRAGMENTS</a> 10</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum allowable number of fragments in file. <a href="#a0"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>#define </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a1">MAX_NUMBER_SUBDIRECTORIES</a> 5</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of nested subdirectories. <a href="#a1"></a><br><br></td></tr><tr><td colspan=2><br><h2>Functions</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a13">PConvertSectorToCluster</a> (unsigned long *sector)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Convert sector number to cluster number. <a href="#a13"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a14">PConvertClusterToSector</a> (unsigned long *cluster)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Convert cluster number to sector number. <a href="#a14"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a15">GetFatEntry</a> (unsigned long clusterNumber)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Return the FAT entry for cluster clusterNumber. <a href="#a15"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a16">WriteClusterChain</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Write a cluster chain to FAT for a fragment. <a href="#a16"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a17">ScanForFreeSector</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Search for next free sector. <a href="#a17"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a18">GetNextSector</a> (unsigned long currentSector)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Calculate next sector from currentSector. <a href="#a18"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>Public unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a19">BuildFragmentTable</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Build a fragment table starting from current sector. <a href="#a19"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a20">LoadNextSector</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Traverse to next sector in file or directory. <a href="#a20"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>Public unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a21">FGetChar</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Read a character from current file. <a href="#a21"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>Public unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a22">OpenFile</a> (unsigned int fileNumber)</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Open a file for reading. <a href="#a22"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a23">FatInitGlobals</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Decipher structure of FAT volume and set globals accordingly. <a href="#a23"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>Public unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a24">InitFileSystem</a> ()</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Start the filing system and initialize all necessary subsystems. <a href="#a24"></a><br><br></td></tr><tr><td colspan=2><br><h2>Variables</h2></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>data unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a2">fatStart</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Starting sector of FAT table. <a href="#a2"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>data unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a3">rootStart</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Starting sector of root directory. <a href="#a3"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>data unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a4">dataStart</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">(In FAT the start is cluster 2, so dataStart actually points to 2 clusters before the start of data area) <a href="#a4"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>data unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a5">fatSectorsPerCluster</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">FAT Global sectors per cluster. <a href="#a5"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>xdata struct <a class="el" href="structfragmentEntry.html">fragmentEntry</a> </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a6">fragment</a> [MAX_NUMBER_FRAGMENTS]</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Fragment Table. <a href="#a6"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>xdata unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a7">fileSize</a></td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Size of current file to play. <a href="#a7"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>xdata struct <a class="el" href="structdirectoryStack.html">directoryStack</a> </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a8">dirStack</a> [MAX_NUMBER_SUBDIRECTORIES]</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Directory traversing structure. <a href="#a8"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>xdata unsigned char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a9">dirLevel</a> = 0</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Current directory level, 0=Root directory. <a href="#a9"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>xdata unsigned long </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a10">freeSector</a> = 0</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Next free cluster number. <a href="#a10"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>xdata char </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a11">currentFileName</a> [12]</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">8 first characters of current file name <a href="#a11"></a><br><br></td></tr><tr><td class="memItemLeft" nowrap align=right valign=top>bit </td><td class="memItemRight" valign=bottom><a class="el" href="filesys_8c.html#a12">IS_FAT_12</a> = 0</td></tr><tr><td class="mdescLeft"> </td><td class="mdescRight">Set if this is a FAT12 filesystem. <a href="#a12"></a><br><br></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>File system functions, Implemented: FAT16, FAT32. <p><p>Definition in file <a class="el" href="filesys_8c-source.html">filesys.c</a>.<hr><h2>Define Documentation</h2><a class="anchor" name="a0" doxytag="filesys.c::MAX_NUMBER_FRAGMENTS" ></a><p><table class="mdTable" width="100%" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> #define MAX_NUMBER_FRAGMENTS 10 </td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>Maximum allowable number of fragments in file. <p><p>Definition at line <a class="el" href="filesys_8c-source.html#l00037">37</a> of file <a class="el" href="filesys_8c-source.html">filesys.c</a>.<p>Referenced by <a class="el" href="filesys_8c-source.html#l00401">BuildFragmentTable()</a>. </td> </tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -