drivers/sdcard: Raise exception on timeout of readinto.

Otherwise the code can get stuck in an infinite loop if the SD card fails
to respond to a read.
pull/1/head
Jeremy Herbert 2019-11-04 01:25:16 -08:00 committed by Damien George
parent d209f9ebe7
commit 4f0f3dfb41
1 changed files with 4 additions and 1 deletions

View File

@ -172,10 +172,13 @@ class SDCard:
self.cs(0)
# read until start byte (0xff)
while True:
for i in range(_CMD_TIMEOUT):
self.spi.readinto(self.tokenbuf, 0xff)
if self.tokenbuf[0] == _TOKEN_DATA:
break
else:
self.cs(1)
raise OSError("timeout waiting for response")
# read data
mv = self.dummybuf_memoryview