这几天一直在弄RTT的sd,之前在裸机程序下把SD卡的驱动移植了一遍,成功的挂载了FATFS,这几天想在RTT上挂载一个SD卡,使用的是官方的SDIO驱动程序,没做修改,同时还挂载了一个flash,但是SD一直mount不成功。这是我的文件初始化部分的代码。
if (dfs_mount("flash0", "/", "elm", 0, 0) == 0)
{
rt_kprintf("flash0 mount to /.
");
}
else
{
rt_kprintf("flash0 mount to / failed.
");
}
if(dfs_mount("sd0", "/sd", "elm", 0, 0) == 0)
{
rt_kprintf("SD mount to /sd.
");
}
else
{
rt_kprintf("SD mount to /sd failed.
");
}
运行时出现这样的结果
finsh>>flash0 mount to /.
SD mount to /sd failed.
查看挂载的设备,能够找到sd0-blockdevice
list_device()
device type ref count
-------- -------------------- ----------
lcd Graphic Device 0
flash0 Block Device 1
spi_flas SPI Device 0
spi2 SPI Bus 0
sd0 Block Device 0
uart3 Character Device 0
uart2 Character Device 0
uart1 Character Device 2
0, 0x00000000
使用mkfs对sd0进行格式化也不成功。
finsh>>mkfs("elm","sd0")
sorry, there is no space to do mkfs!
-28, 0xffffffe4
我用的sd卡是金士顿8g的卡,官方的sdio驱动看说明应该是能支持8g的卡的啊,是不是还要修改代码。
| /
- RT - Thread Operating System
/ | 2.0.1 build Jul 14 2015
2006 - 2015 Copyright by rt-thread team
sd get card info success
CardType is: 2
CardCapacity is: -641728512
CardBlockSize is: 512
RCA is: 43690
sd select success
sd enable wide bus success