On 2013-10-04 09:34, Pavel Pisa wrote:
From: Pavel Pisa <pp...@pikron.com>
STOP_TRANSMISSION command is used to finish READ_MULTIPLE_BLOCK
command and its format is regular command format.
It requires valid CRC-7 to have effect at least on
some card brands else it is ignored and attempt
to issue next READ or WRITE commands results in
illegal command condition (0x04) preceded by strange
(0x3f) for tested card.
Signed-off-by: Pavel Pisa <pp...@pikron.com>
---
c/src/libchip/i2c/spi-sd-card.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/c/src/libchip/i2c/spi-sd-card.c b/c/src/libchip/i2c/spi-sd-card.c
index 5a30451..89d5fb5 100644
--- a/c/src/libchip/i2c/spi-sd-card.c
+++ b/c/src/libchip/i2c/spi-sd-card.c
@@ -501,8 +501,12 @@ static int sd_card_send_register_command(
sd_card_driver_entry *e, uint32_t comm
static int sd_card_stop_multiple_block_read( sd_card_driver_entry *e)
{
int rv = 0;
+ uint8_t crc7;
SD_CARD_COMMAND_SET_COMMAND( e->command, SD_CARD_CMD_STOP_TRANSMISSION);
+ SD_CARD_COMMAND_SET_ARGUMENT( e->command, 0);
+ crc7 = sd_card_compute_crc7( e->command + 1, 5);
+ SD_CARD_COMMAND_SET_CRC7( e->command, crc7);
rv = rtems_libi2c_write_bytes( e->bus, e->command,
SD_CARD_COMMAND_SIZE);
RTEMS_CHECK_RV( rv, "Write stop transfer token");
Since the command uses only constants is it sufficient to use
SD_CARD_COMMAND_SET_ARGUMENT( e->command, 0);
SD_CARD_COMMAND_SET_CRC7( e->command, 0x7a);
?
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
rtems-devel mailing list
rtems-devel@rtems.org
http://www.rtems.org/mailman/listinfo/rtems-devel