MCPcopy Create free account
hub / github.com/RetiredWizard/PyDOS / do_mount

Function do_mount

sdmount.py:88–180  ·  view source on GitHub ↗
(drive,spiNo)

Source from the content-addressed store, hash-verified

86 return(fullPath)
87
88 def do_mount(drive,spiNo):
89 sdMounted = False
90
91 if implementation.name.upper() == "MICROPYTHON":
92
93 if spiNo+1 > len(Pydos_hw.CS):
94 print("CS Pin not allocated for Pydos_bcfg SPI interface #",spiNo)
95 elif Pydos_hw.SDdrive[spiNo] != None:
96 print("SD card on Pydos_bcfg SPI interface #",spiNo,"already mounted as",Pydos_hw.SDdrive[spiNo])
97 else:
98 if spiNo == 0:
99 try:
100 os.mount(SDCard(), drive)
101 os.listdir(drive) # Check that card is accessible
102 Pydos_hw.SDdrive[spiNo] = drive
103 sdMounted = True
104 except:
105 # Failed use of machine.SDCard() may have corrupted SPI for DotStar
106 if Pydos_hw.dotStar_Clock:
107 from pydos_rgb import PyDOS_rgb
108 PyDOS_rgb._spi = [None]
109 PyDOS_rgb._pixels[0] = None
110 PyDOS_rgb._rgblist[0] = [()]
111 PyDOS_rgb._neoName[0] = None
112 if not sdMounted:
113 for slot in range(4):
114 try:
115 os.mount(SDCard(slot=slot), drive)
116 os.listdir(drive) # Check that card is accessible
117 Pydos_hw.SDdrive[spiNo] = drive
118 sdMounted = True
119 break
120 except:
121 # Failed use of machine.SDCard() may have corrupted SPI for DotStar
122 if Pydos_hw.dotStar_Clock:
123 from pydos_rgb import PyDOS_rgb
124 PyDOS_rgb._spi = [None]
125 PyDOS_rgb._pixels[0] = None
126 PyDOS_rgb._rgblist[0] = [()]
127 PyDOS_rgb._neoName[0] = None
128 if not sdMounted:
129 try:
130 sd = sdcardLIB.SDCard(Pydos_hw.SPI(spiNo), Pin(Pydos_hw.CS[spiNo],Pin.OUT))
131 os.mount( sd, drive)
132 Pydos_hw.SDdrive[spiNo] = drive
133 sdMounted = True
134 except Exception as e:
135 print_exception(e,e, \
136 e.__traceback__ if hasattr(e,'__traceback__') else None)
137
138 elif implementation.name.upper() == "CIRCUITPYTHON":
139
140 if Pydos_hw.SDIO_CLK and (spiNo == -1 or len(Pydos_hw.CS) == 0):
141 sdioNo = len(Pydos_hw.CS)
142 if Pydos_hw.SDdrive[sdioNo] != None:
143 print("SD card on SDIO interface already mounted as",Pydos_hw.SDdrive[sdioNo])
144 else:
145 try:

Callers 1

sdMountFunction · 0.85

Calls 2

SDCardClass · 0.85
SPIMethod · 0.80

Tested by

no test coverage detected