forked from greiman/SdFat
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changes.txt
439 lines (256 loc) · 11.5 KB
/
changes.txt
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
16 Mar 2015
Minimal support for Teensy-LC.
23 Feb 2015
New 1284P software SPI macros.
01 Feb 2015
Code cleanup and re-factor.
04 Dec 2014
Added support for Long File Names.
14 Nov 2014
Replaced the core SdFat code with FatLib, a generic FAT12/FAT16/FAT32
library. This may result in bugs and backward compatibility problems.
Added SdFatSoftSpi, software SPI template class.
Allow simultaneous use of hardware and software SPI with multiple cards.
See the ThreeCard example.
Added minimal Long File Name support. See the LongFileName example.
25 Oct 2014
Added File class for compatibility with the Arduino SD.h library
Added StreamParseInt example.
23 Oct 2014
Added Read SD OCR register.
SdInfo example now prints OCR register.
05 Sep 2014
Faster SdBaseFile::printField();
Added SdBaseFile::printField(float value, char term, uint8_t prec);
24 Aug 2014
Added support for Software SPI on Due and Teensy 3.1
Added support for SPI transactions.
05 Aug 2014
New examples.
Teensy 3.x SPI mods.
Test version of StdioStream.
25 Dec 2013
Improved cluster allocation speed.
Fix for Teensy 3.0
21 Jun 2013
Improved speed of single block write.
Added StressTest example.
04 May 2013
Fix FreeRam() for 1.05/1.53 malloc.
Reorganised SPI code.
SPI speed set by SCK divisor.
Faster directory search in file open.
Removed deprecated functions.
13 Mar 2013
Fix for 1.0.4 malloc
New Software SPI
07 Feb 2013
Patch for 1.5.2 version of malloc.
Updated SPI driver for Teensy 3.0
Added fast printField() functions.
19 Dec 2012
Fixed SoftSPI bug
01 Dec 2012
Added support for the Arduino Due.
The default for ALLOW_DEPRECATED_FUNCTIONS has been changed to
false. If you get compile errors for these functions, either
change to the preferred replacement function indicated in the
error message or set ALLOW_DEPRECATED_FUNCTIONS nonzero.
A key change was to remove sd.init(spiRateID, chipSelect) in favor of
sd.begin(chipSelect, spiRateID). The difference between these two is
the order of the arguments which has caused serious confusion at times.
A massive number of internal changes have been made. There are over 2600
lines in the diff file of this version and the 20120719 version.
20 Oct 2012
Changes to support ARM processors. Tested with a Teensy 3.0.
Changes for higher performance with large reads and writes.
25 Aug 2012
Added uint32_t available();
Support for new industrial SD cards
Better support for MiniSerial and MiniSerial example
Changes to support newer versions of avr-gcc
Changed RawWrite example to use micros() for delay between blocks.
Changed SdFatSize example to use MiniSerial
19 Jul 2012
Require Arduino 1.0 or greater. Change file type for all examples to *.ino.
Modify the SdFormatter example to format SDXC cards as FAT32. This is not the
SDXC standard which is exFAT.
30 May 2012
Added << operator for Arduino flash string macro F().
New RawWrite example for fast write of contiguous files.
New faster software SPI
Software SPI for Leonardo boards
Don't use __cxa_pure_virtual by default for Arduino 1.0 or greater.
26 Mar 2012
Removed definition for SS_PIN, MISO_PIN, MOSI_PIN, and SCK_PIN. Used the
Arduino 1.0 symbols SS, MISO, MOSI, and SCK.
Added Arduino style SdFat::begin(chipSelect, spiSpeed);
Added options for SD crc checking. Enabling crc checking increases reliability
at the cost of speed. Edit SdFatConfig.h to select CRC options.
Override Print::getWriteError() and Print::clearWriteError() to use
SdBaseFile functions.
Many internal changes.
08 Jan 2012
Changes to allow use of the SerialPort library.
Error messages and output from programs are now sent to a stdOut Print
stream.
The default stdOut is a small non-interrupt driven class that outputs messages
to serial port zero. This allows an alternate Serial library like SerialPort
to be used with SdFat.
You can redirect stdOut with SdFat::setStdOut(Print* stream) and
get the current stdOut stream with SdFat::stdOut().
If USE_SERIAL_FOR_STD_OUT in SdFatConfig.h is nonzero, the Arduino Serial
object will be used as the default for stdOut.
05 Dec 2011
Changes for Arduino 1.0
17 Sep 2011
Changes for Arduino 1.0 beta 4
Improved SPI handling
02 Sep 2011
--------------------------------------------------------------------------------
Warning:
Several changes are not backward compatible with the previous
version of SdFat.
The function cwd() was renamed vwd() to allow multiple SD cards.
The type SdBaseFile was added to the class hierarchy to avoid conflicts with
other Arduino libraries that are derived from the Print class. Directory
files should be declared type SdBaseFile.
--------------------------------------------------------------------------------
Added support for multiple SD cards.
Change the name of SdFat::cwd() to SdFat::vwd() since the volume
working directory is not the current working directory with
multiple SD cards.
Added the static function SdBaseFile::cwd() to return a pointer
to the current working directory.
Added the TwoCards.pde example to demonstrate use of multiple SD cards.
Added readCSV.pde example to demonstrate iostream extractors.
Added bool SdBaseFile::timestamp(SdBaseFile* file) to copy one
file's timestamps to another file.
Improved messages in the QuickStart.pde example.
Added maximum latency test to the bench.pde example.
Rearanged class hierarchy to fix conflicts with Flash.h and other Adruino
libraries. Print is no longer a private parent of file stream classes.
Added high speed multiple block read functions to Sd2Card.
Changed include files in SdFatUtil.h
Removed option to write protect block zero of an SD card.
Changes for Arduino 1.0.
02 Jul 2011
This is a major update based on previous beta versions.
Read all changes since 10 Oct 2001
Simplified examples in extra/examplesV1
28 Jun 2011
This is a release candidate to replace sdfatlib20101010.
Initialize SPI bus before every access.
Improved write multiple block functions for fast data logging.
SdVolume::cacheClear() returns zero if it fails.
Documentation changes.
04 Jun 2011
Added SdFatTestSuite and fixed bugs found by test programs.
Added functions:
bool SdFat::truncate(const char* path, uint32_t length);
int16_t SdFile::fgets(char* str, int16_t num, char* delim);
11 May 2011
Added QuickStart sketch and QuickStart.txt file for fast hardware test.
Added several new examples.
Version of ls() that can write to any Print object.
New functions including freeClusterCount(), openNext() rename().
14 Apr 2011
Total rewrite to add iostreams and SdFat class with current working directory.
Old API maintained for backward compatibility.
27 Nov 2010
Added experimental support for FAT12. This can be enabled by setting
FAT12_SUPPORT nonzero in SdFatConfig.h.
Added an experimental sketch, SdFatFormatter.pde, to format SD cards as
FAT16 and SDHC cards as FAT32. See SdFat/examples/SdFormatter.
The return type of SdVolume::cacheClear was changed to cache_t*.
Many internal changes to support FAT12 and formatting SD/SDHC cards.
10 Oct 2010
Added Mega 2560.
Fixed rmRfStar() bug.
Fixed Sanguino NULL definition.
18 Aug 2010
Optimized write() for append at end of file. Up to 50% faster sequential write.
13 Aug 2010
Added the following function to allow the SD chip select pin to be set
at runtime. Warning - if the hardware SS pin is not used as chip select,
the hardware SS pin will be set to output mode by init(). An avr processor
will not function as an SPI master unless SS is set to output mode.
uint8_t Sd2Card::init(uint8_t sckRateID, uint8_t chipSelectPin);
Added more SPI clock rate choices. The above init() function and
uint8_t Sd2Card::init(uint8_t sckRateID) call the new function
uint8_t Sd2Card::setSckRate(uint8_t sckRateID).
setSckRate() sets the SPI clock rate to F_CPU/pow(2, 1 + sckRateID).
On an 16 MHz cpu this ranges from 8 MHz for sckRateId = 0 to 125 kHz
for sckRateID = 6. This function must be called after the init() call.
Modified most examples to call card.init(SPI_HALF_SPEED) to avoid SPI bus
errors with breadboards and jumpers. This sets the SPI speed to F_CPU/4.
Defined SPI_FULL_SPEED so init(SPI_FULL_SPEED) sets the SPI speed to F_CPU/2.
Added the following function to cancel date/time callback. This function
must now be used instead of dateTimeCallback(NULL).
static void SdFat::dateTimeCallbackCancel(void);
The following member functions have been added for users who wish to avoid
calls to functions with non-const references.
uint8_t SdFile::contiguousRange(uint32_t* bgnBlock, uint32_t* endBlock);
uint8_t SdFile::createContiguous(SdFile* dirFile,
const char* fileName, uint32_t size);
static void SdFile::dateTimeCallback(
void (*dateTime)(uint16_t* date, uint16_t* time));
uint8_t SdFile::dirEntry(dir_t* dir);
uint8_t SdFile::makeDir(SdFile* dir, const char* dirName);
uint8_t SdFile::open(SdFile* dirFile, const char* fileName, uint8_t oflag);
uint8_t SdFile::open(SdFile* dirFile, const char* fileName);
uint8_t SdFile::open(SdFile* dirFile, uint16_t index, uint8_t oflag);
uint8_t SdFile::openRoot(SdVolume* vol);
int8_t SdFile::readDir(dir_t* dir);
static uint8_t remove(SdFile* dirFile, const char* fileName);
uint8_t SdVolume::init(Sd2Card* dev);
uint8_t SdVolume::init(Sd2Card* dev, uint8_t part);
The following member functions have been marked as deprecated since they
are now wrappers for the new functions. dateTimeCallback is the only wrapper
with extra overhead. The other wrappers are squeezed out by the complier.
These wrappers will be maintained in the future for backward compatibility.
uint8_t SdFile::contiguousRange(uint32_t& bgnBlock, uint32_t& endBlock);
uint8_t SdFile::createContiguous(SdFile& dirFile,
const char* fileName, uint32_t size);
static void SdFile::dateTimeCallback(
void (*dateTime)(uint16_t& date, uint16_t& time));
uint8_t SdFile::dirEntry(dir_t& dir);
uint8_t SdFile::makeDir(SdFile& dir, const char* dirName);
uint8_t SdFile::open(SdFile& dirFile, const char* fileName, uint8_t oflag);
uint8_t SdFile::open(SdFile& dirFile, const char* fileName);
uint8_t SdFile::open(SdFile& dirFile, uint16_t index, uint8_t oflag);
uint8_t SdFile::openRoot(SdVolume& vol);
int8_t SdFile::readDir(dir_t& dir);
static uint8_t remove(SdFile& dirFile, const char* fileName);
uint8_t SdVolume::init(Sd2Card& dev);
uint8_t SdVolume::init(Sd2Card& dev, uint8_t part);
The deprecated function can be disabled by editing SdFat.h and setting
#define ALLOW_DEPRECATED_FUNCTIONS 0
Fixed file modify time for file rewrite.
Major internal cleanup/reformat based on Google cpplint.py code style.
New Sd2Card::init() algorithm.
New SdFatInfo sketch for modified SdReadData() and other internal changes.
Modified examples to eliminate deprecated functions.
11 Jun 2010
Added definitions for Teensy to ArduinoPins.h (Paul Stoffregen)
Added troubleshooting.txt
23 Dec 2009
Added Software SPI capability. See Sd2Card.h
Defining MEGA_SOFT_SPI allows an unmodified Adafruit GPS Shield to be used
on Mega Arduinos. Software SPI works well with GPS Shield V1.1
but many SD cards will fail with GPS Shield V1.0.
Added file ArduinoPins.h for pin definitions.
More error printout in examples.
25 Nov 2009
Added new functions for SdFile class:
dateTimeCallback(), dirEntry(), isRoot(), isSubDir, ls(),
makeDir(), printDirName(), printFatDate(), printFatTime(),
printTwoDigits(), rmDir(), and rmRStar().
Added new examples to test and illustrate use of new functions.
Removed sdCard() from SdFile class.
Fixed several bugs.
12 Nov 2009
Major rewrite of the version of SdFat that was included with
the WaveRP library.
This is a preview that is being released to obtain comments
from several colleagues and future users.