IMX8M学习-驱动简易框架与分类

本文介绍了Linux设备驱动的重要性和工作原理,详细讲解了驱动框架,并分类探讨了字符设备、块设备和网络设备驱动,包括它们的特点、访问方式和应用场景。
摘要由CSDN通过智能技术生成

今天来聊聊Linux的驱动

Linux设备驱动时Linux系统中必不可少的一个重要组成部分。

linux的应用程序是不能直接访问硬件的,必须要通过驱动才能访问硬件。

具体的步骤是:Linux应用程序—>Linux设备驱动程序—>访问硬件

例如图形显示:

Linux系统IO函数(应用程序)—>显卡的驱动程序—>显卡和液晶屏硬件

每个硬件都需要有自己的驱动程序,驱动程序给应用程序提供的是一个标准的接口#

驱动框架

给大家随意画了个图参考一下
在这里插入图片描述

Linux设备驱动的分类

1.字符设备驱动

应用程序和驱动程序之间是按照字节来传输数据的,传输的数据是实时的,是没有缓存的。字符设备也是没有文件系统的。
设备:显卡、声卡、串口、摄像头、LED、BEEP、按键、鼠标、键盘、触摸屏、ADC、I2C、…

访问字符设备的方法:
系统IO函数:open()、mmap()、write()、read()、ioctl()、close()

2、块设备驱动
大容量的存储设备,块设备上面需要使用文件系统、而且带有缓存。例如:电子硬盘、U盘、SD卡、机械硬盘、…
1)查看块设备的设备文件

==>ls /dev -l
drwxr-xr-x 2 root root         320 Feb 20 20:24 block
drwxr-xr-x 3 root root          60 Jan  1  1970 bus
drwxr-xr-x 2 root root        3440 Feb 20 20:24 char
drwxr-xr-x 6 root root         120 Feb 20 20:24 disk
drwxr-xr-x 3 root root          80 Feb 20 20:24 dri

2)查看硬盘的使用情况

==>df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.6G  1.6G  4.7G  26% /
devtmpfs        507M  4.0K  507M   1% /dev
tmpfs           988M     0  988M   0% /dev/shm
tmpfs           988M  8.5M  979M   1% /run
tmpfs           988M     0  988M   0% /sys/fs/cgroup
tmpfs           988M  4.0K  988M   1% /tmp
tmpfs           988M  192K  987M   1% /var/volatile
/dev/mmcblk0p1  500M   23M  478M   5% /run/media/mmcblk0p1
tmpfs           198M   88K  198M   1% /run/user/0

分析/dev/root---->rootfs所在分区。

==>ls /dev/mmcblk* -l
brw-rw---- 1 root disk 179,  0 Feb 20 20:24 /dev/mmcblk0
brw-rw---- 1 root disk 179, 32 Feb 20 20:24 /dev/mmcblk0boot0
brw-rw---- 1 root disk 179, 64 Feb 20 20:24 /dev/mmcblk0boot1
brw-rw---- 1 root disk 179,  1 Feb 20 20:24 /dev/mmcblk0p1
brw-rw---- 1 root disk 179,  2 Feb 20 20:24 /dev/mmcblk0p2
brw-rw---- 1 root disk 179, 96 Feb 20 20:24 /dev/mmcblk0rpmb

一般fs会放在mmcblk0p2下面

内核的启动输出:

==>dmesg|grep EXT4-fs
[    4.545484] EXT4-fs (mmcblk0p2): mounting ext3 file system using the ext4 subsystem
[    4.706012] EXT4-fs (mmcblk0p2): recovery complete
[    4.710127] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[    5.420665] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
==>mount /dev/mmcblk0p2 /mnt
root@imx8mqevk:~# ls /mnt
bin   dev  fb.jpg  lib	       media	  mnt  proc  sbin  tmp	       usr
boot  etc  home    lost+found  memtester  opt  run   sys   unit_tests  va

3)查看硬盘的分区

==>cat /proc/partitions 
major    minor   #blocks    	name
179        0    7634944 	mmcblk0
179        1     512000 	mmcblk0p1
179        2    7020544 	mmcblk0p2
179       96        512 	mmcblk0rpmb
179       64       4096 	mmcblk0boot1
179       32       4096 	mmcblk0boot0

3、网络设备驱动
1)
主要是针对网卡设备,例:网卡、wifi、…
网络设备是没有设备文件的。

2)以太网网络分层

应用层
表示层
会话层
--------------网络应用,如:tftp、telnet、HTTP、音视频传输—>linux应用程序

传输层
网络层
--------------TCP/IP协议—>linux内核
数据链路层
--------------Linux网卡驱动---->Linux内核

物理层
--------------网卡硬件

3)网卡操作
#ifconfig -a

#ifconfig eth0 up
#ifconfig eth0 down

#ifconfig eth0 192.168.14.20

4)应用程序访问网卡的方法
socket套接字+TCP或UDP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值