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 に答える