您的位置:首页 > 运维架构 > Linux

ARM Linux判断SD卡是否加载成功

2018-01-03 16:49 633 查看
1、写在前面
ARM-Linux在访问SD卡数据时,严格的步骤,第一步应该是检查SD卡是否被系统成功加载。当然,缺少这一步也不影响,从后面应用层访问操作的返回值也可知道操作状态,但如果在第一部就有检查时,出现问题可以立刻发现。
2、判断SD卡加载状态
1)通过“sdcard”文件夹
Linux下如果加载SD卡成功,在根目录下会生成一个“sdcard”文件夹,SD卡的内容,及用户访问数据,都通过这个文件夹。因此用户可以扫描根目录下,“sdcard”文件夹是否存在,来判断SD卡是否加载成功。但,也会有个别情况,比如有时候SD卡已经卸载了,应用层端未及时响应(这个有可能是我这么Linux系统移植的问题),此时“sdcard”文件夹仍然存在,但可以肯定的是,访问该文件夹会导致异常。
2)通过SD卡设备
另外一种可靠的办法是,检查SD卡设备。Linux的思维是“一切皆文件”,外设驱动成功加载时,会在设备驱动文件夹(“/dev”)下生成相应的设备文件,如我这边的Linux成功加载SD卡时,在“/dev”下识别为“mmcblk0”设备。



这样通过“mmcblk0”设备是否存在即可实现我们的目的。
“检查文件是否存在”是我们的目的,至于实现方式有很多种:
—shell脚本;
—c语言用access函数;
—c语言用open函数。
采用第三种方式,文件存在时,返回成功状态,否则文件不存在,简单明了!
int check_sd()
{
int file = -1;
file = open( "/dev/mmcblk0", O_RDONLY);
close(file);
return file;
}3、参考
1)https://www.cnblogs.com/lidabo/p/5630498.html
2)http://blog.csdn.net/fybon/article/details/29813685

ae2b
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: