|
@@ -2,9 +2,12 @@
|
2
|
2
|
* Interface from Atmel USB MSD to Marlin SD card
|
3
|
3
|
*/
|
4
|
4
|
|
5
|
|
-#if defined(ARDUINO_ARCH_SAM) && defined(SDSUPPORT)
|
|
5
|
+#ifdef ARDUINO_ARCH_SAM
|
6
|
6
|
|
7
|
7
|
#include "../../../inc/MarlinConfig.h"
|
|
8
|
+
|
|
9
|
+#if ENABLED(SDSUPPORT)
|
|
10
|
+
|
8
|
11
|
#include "../../../sd/cardreader.h"
|
9
|
12
|
extern "C" {
|
10
|
13
|
#include "sd_mmc_spi_mem.h"
|
|
@@ -12,37 +15,31 @@ extern "C" {
|
12
|
15
|
|
13
|
16
|
#define SD_MMC_BLOCK_SIZE 512
|
14
|
17
|
|
15
|
|
-void sd_mmc_spi_mem_init(void)
|
16
|
|
-{
|
|
18
|
+void sd_mmc_spi_mem_init(void) {
|
17
|
19
|
}
|
18
|
20
|
|
19
|
|
-Ctrl_status sd_mmc_spi_test_unit_ready(void)
|
20
|
|
-{
|
|
21
|
+Ctrl_status sd_mmc_spi_test_unit_ready(void) {
|
21
|
22
|
if (!IS_SD_INSERTED || IS_SD_PRINTING || IS_SD_FILE_OPEN || !card.cardOK)
|
22
|
23
|
return CTRL_NO_PRESENT;
|
23
|
24
|
return CTRL_GOOD;
|
24
|
25
|
}
|
25
|
26
|
|
26
|
|
-Ctrl_status sd_mmc_spi_read_capacity(uint32_t *nb_sector)
|
27
|
|
-{
|
|
27
|
+Ctrl_status sd_mmc_spi_read_capacity(uint32_t *nb_sector) {
|
28
|
28
|
if (!IS_SD_INSERTED || IS_SD_PRINTING || IS_SD_FILE_OPEN || !card.cardOK)
|
29
|
29
|
return CTRL_NO_PRESENT;
|
30
|
30
|
*nb_sector = card.getSd2Card().cardSize();
|
31
|
31
|
return CTRL_GOOD;
|
32
|
32
|
}
|
33
|
33
|
|
34
|
|
-bool sd_mmc_spi_unload(bool unload)
|
35
|
|
-{
|
|
34
|
+bool sd_mmc_spi_unload(bool unload) {
|
36
|
35
|
return true;
|
37
|
36
|
}
|
38
|
37
|
|
39
|
|
-bool sd_mmc_spi_wr_protect(void)
|
40
|
|
-{
|
|
38
|
+bool sd_mmc_spi_wr_protect(void) {
|
41
|
39
|
return false;
|
42
|
40
|
}
|
43
|
41
|
|
44
|
|
-bool sd_mmc_spi_removal(void)
|
45
|
|
-{
|
|
42
|
+bool sd_mmc_spi_removal(void) {
|
46
|
43
|
if (!IS_SD_INSERTED || IS_SD_PRINTING || IS_SD_FILE_OPEN || !card.cardOK)
|
47
|
44
|
return true;
|
48
|
45
|
return false;
|
|
@@ -61,16 +58,15 @@ uint8_t sector_buf[SD_MMC_BLOCK_SIZE];
|
61
|
58
|
|
62
|
59
|
// #define DEBUG_MMC
|
63
|
60
|
|
64
|
|
-Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector)
|
65
|
|
-{
|
|
61
|
+Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector) {
|
66
|
62
|
if (!IS_SD_INSERTED || IS_SD_PRINTING || IS_SD_FILE_OPEN || !card.cardOK)
|
67
|
63
|
return CTRL_NO_PRESENT;
|
68
|
64
|
|
69
|
|
-#ifdef DEBUG_MMC
|
70
|
|
- char buffer[80];
|
71
|
|
- sprintf(buffer, "SDRD: %d @ 0x%08x\n", nb_sector, addr);
|
72
|
|
- MYSERIAL.print(buffer);
|
73
|
|
-#endif
|
|
65
|
+ #ifdef DEBUG_MMC
|
|
66
|
+ char buffer[80];
|
|
67
|
+ sprintf(buffer, "SDRD: %d @ 0x%08x\n", nb_sector, addr);
|
|
68
|
+ MYSERIAL.print(buffer);
|
|
69
|
+ #endif
|
74
|
70
|
|
75
|
71
|
// Start reading
|
76
|
72
|
if (!card.getSd2Card().readStart(addr))
|
|
@@ -96,16 +92,15 @@ Ctrl_status sd_mmc_spi_usb_read_10(uint32_t addr, uint16_t nb_sector)
|
96
|
92
|
return CTRL_GOOD;
|
97
|
93
|
}
|
98
|
94
|
|
99
|
|
-Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector)
|
100
|
|
-{
|
|
95
|
+Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector) {
|
101
|
96
|
if (!IS_SD_INSERTED || IS_SD_PRINTING || IS_SD_FILE_OPEN || !card.cardOK)
|
102
|
97
|
return CTRL_NO_PRESENT;
|
103
|
98
|
|
104
|
|
-#ifdef DEBUG_MMC
|
105
|
|
- char buffer[80];
|
106
|
|
- sprintf(buffer, "SDWR: %d @ 0x%08x\n", nb_sector, addr);
|
107
|
|
- MYSERIAL.print(buffer);
|
108
|
|
-#endif
|
|
99
|
+ #ifdef DEBUG_MMC
|
|
100
|
+ char buffer[80];
|
|
101
|
+ sprintf(buffer, "SDWR: %d @ 0x%08x\n", nb_sector, addr);
|
|
102
|
+ MYSERIAL.print(buffer);
|
|
103
|
+ #endif
|
109
|
104
|
|
110
|
105
|
if (!card.getSd2Card().writeStart(addr, nb_sector))
|
111
|
106
|
return CTRL_FAIL;
|
|
@@ -132,4 +127,5 @@ Ctrl_status sd_mmc_spi_usb_write_10(uint32_t addr, uint16_t nb_sector)
|
132
|
127
|
|
133
|
128
|
#endif // ACCESS_USB == true
|
134
|
129
|
|
135
|
|
-#endif
|
|
130
|
+#endif // SDSUPPORT
|
|
131
|
+#endif // ARDUINO_ARCH_SAM
|