嵌入式开发 linux
sam0535
这个作者很懒,什么都没留下…
展开
-
Linux-DTS基础
QQ交流:EMMC-UFS Community 581375017,欢迎加入!设备树使用手册 Device Tree是一种描述硬件的数据结构,由一系列被命名的结点(node)和属性(property)组成,而结点本身可包含子结点。所谓属性,其实就是成对出现的name和value。在Device Tree中,可描述的信息包括(原先这些信息大多被转载 2017-07-05 14:41:04 · 334 阅读 · 0 评论 -
Linux Kernel 学习笔记9:内核与用户层通信之netlink
(本章基于:Linux-4.4.0-37)内核与用户空间通信有很多种通信方式,netlink是其中一种,其余的还有/proc、ioctl、sockopt、共享内存等等。netlink的特点是异步全双工。netlink使用32位端口寻址,称为pid(与进程号没有关系),其中内核的pid地址为0,。netlink主要特性如下:1 支持全双工、异步通信(当然同转载 2017-11-27 16:24:38 · 946 阅读 · 0 评论 -
I2C总线之(三)---以C语言理解IIC
为了加深对I2C总线的理解,用C语言模拟IIC总线,边看源代码边读波形:如下图所示的写操作的时序图: 读时序的理解同理。对于时序不理解的朋友请参考“I2C总线之(二)---时序”完整的程序如下: #include#define uchar unsigned char#define uint unsigned int#define write_ADD 0转载 2017-11-16 15:51:42 · 188 阅读 · 0 评论 -
I2C总线之(二)---时序
一、协议 1.空闲状态 I2C总线总线的SDA和SCL两条信号线同时处于高电平时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。 2.起始位与停止位的定义: 起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。停止信号:当SCL为高期间,SDA由低转载 2017-11-16 15:50:50 · 494 阅读 · 0 评论 -
I2C总线之(一)---概述
概述:I²C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一种两线接口。I²C 只是用两条双向的线,一条 Serial Data Line (SDA) ,另一条Serial Clock (SCL)。SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿转载 2017-11-16 15:50:00 · 279 阅读 · 0 评论 -
树莓派学习笔记——Linux I2C驱动说明
1.前言【linux内核说明】通常情况下,I2C设备由内核驱动控制,但是某些情况下I2C设备也可由用户空间控制。如果在用户空间控制I2C设备,需要访问/dev目录中所提供的接口,在使用I2C设备之前必须要载入i2c-dev设备。每一个已经注册的IC设备都有一个编号,该编号从0开始计算。可以查看/sys/class/i2c-dev目录以获得I2C适配器的信息,或者使用i2cdetect工转载 2017-11-16 10:18:15 · 1005 阅读 · 0 评论 -
unlocked_ioctl和compat_ioctl
kernel 2.6.35 及之前的版本中struct file_operations 一共有3个ioctl :ioctl,unlocked_ioctl和compat_ioctl现在只有unlocked_ioctl和compat_ioctl 了在kernel 2.6.36 中已经完全删除了struct file_operations 中的ioctl 函数指针,取而代转载 2017-11-21 10:53:40 · 581 阅读 · 0 评论 -
基于linux 3.10.49内核的pinctrl流程分析 补充
基于linux 3.10.49内核的pinctrl流程分析 补充Linux kernel 3.10.49+重要结构体:struct pinctrl_desc { // pinctrl_register(...) 使用到. const char *name; // 设备的名字转载 2017-07-05 15:29:56 · 162 阅读 · 0 评论 -
基于linux 3.10.49内核的pinctrl流程分析
基于linux 3.10.49内核的pinctrl流程分析linux kernel 3.10.49+pinctrl驱动的platform注册就不说了,无非就是platform_driver_register这个入口,最后匹配到合适的设备后调用struct platform_driver 的probe函数.这里说说, pinctl io复用关系(pinmux)的是怎么通过de转载 2017-07-05 15:28:47 · 215 阅读 · 0 评论