rtt格式化spi flash
使用mkfs("elm","spi1")格式化spi flash,没有成功,提示can not find device driver:spi1
但使用list_deive()命令
device type
-------- ----------
e0 Network Interface
rtc RTC
sd0 Character Device
spi1 Block Device
uart3 Character Device
uart2 Character Device
uart1 Character Device
有设备的驱动,
是什么原因,谢谢 应该属于早期,mkfs时,仅从mount table里面find,而不是从系统里面find。
需要先mount(此时mount并不做文件系统的检查),然后再mkfs。
现已修改为:不管是否mount,都可以mkfs,建议先mkfs再mount,或已经mount的先unmount再mkfs再mount回。
同时,mount时会做格式,如果没有系统,或已完全损坏,则mount不成功。
相关修改见:elm fatfs support mkfs with no need torun dfs_mount elm first; and can mount/umount/mkfs without reset any more 早期是什么意思,我的系统 是最新的1.1 本帖最后由 aozima 于 2013-5-30 10:14 编辑
dmjkun 发表于 2013-3-10 15:36 static/image/common/back.gif
早期是什么意思,我的系统 是最新的1.1
即: 需要使用上面给出的补丁之后的版本
可以在github上面clone一份出来,或直接按上面链接的diff对比 components/dfs/filesystems/elmfat/dfs_elm.c 应该属于早期,mkfs时,仅从mount table里面find,而不是从系统里面find。
需要先mount(此时mount并不做文件系统的检查),然后再mkfs。
现已修改为:不管是否mount,都可以mkfs,建议先mkfs再mount,或已经mount的先unmount再mkfs再mount回。
同时,mount时会做文件系统检查,如果没有文件系统,或已完全损坏,则mount不成功。
此时可以根据mount的返回值和实际需求,做自动格式化(危险操作,可能会误删数据,建议非必要的情况下不要让程序自动格式化)。
相关修改见:elm fatfs support mkfs with no need torun dfs_mount elm first; and can mount/umount/mkfs without reset any more
参考代码: /* Filesystem Initialization */
#ifdef RT_USING_DFS
{
rt_bool_t mount_flag = RT_FALSE;
if (dfs_mount("flash0", "/", "elm", 0, 0) == 0)
{
mount_flag = RT_TRUE;
}
else
{
rt_kprintf("flash0 mount to / failed!, fatmat and try again!\n");
/* fatmat filesystem. */
dfs_mkfs("elm", "flash0");
/* re-try mount. */
if (dfs_mount("flash0", "/", "elm", 0, 0) == 0)
{
mount_flag = RT_TRUE;
}
}
if(mount_flag == RT_TRUE)
{
rt_kprintf("flash0 mount to / \n");
}
}
#endif /* RT_USING_DFS */ 本帖最后由 dmjkun 于 2013-5-31 15:41 编辑
现在可以格式 化了,但在mount过程中卡死在f_opendir函数的 LEAVE_FF(dj->fs, res);
后跟踪到res = follow_path(dj, path);返回 FR_INT_ERR错误,
格式化后把第一扇区读回来,应该是格式 化成功了,但为什么dfs_mount不成功呢
页:
[1]