我使用IP TE4395为完全定制的电路板编写了一个SD主控制器Linux驱动程序。
用我写的驱动程序
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
答案 0 :(得分:0)
我知道原因。
司机有问题。我添加了一些用于调试的代码,当驱动程序写入寄存器时读取寄存器
并且Data Port
寄存器是特殊的,当访问寄存器时,控制器内的缓冲区指针将自动递增。
调试代码在写入寄存器之前和之后读取,因此访问寄存器3次,但预计只需1次访问(写入)。