Marlin_Firmware/Marlin/src/sd/SdFatConfig.h

107 lines
3.2 KiB
C
Raw Normal View History

/**
2016-03-24 13:01:20 -05:00
* Marlin 3D Printer Firmware
2020-02-03 08:00:57 -06:00
* Copyright (c) 2020 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
2011-11-18 15:17:37 -06:00
*
2016-03-24 13:01:20 -05:00
* Based on Sprinter and grbl.
2019-06-27 23:57:50 -05:00
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
2011-11-18 15:17:37 -06:00
*
2016-03-24 13:01:20 -05:00
* This program is free software: you can redistribute it and/or modify
2011-11-18 15:17:37 -06:00
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
2016-03-24 13:01:20 -05:00
* This program is distributed in the hope that it will be useful,
2011-11-18 15:17:37 -06:00
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
2020-07-22 22:20:14 -05:00
* along with this program. If not, see <https://www.gnu.org/licenses/>.
2016-03-24 13:01:20 -05:00
*
*/
#pragma once
2016-03-24 13:01:20 -05:00
/**
2017-10-18 22:15:33 -05:00
* SdFatConfig.h
2016-03-24 13:01:20 -05:00
* Arduino SdFat Library
2019-06-27 23:57:50 -05:00
* Copyright (c) 2009 by William Greiman
2016-03-24 13:01:20 -05:00
*
* This file is part of the Arduino Sd2Card Library
2011-11-18 15:17:37 -06:00
*/
2017-09-06 06:28:32 -05:00
2017-10-18 22:15:33 -05:00
#include "../inc/MarlinConfig.h"
2017-09-06 06:28:32 -05:00
/**
* To use multiple SD cards set USE_MULTIPLE_CARDS nonzero.
*
* Using multiple cards costs 400 - 500 bytes of flash.
*
* Each card requires about 550 bytes of SRAM so use of a Mega is recommended.
*/
#define USE_MULTIPLE_CARDS 0
2017-10-18 22:15:33 -05:00
2017-09-06 06:28:32 -05:00
/**
* Call flush for endl if ENDL_CALLS_FLUSH is nonzero
*
* The standard for iostreams is to call flush. This is very costly for
* SdFat. Each call to flush causes 2048 bytes of I/O to the SD.
*
* SdFat has a single 512 byte buffer for SD I/O so it must write the current
* data block to the SD, read the directory block from the SD, update the
* directory entry, write the directory block to the SD and read the data
* block back into the buffer.
*
* The SD flash memory controller is not designed for this many rewrites
* so performance may be reduced by more than a factor of 100.
*
* If ENDL_CALLS_FLUSH is zero, you must call flush and/or close to force
* all data to be written to the SD.
*/
#define ENDL_CALLS_FLUSH 0
2017-10-18 22:15:33 -05:00
2017-09-06 06:28:32 -05:00
/**
* Allow FAT12 volumes if FAT12_SUPPORT is nonzero.
* FAT12 has not been well tested.
*/
#define FAT12_SUPPORT 0
2017-10-18 22:15:33 -05:00
2017-09-06 06:28:32 -05:00
/**
* SPI init rate for SD initialization commands. Must be 5 (F_CPU/64)
* or 6 (F_CPU/128).
*/
#define SPI_SD_INIT_RATE 5
2017-10-18 22:15:33 -05:00
2017-09-06 06:28:32 -05:00
/**
* Set the SS pin high for hardware SPI. If SS is chip select for another SPI
* device this will disable that device during the SD init phase.
*/
#define SET_SPI_SS_HIGH 1
2017-10-18 22:15:33 -05:00
2017-09-06 06:28:32 -05:00
/**
* Define MEGA_SOFT_SPI nonzero to use software SPI on Mega Arduinos.
* Pins used are SS 10, MOSI 11, MISO 12, and SCK 13.
*
* 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.
*/
#define MEGA_SOFT_SPI 0
2017-10-18 22:15:33 -05:00
// Set USE_SOFTWARE_SPI nonzero to ALWAYS use Software SPI.
2017-09-06 06:28:32 -05:00
#define USE_SOFTWARE_SPI 0
2017-10-18 22:15:33 -05:00
2017-09-06 06:28:32 -05:00
/**
* The __cxa_pure_virtual function is an error handler that is invoked when
* a pure virtual function is called.
*/
#define USE_CXA_PURE_VIRTUAL 1
2017-09-06 06:28:32 -05:00
/**
2017-10-18 22:15:33 -05:00
* Defines for 8.3 and long (vfat) filenames
2017-09-06 06:28:32 -05:00
*/
2018-11-20 05:36:19 -06:00
#define FILENAME_LENGTH 13 // Number of UTF-16 characters per entry
2017-10-18 22:15:33 -05:00
// Total bytes needed to store a single long filename
2018-11-20 05:36:19 -06:00
#define LONG_FILENAME_LENGTH (FILENAME_LENGTH * MAX_VFAT_ENTRIES + 1)