1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rel="up" title="FatFs" href="../00index_j.html">
<link rel="stylesheet" href="../css_j.css" type="text/css" media="screen" title="ELM Default">
<title>FatFs - f_forward</title>
</head>
<body>
<div class="para">
<h2>f_forward</h2>
<p>ƒtƒ@ƒCƒ‹‚©‚çƒf�[ƒ^‚ð“Ç‚Ý�o‚µ�A‘—�MƒXƒgƒŠ�[ƒ€‚É’¼�Ú“]‘—‚µ‚Ü‚·�B</p>
<pre>
FRESULT f_forward (
FIL* <em>FileObject</em>, /* ƒtƒ@ƒCƒ‹�EƒIƒuƒWƒFƒNƒg�\‘¢‘Ì */
UINT (*<em>Func</em>)(const BYTE*,UINT), /* ƒf�[ƒ^“]‘—ŠÖ�” */
UINT <em>ByteToFwd</em>, /* “]‘—‚·‚éƒoƒCƒg�” */
UINT* <em>ByteFwd</em> /* “]‘—‚³‚ꂽƒoƒCƒg�” */
);
</pre>
</div>
<div class="para">
<h4>ˆø�”</h4>
<dl class="par">
<dt>FileObject</dt>
<dd>ƒtƒ@ƒCƒ‹�EƒIƒuƒWƒFƒNƒg�\‘¢‘̂ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·�B</dd>
<dt>Func</dt>
<dd>ƒf�[ƒ^‚ð“n‚·ƒ†�[ƒU’è‹`ŠÖ�”‚ւ̃|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·�B‚±‚ÌŠÖ�”‚ÌŽd—l‚̓Tƒ“ƒvƒ‹‚ðŽQ�Æ‚µ‚Ä‚‚¾‚³‚¢�B</dd>
<dt>ByteToRead</dt>
<dd>“]‘—‚·‚éƒoƒCƒg�”(0�`UINT‚Ì�Å‘å’l)‚ðŽw’肵‚Ü‚·�B</dd>
<dt>ByteRead</dt>
<dd>ŽÀ�Û‚É“]‘—‚³‚ꂽƒoƒCƒg�”‚ðŠi”[‚·‚é•Ï�”‚ðŽw‚·ƒ|ƒCƒ“ƒ^‚ðŽw’肵‚Ü‚·�B</dd>
</dl>
</div>
<div class="para">
<h4>–ß‚è’l</h4>
<dl class="ret">
<dt>FR_OK (0)</dt>
<dd>�³�í�I—¹�B</dd>
<dt>FR_DENIED</dt>
<dd>”ñ“Ç‚Ý�ž‚݃‚�[ƒh‚ÅŠJ‚¢‚½ƒtƒ@ƒCƒ‹‚©‚ç“Ç‚Ý�ž‚à‚¤‚Æ‚µ‚½�B</dd>
<dt>FR_DISK_ERR</dt>
<dd>ƒfƒBƒXƒN�EƒGƒ‰�[‚É‚æ‚鎸”s�B</dd>
<dt>FR_INT_ERR</dt>
<dd>•s�³‚ÈFAT�\‘¢‚Ü‚½‚Í“à•”ƒGƒ‰�[‚É‚æ‚鎸”s�B</dd>
<dt>FR_NOT_READY</dt>
<dd>ƒ�ƒfƒBƒA‚ªƒZƒbƒg‚³‚ê‚Ä‚¢‚È‚¢‚È‚Ç�A•¨—�ƒhƒ‰ƒCƒu‚ª“®�ì•s”\�ó‘Ô�B</dd>
<dt>FR_INVALID_OBJECT</dt>
<dd>–³Œø‚ȃtƒ@ƒCƒ‹�EƒIƒuƒWƒFƒNƒg�B</dd>
</dl>
</div>
<div class="para">
<h4>‰ð�à</h4>
<p>ƒtƒ@ƒCƒ‹‚̃f�[ƒ^‚ðƒoƒbƒtƒ@‚ɓǂÝ�o‚³‚¸‚É‘—�MƒXƒgƒŠ�[ƒ€‚É’¼�Ú“]‘—‚µ‚Ü‚·�BƒAƒvƒŠƒP�[ƒVƒ‡ƒ“‘¤‚Ńf�[ƒ^�Eƒoƒbƒtƒ@‚ð•K—v‚Æ‚µ‚È‚¢‚Ì‚Å�Aƒ�ƒ‚ƒŠ‚ÌŒÀ‚ç‚ꂽŠÂ‹«‚Å—LŒø‚Å‚·�B“]‘—ŠJŽnˆÊ’u‚Í�AŒ»�݂̃tƒ@ƒCƒ‹R/Wƒ|ƒCƒ“ƒ^‚©‚ç‚ɂȂè‚Ü‚·�Bƒtƒ@ƒCƒ‹R/Wƒ|ƒCƒ“ƒ^‚Í“]‘—‚³‚ꂽƒoƒCƒg�”‚¾‚¯�i‚݂܂·�BŽw’肳‚ꂽƒoƒCƒg�”‚Ì“]‘—’†‚Ƀtƒ@ƒCƒ‹‚Ì�I’[‚É’B‚µ‚½�ê�‡‚â‘—�MƒXƒgƒŠ�[ƒ€‚ªƒrƒW�[‚ɂȂÁ‚½�ê�‡�A<tt>*ByteFwd</tt>‚Í<tt>ByteToFwd</tt>‚æ‚è‚à�¬‚³‚‚È‚è‚Ü‚·�B</p>
</div>
<div class="para">
<h4>‘Ήž�î•ñ</h4>
<p><tt>_USE_FORWARD == 1</tt>‚Å�AŠŽ‚Â<tt>_FS_TINY == 1</tt>‚̂Ƃ«‚ÉŽg—p‰Â”\‚Å‚·�B</p>
</div>
<div class="para">
<h4>Žg—p—á�iƒI�[ƒfƒBƒI�Ä�¶�j</h4>
<pre>
/*-----------------------------------------------------------------------*/
/* f_forwardŠÖ�”‚©‚çŒÄ‚΂ê‚éƒf�[ƒ^‘—�MŠÖ�”‚Ì—á */
/*-----------------------------------------------------------------------*/
UINT out_stream ( /* –ß‚è’l: “]‘—‚³‚ꂽƒoƒCƒg�”‚Ü‚½‚̓XƒgƒŠ�[ƒ€‚Ì�ó‘Ô */
const BYTE *p, /* “]‘—‚·‚éƒf�[ƒ^‚ðŽw‚·ƒ|ƒCƒ“ƒ^ */
UINT btf /* >0: “]‘—‚ð�s‚¤(ƒoƒCƒg�”). 0: ƒXƒgƒŠ�[ƒ€‚Ì�ó‘Ԃ𒲂ׂé */
)
{
UINT cnt = 0;
if (btf == 0) { /* ƒZƒ“ƒX—v‹� */
/* ƒXƒgƒŠ�[ƒ€‚Ì�ó‘Ô‚ð•Ô‚· (0: ƒrƒW�[, 1: ƒŒƒfƒB) */
/* ˆê’U�AƒŒƒfƒB‚ð•Ô‚µ‚½‚ç�A‘±‚“]‘——v‹�‚Å�‚È‚‚Æ‚à1ƒoƒCƒg‚Í */
/* “]‘—‚³‚ê‚È‚¢‚Æ f_forwardŠÖ�”‚Í FR_RW_ERROR ‚ƂȂé�B */
if (FIFO_READY) cnt = 1;
}
else { /* “]‘——v‹� */
do { /* ‘S‚ẴoƒCƒg‚ð“]‘—‚·‚é‚©�AƒXƒgƒŠ�[ƒ€‚ªƒrƒW�[‚ɂȂé‚܂ŌJ‚è•Ô‚· */
FIFO_PORT = *p++;
cnt++;
} while (cnt < btf && FIFO_READY);
}
return cnt;
}
/*-----------------------------------------------------------------------*/
/* f_forwardŠÖ�”‚ÌŽg—p—á */
/*-----------------------------------------------------------------------*/
FRESULT play_file (
char *fn /* �Ä�¶‚·‚éƒI�[ƒfƒBƒI�Eƒtƒ@ƒCƒ‹–¼‚ðŽw‚·ƒ|ƒCƒ“ƒ^ */
)
{
FRESULT rc;
FIL fil;
UINT dmy;
/* ƒtƒ@ƒCƒ‹‚ð“Ç‚Ý�o‚µƒ‚�[ƒh‚ÅŠJ‚ */
rc = f_open(&fil, fn, FA_READ);
/* ‘S‚Ẵf�[ƒ^‚ª“]‘—‚³‚ê‚é‚©ƒGƒ‰�[‚ª”�¶‚·‚é‚܂ő±‚¯‚é */
while (rc == FR_OK && fil.fptr < fil.fsize) {
/* ‚Ù‚©‚Ì�ˆ—�... */
/* ’èŠú“I‚Ü‚½‚Í—v‹�‚ɉž‚¶‚ăf�[ƒ^‚ðƒXƒgƒŠ�[ƒ€‚É‘—�o‚·‚é */
rc = f_forward(&fil, out_stream, 1000, &dmy);
}
return rc; /* FR_OK: �³�í�I—¹, ‚Ù‚©:ˆÙ�í�I—¹ */
}
</pre>
</div>
<div class="para">
<h4>ŽQ�Æ</h4>
<p><tt><a href="open.html">f_open</a>, <a href="gets.html">fgets</a>, <a href="write.html">f_write</a>, <a href="close.html">f_close</a>, <a href="sfile.html">FIL</a></tt></p>
</div>
<p class="foot"><a href="../00index_j.html">–ß‚é</a></p>
</body>
</html>
|