mirror of https://github.com/ARMmbed/mbed-os.git
parent
a26b3bca61
commit
fa885f4b68
|
@ -405,29 +405,6 @@ int SDBlockDevice::_cmd(int cmd, int arg) {
|
||||||
return -1; // timeout
|
return -1; // timeout
|
||||||
}
|
}
|
||||||
|
|
||||||
int SDBlockDevice::_cmdx(int cmd, int arg) {
|
|
||||||
_select();
|
|
||||||
|
|
||||||
// send a command
|
|
||||||
_spi.write(0x40 | cmd);
|
|
||||||
_spi.write(arg >> 24);
|
|
||||||
_spi.write(arg >> 16);
|
|
||||||
_spi.write(arg >> 8);
|
|
||||||
_spi.write(arg >> 0);
|
|
||||||
_spi.write(0x95);
|
|
||||||
|
|
||||||
// wait for the response (response[7] == 0)
|
|
||||||
for (int i = 0; i < SD_COMMAND_TIMEOUT; i++) {
|
|
||||||
int response = _spi.write(0xFF);
|
|
||||||
if (!(response & 0x80)) {
|
|
||||||
_deselect();
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_deselect();
|
|
||||||
return -1; // timeout
|
|
||||||
}
|
|
||||||
|
|
||||||
int SDBlockDevice::_cmd58() {
|
int SDBlockDevice::_cmd58() {
|
||||||
int arg = 0;
|
int arg = 0;
|
||||||
_select();
|
_select();
|
||||||
|
@ -582,7 +559,7 @@ uint32_t SDBlockDevice::_sd_sectors() {
|
||||||
uint32_t blocks;
|
uint32_t blocks;
|
||||||
|
|
||||||
// CMD9, Response R2 (R1 byte + 16-byte block read)
|
// CMD9, Response R2 (R1 byte + 16-byte block read)
|
||||||
if (_cmdx(9, 0) != 0) {
|
if (_cmd(9, 0) != 0) {
|
||||||
debug_if(_dbg, "Didn't get a response from the disk\n");
|
debug_if(_dbg, "Didn't get a response from the disk\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,6 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int _cmd(int cmd, int arg);
|
int _cmd(int cmd, int arg);
|
||||||
int _cmdx(int cmd, int arg);
|
|
||||||
int _cmd8();
|
int _cmd8();
|
||||||
int _cmd58();
|
int _cmd58();
|
||||||
|
|
||||||
|
@ -154,13 +153,14 @@ private:
|
||||||
uint32_t _sd_sectors();
|
uint32_t _sd_sectors();
|
||||||
uint32_t _sectors;
|
uint32_t _sectors;
|
||||||
|
|
||||||
DigitalOut _cs;
|
|
||||||
uint32_t _init_sck;
|
uint32_t _init_sck;
|
||||||
uint32_t _transfer_sck;
|
uint32_t _transfer_sck;
|
||||||
SPI _spi;
|
SPI _spi;
|
||||||
void _spi_init();
|
void _spi_init();
|
||||||
void _select();
|
void _select();
|
||||||
void _deselect();
|
void _deselect();
|
||||||
|
|
||||||
|
DigitalOut _cs;
|
||||||
mutable Mutex _lock;
|
mutable Mutex _lock;
|
||||||
|
|
||||||
unsigned _block_size;
|
unsigned _block_size;
|
||||||
|
|
Loading…
Reference in New Issue