亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? appnote.html

?? 嵌入式文件系統設計
?? HTML
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="up" title="FatFs" href="../00index_e.html">
<link rel="stylesheet" href="../css_e.css" type="text/css" media="screen" title="ELM Default">
<title>FatFs Module Application Note</title>
</head>

<body>
<h1>FatFs Module Application Note (for R0.04)</h1>
<hr>

<div class="para">
<h3>Considerations on porting to various platform</h3>
<p>The FatFs module is assuming following terms on portability.</p>
<ul>
<li>ANSI C<br>
The FatFs module is a middleware that written in ANSI C. There is no platform dependence, so long as the compiler is in compliance with ANSI C. However it handles system portable FAT structures. You must take the <strong>endian</strong> into consideration. This setting is defined in ff.h (tff.h). It must be changed for your platform first or the compiler will abort with an error.</li>
<li>Size of char/short/long is 8/16/32 bit.<br>
This will not be a problem on most C compilers. When any conflict of integer definitions between integer.h and existing definitions is occured, you must resolve the confrict with care.</li>
</ul>
</div>


<div class="para">
<h3>FatFs vs. Tiny-FatFs</h3>
<p>For most applications, such as portable audio and data logger, Tiny-FatFs is the best choice. However because the Tiny-FatFs does not support FAT32 in default, there is a limitation that can handle only tiny storage upto 2GB(4GB in FAT64). The FAT32 support can be added by <tt>_USE_FAT32</tt> option with an additional code size.</p>
<p>FatFs is suitable for accessing multiple files fast, and for multiple drive system.</p>
<div class="rset">
<table class="lst2">
<tr><th>Memory Size</th><th>FAT Type</th></tr>
<tr><td>&lt;= 64MB</td><td>FAT12</td></tr>
<tr><td>128MB - 2GB</td><td>FAT16</td></tr>
<tr><td>&gt;= 4GB</td><td>FAT32</td></tr>
</table>
</div>
<p>Rignt table shows the correspondence between memory size and FAT type for SD memroy card and they are shipped with this format. The data area is justified to the erase block and the memory card works the best performance. For that reason, the memory card should not be reformated with PC. When cluster size or FAT type is changed, the write performance can be worse.</p>
</div>


<div class="para">
<h3>Performance effective file access</h3>
<p>For good performance on reading/writing files on the small embedded system, application program should consider what process is done in the FatFs module. The file data on the disk is transferred by f_read function in following process.</p>
<p>Figure 1. Sector miss-aligned read (short)<br>
<img src="../img/f1.png" width="490" height="73">
</p>
<p>Figure 2. Sector miss-aligned read (long)<br>
<img src="../img/f2.png" width="490" height="140">
</p>
<p>Figure 3. Sector aligned read<br>
<img src="../img/f3.png" width="490" height="119">
</p>
<p>The file I/O buffer means a sector buffer to read/write partial data on the sector. For FatFs, member buffer[] in the file object is used. For Tiny-FatFs, member win[] in the file system object is used.</p>
<p>Tiny-FatFs processes all data transfer and access to the FAT/directory with only one sector buffer, so that FAT sector cached into the buffer is lost and it must reloaded at every cluster boundary. FatFs has a FAT/directory buffer separated from file I/O buffer, the frequency of FAT accesses is only 1/341, 1/256 or 1/128 (when cluster is contiguous) compared to Tiny-FatFs. Thus the Tiny-FatFs is sacrificing its performance in compensation for very small memory footprint.</p>
<p>Figure 1 shows that partial sector data is transferred via the file I/O buffer. At long data transfer shown in Figure 2, middle of transfer data that aligned to sector boundary is transferred into memory directly. Figure 3 shows that entier transfer data is aligned to the sector boundary. In this case, file I/O buffer is not used. At the direct transfer, maximum extent of sectors are read with disk_read function at a time but it never across cluster boundary even if it is contiguous.</p>
<p>Therefore taking effort to sector aligned read/write accesss reduces memcpy and read/write performance will be improved. Besides the effect, cached FAT sector on the Tiny-FatFs is not flushed during read/write access, so that it can achieve same performance as FatFs and its small memory footprint simultanesously.</p>
</div>


<div class="para">
<h3>Critical section</h3>
<p>When write operation to the FAT file system is interrupted due to any accidental failure, such as sudden blackout, incorrect disk removal and unrecoverable data error, the FAT structure can be destroyed. Following images shows the critical section on the FatFs module.</p>
<div class="lset">
Figure 4. Long critical section<br>
<img src="../img/f4.png" width="320" height="470" alt="fig.4">
</div>
<div class="lset">
Figure 5. Minimized critical section<br>
<img src="../img/f5.png" width="320" height="470" alt="fig.5">
</div>
<br class="clr">
<p>An interruption in the red section can cause a cross link; as a result, the file/directory is lost. There is one or more possibility listed below when an interruption in the yellow section is occured.</p>
<ul>
<li>File data being rewrited is collapted.</li>
<li>A file being appended returns initial state.</li>
<li>A file created as new is gone.</li>
<li>A file created as new remains with length of zero.</li>
<li>A file created in overwrite remains with length of zero.</li>
<li>A file created in overwrite returns initial state.</li>
<li>Efficiency of disk use gets worse due to lost chain.</li>
</ul>
<p>Every case does not affect the files that not in write operation. To minimize risk of data loss, the critical section can be minimized like shown in Figure 5 by minimizing the time that file is opened in write mode and using f_sync function properly.</p>
</div>


<div class="para">
<h3>Problems and Ideas</h3>
<ul>
<li>Abstraction of file object<br>
Currently the file object structure is held by application layer. This is not a problem for Tiny-FatFs, it consumes the task stack only 26 bytes per file. But FatFs requires 550 bytes per file. When manage the file objects in file handle, stack consumption at application module will able to be reduced. In this case, the work area for file objects is managed in FatFs module. This has a disadvantage that direct access to the file object structure cannot be used and additional file functions, such as feof and ftell, will be needed.</li>
<li>Efficient sector buffer management<br>
The FatFs module has only one sector buffer per logical drive. There is an ineffciency on random file access with many files simultanesously. When additional memory for the sector buffer is available, the file access performance will able to be improved with an advanced cache mechanism.</li>
<li>FSInfo sector<br>
On FAT32 file system, the cluster search to create a file as new or get number of free clusters takes time due to a great many clusters. The FSInfo sector that has last allocated cluster number and number of free clusters is provided to prevent the silly cluster search. However the FatFs module does not support this feature.</li>
<li>Long file name<br>
There is an extended feature to handle long file name (LFN) up to 255 characters, in addition to 8.3 format file name, on FAT file system. To support this, 512 byte string buffer for file name and UCS-2 - Shift_JIS mutual conversion table are required. Therefore memory consumption of code and work area will be increased drastically. The FatFs module does not support this feature. The LFN on the FAT file system is a patent of Microsoft. When support it on the commercial products, you have to be licensed.</li>
<li>Porting to RTOS<br>
When use FatFs module from only one task, no consideration is needed. However when use it from two or more tasks simultanesously, any exclusion control will be required. Porting of FatFs module to &mu;ITRON  is in progress by <a href="http://www.toppers.jp/">TOPPERS Project</a>.</li>
</ul>
<br>
<p>These are the problems and ideas on current revision of FatFs module. However the main target of FatFs module is 8 bit microcontrollers. These extensions requires much resource and the FatFs will unable to be ported to the 8 bit system. This may be the most serious problem on future plan.</p>
</div>

<p class="foot"><a href="../00index_e.html">Return</a></p>
</body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区的 | 欧美色精品在线视频| 国产区在线观看成人精品| 韩国成人在线视频| 日韩一级高清毛片| 日韩福利视频导航| 欧美福利视频导航| 午夜不卡av免费| 欧美日韩中文一区| 亚洲国产日韩一级| 欧美午夜精品电影| 亚洲国产成人av| 欧美日韩亚洲综合在线 | 99精品视频中文字幕| 国产精品人人做人人爽人人添| 国产99久久精品| 日本一区二区三区在线观看| 国产成人鲁色资源国产91色综| 久久精品视频在线免费观看| 国产麻豆9l精品三级站| 国产日韩精品一区二区三区| 国产精品一区二区不卡| 国产亚洲人成网站| 国产成人福利片| 国产精品国产三级国产aⅴ中文| 97se亚洲国产综合自在线不卡| 亚洲欧美激情小说另类| 在线看一区二区| 天堂av在线一区| 日韩精品一区二区三区视频| 国产激情偷乱视频一区二区三区| 国产清纯白嫩初高生在线观看91| 99精品视频在线免费观看| 亚洲在线免费播放| 欧美一区日本一区韩国一区| 精品伊人久久久久7777人| 风间由美一区二区三区在线观看 | 日日欢夜夜爽一区| 日韩免费观看高清完整版在线观看| 久久精品国产精品亚洲红杏| 久久久久97国产精华液好用吗| 成人动漫一区二区三区| 亚洲免费资源在线播放| 欧美日韩第一区日日骚| 蜜臀av国产精品久久久久| 国产日韩欧美在线一区| 99精品视频在线观看| 午夜亚洲福利老司机| 欧美电影免费观看高清完整版在线观看 | 亚洲免费观看高清在线观看| 欧美日韩精品一二三区| 久久国内精品视频| 国产精品视频在线看| 91成人免费网站| 青青草国产成人99久久| 国产欧美精品日韩区二区麻豆天美| 91香蕉视频污在线| 奇米亚洲午夜久久精品| 中文一区二区在线观看| 在线观看日韩电影| 久久se这里有精品| 成人免费在线播放视频| 欧美丰满少妇xxxxx高潮对白| 国产很黄免费观看久久| 亚洲最大色网站| 精品国产一区二区在线观看| 91丨九色丨国产丨porny| 日韩成人一级片| 中文字幕一区三区| 欧美一区二区日韩一区二区| 99久久精品情趣| 日本不卡免费在线视频| 国产精品激情偷乱一区二区∴| 欧美丰满高潮xxxx喷水动漫| 成人av资源网站| 免费成人美女在线观看.| 中文字幕在线观看不卡| 欧美一级国产精品| 91视频在线观看| 另类中文字幕网| 成人欧美一区二区三区| 精品国免费一区二区三区| 91激情五月电影| 国产乱一区二区| 婷婷综合在线观看| 中文字幕欧美一区| 337p粉嫩大胆噜噜噜噜噜91av| 欧美亚洲高清一区二区三区不卡| 国产精品123区| 日本女人一区二区三区| 亚洲欧美一区二区三区久本道91| 精品国产一区久久| 欧美另类z0zxhd电影| 97精品国产97久久久久久久久久久久| 九色|91porny| 亚洲成av人综合在线观看| 成人欧美一区二区三区白人| 久久久精品tv| 91精品国产色综合久久不卡蜜臀| 一本一本大道香蕉久在线精品| 国产精品一区二区三区乱码| 蜜桃av一区二区| 亚洲国产精品久久久久秋霞影院| 国产精品国产成人国产三级| 国产亚洲婷婷免费| 精品国产乱码久久| 日韩一区二区免费电影| 成人18视频日本| 激情五月播播久久久精品| 日韩不卡一区二区三区| 亚洲影院免费观看| 亚洲欧美一区二区三区国产精品| 亚洲国产激情av| 久久九九99视频| 精品国产亚洲一区二区三区在线观看| 欧美猛男超大videosgay| 在线免费不卡视频| 99re免费视频精品全部| 成人免费毛片嘿嘿连载视频| 国产一区视频导航| 精品一区二区三区免费观看 | 日本va欧美va精品| 亚洲 欧美综合在线网络| 亚洲午夜久久久| 亚洲国产视频一区二区| 亚洲国产中文字幕在线视频综合 | 亚洲乱码精品一二三四区日韩在线| 欧美激情一区二区三区蜜桃视频 | 精品视频一区三区九区| 91视频在线看| 色综合久久综合网| 色偷偷88欧美精品久久久| 99久久免费精品高清特色大片| jvid福利写真一区二区三区| 不卡的av中国片| av成人免费在线观看| av一区二区三区四区| 99久久久精品| 一本久久a久久免费精品不卡| 91偷拍与自偷拍精品| 色婷婷综合久色| 欧美在线一二三四区| 欧美日韩免费观看一区三区| 欧美日韩成人在线一区| 91精品国产乱| 精品欧美乱码久久久久久1区2区| 精品成人免费观看| 国产天堂亚洲国产碰碰| 欧美国产精品中文字幕| 成人欧美一区二区三区黑人麻豆| 又紧又大又爽精品一区二区| 亚洲一区二区欧美日韩| 日韩激情视频在线观看| 久久精品99国产精品| 国产精品2024| av电影一区二区| 欧美午夜精品一区二区三区| 91精品国产综合久久婷婷香蕉| 日韩一区二区免费电影| 久久综合狠狠综合久久综合88| 久久精品人人爽人人爽| 国产精品久久久久一区二区三区共| 亚洲美女免费视频| 婷婷综合五月天| 精品无人区卡一卡二卡三乱码免费卡| 国产成人aaa| 色国产精品一区在线观看| 91麻豆精品国产91久久久久| 久久久久久久久99精品| 日韩一区日韩二区| 日欧美一区二区| 国产风韵犹存在线视精品| 一本色道久久综合亚洲aⅴ蜜桃| 欧美男生操女生| 久久久久久久久久久久久久久99| 日韩理论电影院| 日韩精品一二三| 国产成人精品亚洲日本在线桃色| 色婷婷国产精品综合在线观看| 欧美精品精品一区| 久久精品欧美一区二区三区不卡 | 麻豆91免费看| 成人做爰69片免费看网站| 色av成人天堂桃色av| 日韩精品一区二区三区老鸭窝| 国产精品日韩成人| 日韩av中文在线观看| 成人教育av在线| 欧美情侣在线播放| 国产拍欧美日韩视频二区| 一区二区三区日本| 极品销魂美女一区二区三区| 97se亚洲国产综合自在线| 日韩欧美一区二区免费| 国产精品成人网| 麻豆一区二区在线| 91美女视频网站| 久久婷婷色综合| 亚洲一区二区三区爽爽爽爽爽| 国内偷窥港台综合视频在线播放|