博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sdio (四) linux sdio 用户空间
阅读量:4283 次
发布时间:2019-05-27

本文共 1776 字,大约阅读时间需要 5 分钟。

sd驱动呈现的最高层分别是几个 apisd_initsd_multi_readsd_multi_writesd_single_readsd_single_write但是我们读写磁盘,并不直接使用这几个 api 来操作sd卡.(因为我们读写的不是磁盘,而是文件,所以可以说在磁盘的ops上封装出了一层,就是文件层,更大方面说是文件系统层)其实除了文件系统层,还封装了块层. 下面先借一张图说事

在这里插入图片描述

除了 read 等 系统调用接口及普通文件,还呈现给用户空间的包括一些 与磁盘相关的节点 和 实用工具.
  • 节点
wit@vexpress:/ # ls /dev/mmcblk0 /dev/mmcblk0mmc_blk_alloc	mmc_blk_alloc_req		snprintf(md->disk->disk_name, sizeof(md->disk->disk_name), "mmcblk%u%s", md->name_idx, subname ? subname : "");
  • 实用工具
wit@vexpress:/ # fdisk -lDisk /dev/mmcblk0: 25 MB, 26214400 bytes, 51200 sectors800 cylinders, 4 heads, 16 sectors/trackUnits: sectors of 1 * 512 = 512 bytesDisk /dev/mmcblk0 doesn't contain a valid partition tableopen("/dev/mmcblk0", O_RDONLY|O_LARGEFILE) = 5ioctl(5, HDIO_GETGEO, {
heads=4, sectors=16, cylinders=800, start=0}) = 0close(5) = 0open("/dev/mmcblk0", O_RDONLY|O_LARGEFILE) = 5dup2(5, 3) = 3close(5) = 0read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512) = 512ioctl(3, BLKSSZGET, [512]) = 0ioctl(3, HDIO_GETGEO, {
heads=4, sectors=16, cylinders=800, start=0}) = 0ioctl(3, BLKGETSIZE64, [26214400]) = 0write(1, "Disk /dev/mmcblk0: 25 MB, 262144"..., 56Disk /dev/mmcblk0: 25 MB, 26214400 bytes, 51200 sectors) = 56write(1, "800 cylinders, 4 heads, 16 secto"..., 41800 cylinders, 4 heads, 16 sectors/track) = 41write(1, "Units: sectors of 1 * 512 = 512 "..., 39Units: sectors of 1 * 512 = 512 bytes) = 39write(1, "Disk /dev/mmcblk0 doesn't contai"..., 58Disk /dev/mmcblk0 doesn't contain a valid partition table) = 58core/debugfs.c:177:static const struct file_operations mmc_ios_fops = {
core/debugfs.c:329:static const struct file_operations mmc_dbg_ext_csd_fops = {

转载地址:http://zrngi.baihongyu.com/

你可能感兴趣的文章
uboot工作流程分析
查看>>
不錯的技術論壇
查看>>
GDB 常用參數
查看>>
pthread man page
查看>>
Linux 如何修改 root 密碼
查看>>
nc 傳輸
查看>>
vi 與 vim 的指令整理
查看>>
console & telnet判斷
查看>>
sqlite3
查看>>
關於如何快速切換目錄(Linux)
查看>>
Save Time with minicom macros
查看>>
svn : how to set the executable bit on a file?
查看>>
vim 取代指令
查看>>
git 修改過檔案後,如何commit上server
查看>>
git log 應用
查看>>
Git 版本控制系統(3) 還沒 push 前可以做的事
查看>>
Git 基礎 - 檢視提交的歷史記錄
查看>>
wifi 連ap command
查看>>
git clean reset checkout
查看>>
[轉載]6個超強網站讓你查到最道地的英文
查看>>