BSP: AT91SAM9260
在SDIO驱动初始化中,对host->flags赋值如下:
host->flags = MMCSD_BUSWIDTH_4 | MMCSD_MUTBLKWRITE;
并未设置MMCSD_SUP_HIGHSPEED标志.所以下面这段代码应该在判断此标志时会返回,但是从板子实际运行的情况来看,此标志被设置了,但搜索代码并未发现设置该flag.
可能出现问题处的代码:
static rt_int32_t sdio_set_highspeed(struct rt_mmcsd_card *card)
{
rt_int32_t ret;
rt_uint8_t speed;
if (!(card->host->flags & MMCSD_SUP_HIGHSPEED))
return 0;
if (!card->cccr.high_speed)
return 0;
speed = sdio_io_readb(card->sdio_function[0], SDIO_REG_CCCR_SPEED, &ret);
if (ret)
return ret;
speed |= SDIO_SPEED_EHS;
ret = sdio_io_writeb(card->sdio_function[0], SDIO_REG_CCCR_SPEED, speed);
if (ret)
return ret;
card->flags |= CARD_FLAG_HIGHSPEED;
return 0;
}
BSP: AT91SAM9260
在SDIO驱动初始化中,对host->flags赋值如下:
host->flags = MMCSD_BUSWIDTH_4 | MMCSD_MUTBLKWRITE;
并未设置MMCSD_SUP_HIGHSPEED标志.所以下面这段代码应该在判断此标志时会返回,但是从板子实际运行的情况来看,此标志被设置了,但搜索代码并未发现设置该flag.
可能出现问题处的代码: