首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux磁盘设备与LVM管理命令示例详解

前言 在 Linux 操作系统中,设备文件 是一种特殊类型的文件。这些文件绝大多数位于/dev 目录下,用来表示 Linux 主机检测到的某个具体的硬件设备。...Linux 操作系统及其应用与服务则通过这些设备文件与对应的硬件设备进行交互。 对于常见的磁盘(ATA、SATA、SCSI、SAS、SSD 等)和优盘等块存储设备,其设备文件主要以sd* 的形式命名。...文件系统是对存储设备的空间进行组织和分配,负责文件存取并对存入的文件进行保护和检索的系统。对操作系统而言,文件的读写不会直接作用于硬盘扇区,而是通过文件系统以特定的规则处理和组织文件数据。...系统中的 swap 分区可以看作位于硬盘上的“内存设备”。...如果想像根目录那样,每次系统启动时自动挂载分区,可以修改/etc/fstab 配置文件,示例内容如下: #

1.8K21

I2C总线架构 之 设备驱动

添加硬件信息(设备树) b. 搭建驱动框架 c. 构建i2c_driver,并注册到linux i2c中 d. 注册字符设备 e. 向应用层提供i2c设备操作接口 f....(具体实现放在I2C核心文章分析) e. 向应用层提供i2c设备操作接口 成功进入probe函数后,就说明i2c驱动配置基本成功。接下来在probe中需要实现字符驱动的注册,以及实现对外的读写接口。...主要分析对外接口的读写i2c设备操作: 在单片机的程序中,实现对i2c设备读写,需要手动实现读写i2c寄存器,或者通过GPIO模拟i2c时序与i2c设备通信。...而在Linux中,如何与i2c设备的具体通信已经被封装成固定的API,在程序中填充这些API的数据参数调用即可,列举读写单个字节的实现: static int ap3216c_read_regs(struct...设备读写通信中,都是通过调用i2c_transfer实现。

1.9K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    01-用户空间操作IIC

    用户空间操作I2C I2C设备驱动有两种模式:一种是用户层操作驱动设备,另一种是普通的设备驱动,应用层使用的时候像读写文件一样....内核中驱动中/drivers/i2c/i2c-dev.c提供了I2C设备的驱动,实现了read().write().ioctl等函数,不过read()和write()函数每次只能读写一次数据,无法实现连续的数据读写...示例代码 两个重要的数据结构 struct i2c_rdwr_ioctl_data结构体 /inclue/linux/i2c-dev.h /* This is the structure as used...; /* pointers to i2c_msgs */ __u32 nmsgs; /* number of i2c_msgs */ }; struct i2c_msg 结构体 include/linux...参考 i2c驱动之调用ioctl函数进行读写at24c08 Android/linux 平台下使用 i2c-tools调试IIC方法 树莓派学习笔记——I2C Tools 学习笔记 7位,8位和10位IIC

    2K30

    在全志H616核桃派开发板上配置I2C引脚并读取温度数据

    ,可以看到3和5都处于alt5了 并且存在/dev/i2c-1这个文件,因为后续我们需要通过操作这个文件来控制i2c通讯 i2c读写程序 linux下一切皆是文件。...通过open打开它,用ioctl触发读写,close关闭文件。 1. 打开文件 linux下一切皆是文件,先使用open函数打开我们要操作的设备对应文件,获取文件描述符。...向i2c总线写 从德州仪器那下载的i2c时序图↓ 加入我现在想往地址是0x3c的设备上,把寄存器0x01赋值为0x55,那msg结构体的设置就该如下。addr和flags共同决定第一帧地址帧的内容。...从i2c总线读 从德州仪器那下载的i2c时序图↓ 我现在想往地址是0x3c的设备上,读取寄存器0x01的值. 根据时序图,需要两个msg,第一个msg是写,地址帧后只跟寄存器编号。...close(fd); 示例-从mlx90614中读取温度数据 首先阅读mlx90614的手册,查看他的读写时序↓ 根据手册给的时序,这里要创建两个msg,第一个是写,buf内存放读取温度的命令0x07。

    8200

    linux读写

    读写锁 与互斥量类似,但读写锁允许更高的并行性。其特性为:写独占,读共享。 读写锁状态: 一把读写锁具备三种状态: 1. 读模式下加锁状态 (读锁) 2. 写模式下加锁状态 (写锁) 3....不加锁状态 读写锁特性: 1. 读写锁是“写模式加锁”时, 解锁前,所有对该锁加锁的线程都会被阻塞。 2....那么读写锁会阻塞随后的读模式锁请求。优先满足写模式锁。读锁、写锁并行阻塞,写锁优先级高 读写锁也叫共享-独占锁。当读写锁以读模式锁住时,它是以共享模式锁住的;当它以写模式锁住时,它是以独占模式锁住的。...函数 以读方式请求读写锁。...(非阻塞请求写锁) int pthread_rwlock_trywrlock(pthread_rwlock_t *rwlock); 读写示例 看如下示例,同时有多个线程对同一全局数据读、写操作。

    3.2K30

    手把手教你使用 i2c-tools

    i2c-tools 简介 在嵌入式开发中,有时候需要确认硬件是否正常连接,设备是否正常工作,设备的地址是多少等等,这里我们就需要使用一个用于测试 I2C 总线的工具:i2c-tools。...i2c-tools 工具是一个专门调试 i2c 的,开源,可获取挂载的设备设备地址,还可以读写 I2C 设备寄存器。 调试新的设备驱动时,难免要反复修改寄存器,然后看结果现象。...i2cdetect:用于扫描 i2c 总线上的设备,并显示地址 i2cset:设置i2c设备某个寄存器的值 i2cget:读取i2c设备某个寄存器的值 i2cdump:读取某个i2c设备所有寄存器的值...i2ctransfer:一次性读写多个字节 该工具原本是在 Linux 上使用,因为 Android 系统的内核也是 Linux,故很方便的可以移植到 Android 中。...在 /external/i2c-tools/ 目录下输入 mm 模块编译 4、在 Android 根目录输入 make snod 重新打包 system.img 5、烧写 system.img 使用示例

    2.4K11

    RT-Thread I2C总线设备学习笔记

    前面我们学习了RTT的ADC设备的使用,文章链接: RT-Thread ADC设备学习笔记 I2C的基本原理之前在公众号就有相应的文章了,很早之前发的,接下来我们来学习RT-Thread I2C总线设备的使用...本节,我们将会学习到RT-Thread I2C总线设备的基本使用。 接下来,我们将基于RT-Thread Studio来构建。...I2C设备驱动使用起来非常简单,就两个接口,分别是: rt_device_find rt_i2c_transfer 接口1:rt_device_find 查找 I2C 总线设备 rt_device_t...rt_device_find(const char* name); 参数 描述 name I2C 总线设备名称 返回 —— 设备句柄 查找到对应设备将返回相应的设备句柄 RT_NULL 没有找到相应的设备对象..._t flags; /*I2C设备参数*/ rt_uint16_t addr; /*I2C设备地址*/

    1.6K20

    【玩转ESP32】6、驱动i2c设备

    前言:在上文中聊了i2c-tools,主要使用命令行,本文使用代码驱动设备。...本文以驱动oled展开,关于oled的详细说明,可查看一文彻底了解SSD1306驱动0.96寸OLED,在这里只聊esp32的i2c如何使用。...1、初始化 (1)配置i2c:指定i2c的引脚、模式、速率等; (2)安装i2c驱动:设置发送、接收缓冲,指定中断等; 这个代码基本是固定的,当做主机的时候都可以使用以下代码来初始化 static esp_err_t...(1)创建一个句柄 (2)产生起始信号 (3)写设备地址 (4)写数据 (5)结束信号 (6)主机发送命令,通知阻塞任务 (7)删除句柄 其中2、3、4、5属于标准i2c的流程,1、6、7属于esp32...(1)创建一个句柄 (2)产生起始信号 (3)写设备地址 (4)读数据 (5)结束信号 (6)主机发送命令,通知阻塞任务 (7)删除句柄 其中2、3、4、5属于标准i2c的流程,1、6、7属于esp32

    1.8K20

    linux读写锁_共享内存读写

    一、读写锁是什么?...读写锁其实还是一种锁,是给一段临界区代码加锁,但是此加锁是在进行写操作的时候才会互斥,而在进行读的时候是可以共享的进行访问临界区的 ps:读写锁本质上是一种自旋锁 二、为什么需要读写锁?...如果每次操作都给此段代码加锁,太浪费时间了而且也很浪费资源,降低程序的效率,因为读操作不会修改数据,只是做一些查询,所以在读的时候不用给此段代码加锁,可以共享的访问,只有涉及到写的时候,互斥的访问就好了 三、读写锁的行为...读写之间是互斥的—–>读的时候写阻塞,写的时候读阻塞,而且读和写在竞争锁的时候,写会优先得到锁 四、自旋锁&挂起等待是锁?...---->读和写在同时竞争锁的时候,写会优先的得到锁 互斥---->读的时候写阻塞,写的时候读阻塞 4.相关函数 (1)pthread_rwlock_init()—->初始化函数 功能:初始化读写

    6.2K10

    Linux系统驱动之I2C协议

    资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...硬件连接 I2C在硬件上的接法如下所示,主控芯片引出两条线SCL,SDA线,在一条I2C总线上可以接很多I2C设备,我们还会放一个上拉电阻(放一个上拉电阻的原因以后我们再说)。 2....传输数据类比 怎么通过I2C传输数据,我们需要把数据从主设备发送到从设备上去,也需要把数据从从设备传送到主设备上去,数据涉及到双向传输。...下图:白色背景表示"主→从",灰色背景表示"从→主" 3.3 I2C信号 I2C协议中数据传输的单位是字节,也就是8位。但是要用到9个时钟:前面8个时钟用来传输8数据,第9个时钟用来传输回应信号。...当它就绪后,就可以不再驱动三极管,这是上拉电阻把SCL变为高电平,其他设备就可以继续使用I2C总线了。 对于IIC协议它只能规定怎么传输数据,数据是什么含义由从设备决定。

    2.9K20

    Linux Regmap 子系统

    学习 I2C 和 SPI 驱动的时候,针对 I2C 和 SPI 设备寄存器的操作都是通过相关的 API 函数进行操作的。...这样 Linux 内核中就会充斥着大量的重复、冗余代码,但是这些本质上都是对寄存器的操作,所以为了方便内核开发人员统一访问 I2C/SPI 设备的时候,为此引入了 Regmap 子系统。...1、什么是 Regmap Linux 下大部分设备的驱动开发都是操作其内部寄存器,比如 I2C/SPI 设备的本质都是一样的,通过 I2C/SPI 接口读写芯片内部寄存器。...Linux 下使用 i2c_transfer 来读写 I2C 设备中的寄存器,SPI 接口的话使用 spi_write/spi_read等。...什么情况下会使用 regmap: ①、硬件寄存器操作,比如选用通过 I2C/SPI 接口来读写设备的内部寄存器,或者需要读写 SOC 内部的硬件寄存器。

    2.8K40

    Linux I2C驱动入门,建议收藏!

    Linux内核将 I2C 驱动分为两部分: I2C 总线驱动, I2C总线驱动就是SOC的 I2C控制器驱动,也叫做 I2C适配器驱动。...I2C驱动 i2c_driver 类似 platform_driver,是我们编写 I2C 设备驱动重点要处理的内容, i2c_driver 结构体定义在 include/linux/i2c.h 文件中...I2C设备 I2C设备结构体i2c_client 结构体定义在 include/linux/i2c.h 文件中,内容如下: struct i2c_client { unsigned short...Linux I2C总线的运行机制: 注册I2C驱动 将I2C驱动添加到I2C总线的驱动链表中 遍历I2C总线上的设备链表,根据i2c_device_match函数进行匹配,如果匹配调用i2c_device_probe...对于我们 I2C 设备驱动编写人来说,重点工作就是构建i2c_driver,构建完成以后需要向Linux内核注册这个i2c_driver。 那么如何注册呢?

    3K20

    【玩转 RT-Thread】I2C 内核

    总线设备 六、数据传输 七、I2C 总线设备使用示例 一、i2c协议 由飞利浦公司开发,支持设备间的短距离通信。...总线设备名称 返回 – 设备句柄 查找到对应设备将返回相应的设备句柄 RT-NULL 没有找到相应的设备对象 一般情况下,注册到系统的I2C 设备名称为i2c0 ,i2c1 等,使用示例如下所示: #..._t len; /* 读写数据字节数*/ rt_uint8_t *buf; /* 读写数据缓冲区指针 */ } 从机地址addr:支持7 位和10 位二进制地址,需查看不同设备的数据手册。...note “注意事项” RT-Thread I2C 设备接口使用的从机地址均不包含读写位,读写位控制需修改标志flags。...return RT_EOK; } else { return -RT_ERROR; } } 七、I2C 总线设备使用示例 I2C 设备的具体使用方式可以参考如下示例代码,示例代码的主要步骤如下

    47740
    领券