0

我使用 IP TE4395 为完全定制的板编写了 SD 主机控制器 Linux 驱动程序。


用我写的驱动程序,

  • 我可以安装SD卡,读写。
  • 安装后,一旦 I umount,下一个mount将失败。
  • 命令mount -o remount /dev/mmcblk0p1正常工作....

# ls /mnt/
aaa.txt     lost+found
# mount -o remount /dev/mmcblk0p1
EXT4-fs (mmcblk0p1): re-mounted. Opts: block_validity,delalloc,barrier,user_xattr,acl
# echo adfaf >/mnt/bbb.txt
# ls /mnt/
aaa.txt     bbb.txt     lost+found
# cat /mnt/bbb.txt
adfaf
# sync
# ls /mnt/
aaa.txt     bbb.txt     lost+found
# umount /mnt/
# mount /dev/mmcblk0p1 /mnt
mount: mounting /dev/mmcblk0p1 on /mnt failed: Invalid argument
4

1 回答 1

0

我知道原因。司机有问题。我添加了一些调试代码,即在驱动程序写入寄存器时读取寄存器。而且Data Port寄存器比较特殊,当访问寄存器时,控制器内部的缓冲区指针会自动递增。调试代码在写入寄存器之前和之后读取,因此访问了 3 次寄存器,但预计只有 1 次访问(写入)。

于 2016-09-02T06:32:00.830 回答