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

41 篇文章 21 订阅
23 篇文章 5 订阅

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


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 将ARM Linux移植到特定硬件平台,通常需要进行一系列的步骤和操作。这些步骤可以大致概括为以下几点: 1. 了解目标硬件平台:首先,需要对目标硬件平台的体系结构和特性进行深入了解,包括处理器架构、内存布局、外设接口等方面的信息。这将有助于确定移植过程中需要考虑的关键问题。 2. 配置交叉编译环境:ARM Linux移植需要使用交叉编译器,以便在x86主机上编译适用于ARM架构的代码。需要下载和配置适当的交叉编译工具链。 3. 配置内核选项:根据目标硬件平台的特点,配置Linux内核选项。这包括选择适当的处理器类型、内存大小、设备驱动程序以及特定于硬件平台的选项。可以使用make menuconfig命令来进行交互式配置。 4. 在目标硬件上烧写内核:根据目标硬件平台的启动方式(例如使用SD卡、NAND闪存等),将编译好的内核映像烧录到目标硬件设备上。 5. 移植Bootloader:在启动过程中,Bootloader负责加载内核到RAM中并开始执行。根据目标硬件平台的要求,需要选择、配置并编译适当的Bootloader。 6. 配置设备树:设备树描述了目标硬件平台上的硬件组成和配置信息。需要根据目标硬件平台的要求,编写和配置设备树文件,以确保内核正确地识别和配置硬件设备。 7. 调试和修复:在将ARM Linux移植到目标硬件平台后,可能会出现一些问题,例如驱动不兼容、硬件设备无法正常工作等。需要使用调试工具和方法,逐步定位和解决问题。 总之,ARM Linux移植是一个相对复杂的过程,需要深入了解目标硬件平台,并进行一系列的配置和操作。通过认真分析和调试,最终可以使ARM Linux在目标硬件平台上正常运行。 ### 回答2: arm linux 移植是将 Linux 操作系统移植到 ARM 架构的硬件平台上的过程。ARM 是一种低功耗、高性能的处理器架构,广泛应用于移动设备、嵌入式系统和物联网等领域。移植 LinuxARM 平台可以提供强大的操作系统功能和广泛的软件支持。 在进行 ARM Linux 移植时,首先需要了解目标硬件平台的 CPU 架构、内存布局和硬件接口等信息。然后,在原有的 Linux 内核代码基础上,根据目标硬件平台的特点和要求,对内核进行配置和修改,以适配 ARM 架构。这包括选择合适的内核配置选项、编译内核并生成合适的启动映像(例如 uImage),以及配置和编译设备驱动程序等。 接下来,需要处理 bootloader 的问题。ARM 平台上常用的 bootloader 包括 U-Boot、GRUB 等,通过它们可以完成启动内核的过程。对于移植工作,需要根据实际情况对 bootloader 进行相关配置,确保能够正确加载和启动内核。 另外,还需要进行文件系统的适配。由于 ARM 平台与 x86 平台在字节序、文件系统支持等方面存在差异,需要将文件系统适配为适合 ARM 架构的版本。常见的文件系统包括 ext4、UBIFS、JFFS2 等,需要在移植过程中选择和配置合适的文件系统。 在进行 ARM Linux 移植时,还需要处理各种设备驱动程序的适配问题。ARM 平台上的设备种类繁多,如显示器、触摸屏、网卡、声卡等,需要针对具体的硬件平台编写或适配相应的设备驱动程序,使其能够在 ARM Linux 中正常工作。 综上所述,ARM Linux 移植是一项复杂的工作,需要深入了解 ARM 架构、Linux 内核和目标硬件平台的特点,通过适配内核、bootloader、文件系统和设备驱动程序等,使 Linux 能够在 ARM 平台上稳定运行,并发挥其强大的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Acuity.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值