SylixOS块设备驱动开发(一)

gewenbin
gewenbin
gewenbin
188
文章
15
评论
2021年1月9日14:23:41 评论 1,379

认识块设备

1. 存储设备

在嵌入式中,常见的存储设备有SD卡、eMMC、sata硬盘、U盘、NVMe盘等。其中SD卡和eMMC使用的是SD协议,sata盘使用的是sata协议(包括机械硬盘和固态硬盘),U盘使用的是USB协议,NVMe盘使用的是NVMe协议。这些存储设备的数据读写并不像字符设备那样是字节流形式,而是块形式,也就是以一个个扇区来进行访问,一个扇区的典型大小为512字节。

另外厂商对于设备容量的计算方法和计算机中计算容量方法是不一样的,比如一个硬盘厂商宣称它的容量是500GB,是按照1000字节单位来算的,也就是实际容量是500 * 1000 * 1000 *1000字节,而计算机中识别设备容量是按照1024字节单位来算的,所以一个500GB硬盘在计算机中识别出来大约是465.66GB,emmm......

SylixOS块设备驱动开发(一)

2. SylixOS块设备位置

SylixOS下的块设备一般创建在 /dev/blk 目录下,各类协议设备创建出的名字一般如下:

  • SD协议类设备名字为sdcard-0、sdcasrd-1等。这里的0和1并不是指分区,而是代表一个盘(控制器),和Linux不同的是,在SylixOS中不会为各个分区再单独创建设备文件。
  • sata协议类设备名字为hdd-0,、hdd-1等。
  • U盘设备名字为udisk-0、udisk-1等。
  • NVMe协议类设备名字为nvme-0、nvme-1等。
[root@sylixos:/dev/blk]# ll
brw-r--r-- root     root     Sat Jan 01 08:00:00 2000    256MB, sdcard-0
      total items: 1
[root@sylixos:/dev/blk]#

3. SylixOS块设备挂载位置

我们在应用层使用块设备都是通过读写某个目录下的文件方式来实现的,所以需要将块设备挂载到系统的某个目录下来使用。SylixOS一般将设备的各个分区挂载到 /media 目录下:

[root@sylixos:/root]# cd /media/
[root@sylixos:/media]# ll
drwxrwxrwx root     root     Sat Jan 01 08:00:04 2000           sdcard0/
      total items: 1
[root@sylixos:/media]#

另外在根目录下的比如apps、lib这些目录,其实真正的位置都在 /media 下的某个分区里,根目录下的位置只是一个软连接,方便使用而已:

[root@sylixos:/media]# cd /
[root@sylixos:/]# ll
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           apps -> /media/sdcard0/apps
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           bin -> /media/sdcard0/bin
lrw-rw-rw- root     root     Sat Jan 01 08:00:00 2000           boot -> /media/sdcard0
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           etc -> /media/sdcard0/etc
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           home -> /media/sdcard0/home
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           lib -> /media/sdcard0/lib
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           qt -> /media/sdcard0/qt
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           root -> /media/sdcard0/root
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           sbin -> /media/sdcard0/sbin
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           tmp -> /ram/tmp
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           usr -> /media/sdcard0/usr
lrwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           var -> /media/sdcard0/var
drwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           ram/
drw-rw-rw- root     root     Sat Jan 01 08:00:00 2000           yaffs2/
drw-r--r-- root     root     Sat Jan 01 08:00:00 2000           proc/
drwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           media/
drwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           mnt/
drwxr-xr-- root     root     Sat Jan 01 08:00:00 2000           dev/
      total items: 18
[root@sylixos:/]#

 

gewenbin
  • 本文由 发表于 2021年1月9日14:23:41
  • 转载请务必保留本文链接:http://www.databusworld.cn/9932.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: