- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 FIFO存储器
什么是FIFO? FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据,顺序的读出数据,其数据地址由内部读写指针自动加1完成,不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。 FIFO的一些重要参数 FIFO的宽度
2017-03-30 19:00:09 878
转载 Linux Kernel网络部分代码剖析
在这个系列文章中,我自己将尝试着分析Linux kernel2.6下面的中的网络部分的源代码,主要是TCP/IP部分,只是记录自己的学习经历,如果你感兴趣,不妨说出你的理解。 这是第一部分,主要分析一下 TCP/IP相关协议以及实现网络协议时kennel常用的数据结构,提供一些基础知识。注意,虽然分析的主要是TCP/IP族,但不可避免提及其它的一些协议,因为TCP/IP族只
2017-03-28 14:33:08 2623
转载 Linux kernel中网络设备的管理
kernel中使用net_device结构来描述网络设备,这个结构是网络驱动及接口层中最重要的结构。该结构不仅描述了接口方面的信息,还包括硬件信息,致使该结构很大很复杂。通过这个结构,内核在底层的网络驱动和网络层之间构建了一个网络接口核心层(这个叫法引自《TCP迁移报告》),这个中间层类似于文件子系统的VFS。这样底层的驱动程序就不需要过多地关注上层的网络协议,只需要通过内核提供的网络接口
2017-03-28 14:28:53 704
转载 Linux内核IOCTL网络控制框架实现实例分析
一、概述从ioctl 这个名称上看,它是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等, 但实际上ioctl所处理的对象并不限制是真正的I/O设备,还可以是其它任何一个内核设备.ioctl以系统调用的形式提供了一条用户与内核交互的便捷途径。当前一些宽带计费网关、防火墙系统均利用Ioctl与内核
2017-03-28 14:17:47 541
转载 ueventd.rc
前言 与Linux相同,Android中的应用程序通过设备驱动访问硬件设备。设备节点文件是设备驱动的逻辑文件,应用程序使用设备节点文件来访问驱动程序。在Linux中,运行所需的设备节点文件被被预先定义在“/dev”目录下。应用程序无需经过其它步骤,通过预先定义的设备节点文件即可访问设备驱动程序。 但根据Android的init进程的启动过程,我们知道,Android根文件系统的
2017-03-27 14:55:51 6792 1
转载 波特率和比特率
码元:在数字通信中常常用时间间隔相同的符号来表示数字。这样的时间间隔内的信号称为码元,这个间隔称为码元长度波特率:是码元传输速率单位,他说明单位时间传输了多少个码元。比特率:是信息量传送速率单位,即每秒传输二进制代码位数。bit/s可能还不是很清楚,举例说明:如果在数字传输过程中,用0V表示数字0,5V表示数字1,那么每个码元有两种状态0和1. 每个码元代表一个二进制数字。
2017-03-27 10:45:51 524
原创 Linux设备和驱动的匹配过程
Linux设备驱动注册过程如下所示:xxxx_driver_register()----->driver_register()----->bus_add_driver()----->driver_attach()-----> __driver_attach()Linux设备添加过程如下所示:xxxx_device_add()----->device_add()----->bus_add_devic
2017-03-24 18:04:45 7268
原创 tty接收、发送及波特率设置
stty 命令设置tty波特率:busybox stty -F /dev/ttyS0 raw speed 115200min 0 time 2cat /dev/ttyS3 :接收echo "xxxxxxxxxx" > /dev/ttyS3 :发送
2017-03-24 12:18:26 5345
转载 XON/XOFF
XON/XOFF是一种异步通信协议,接收方使用特殊字符来控制发送方传送的数据流。当接收方不能继续接收数据时,发送一个XOFF控制字符告诉发送方停止传送;当传输可以恢复时,该计算机发送一个XON字符来通知发送方。其中XON采用ASCII字符集中的控制字符DC1,XOFF采用ASCII字符集中的控制字符DC3。当通信线路上的接收方发生过载时,便向发送方发送一个XOFF字符,发
2017-03-23 09:34:58 5612
原创 MIPI Generic和DCS指令的区别
在读/写指令时,Generic指令是不区分Index和parameter的,而DCS会默认把data0作为Index然后计算parameter 数目。
2017-03-17 11:12:00 8582 2
原创 MIPI package format
Packet分为二种:长包>4bytes, 由 packet header 、pay load和packet Footer 组成短包=4bytes, 类似与 packet headerData ID:[7:6]VC定义通道编号 一般用不到,[5:0]DI数据包类型WC0 WC1: 长包的 pay load数据B
2017-03-17 11:10:28 705
原创 Lane信号
lane信号水平LP:1:1.2V*0.70:1.2V*0.3HS:1:DATAP-DATAN>200mV0: DATAN-DATAP>200mVLane状态1. LP,TX给到DATA Line上有四种状态LP-00LP-01LP-10LP-112. HS,TX给到DATA Line
2017-03-17 10:39:18 1407
原创 D-PHY、M-PHY、C-PHY
MIPI可分为物理层和逻辑层两大部分。物理层尽可能采用通用内容,逻辑层则是分别面向摄像头、显示屏、移动通信、存储等不同用途的专用协议。MIPI的物理层有D-PHY、M-PHY、C-PHY等3种。D-PHY现在大量应用于应用处理器与显示屏、摄像头连接的部分。随着摄像头、显示屏的像素和帧频的增加,D-PHY的数据传输速度有可能无法满足需要。M-PHY是D-PHY的后续标准,速度更快;目
2017-03-17 10:22:47 25837 1
原创 示波器的使用
使用示波器需要设置以下选项:一、触发相关信息1、触发模式 有 Auto Trigger 和 Normal Trigger两种模式。Normal模式在符合触发条件时才会显示波形,否则示波器不会触发且显示屏也不会更新。 Auto模式和 Normal模式一样,但是在不具备触发条件时,会强制示波器触发。如果仅需要采集触发设置指定的特定事件,可使用 Normal Trig
2017-03-15 19:52:19 2428
原创 include/generated/autoconf.h
执行make menuconfig后,编译系统会把所有的配置信息保存到源码顶层目录下的.config文件中,然后将.config中的内容转换为C语言能识别的宏定义更新到include/generated目录下的autoconf.h文件中。比如会将CONFIG_XXX =y的定义转换为#define CONFIG_XXX 1的模式写到autoconf.h文件当中。autoconf.h文件是被自动包含
2017-03-15 18:54:52 4965
转载 内核3.x版本之后设备树(device tree)机制
转自:http://blog.csdn.net/wdsfup/article/details/50068305一、DTB相关结构本节讲下.dts编译生成的dtb文件,其布局结构。DTB由三部分组成:头(Header)、结构块(device-tree structure)、字符串块(string block)。下面将详细介绍这三部分的内容。㈠Header在\k
2017-03-13 11:44:57 724
转载 Linux设备树语法详解
转自http://www.linuxidc.com/Linux/2016-12/137986.htm概念Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件
2017-03-13 11:38:14 1267
转载 字符设备文件的打开操作 open()
转自http://blog.csdn.net/pan0755/article/details/51690540字符设备文件的打开操作(1)作为例子,这里假定前面对应于/dev/demodev设备节点的驱动程序在自己的代码里实现了如下的struct file_operations对象fops:static struct file_operations fops = {
2017-03-08 10:20:27 3788
转载 android 串口扩展(wk2xxx)移植
转自http://blog.csdn.net/qwertyuiop159158/article/details/479574291.驱动移植 将wk2xxx_i2c.c wk2xxx.h 放到lichee\linux-3.4\drivers\hwmon目录下1.makefileobj-$(CONFIG_SERIAL_I2C_WK2XXX) += wk2xxx_i2c.o
2017-03-07 17:29:16 1670
原创 驱动能力
驱动能力是后级电路带负载能力的大小,一般指的是输出电流的能力。如某个IO口在高电平时的最大输出电流是20mA,如果负载电流超过20mA,我们说驱动能力不足。驱动能力不足的直接后果是输出电压下降,无法保持其高电平,以致出现逻辑混乱,不能实现预期的效果。
2017-03-02 17:09:00 3273
原创 编译spidev_test程序
spidev_test测试程序位于kernel/linux-3.10.y/Documentation/spi目录下,在编译时需要先修改Makefile文件成如下:# List of programs to buildhostprogs-y := can_test# Tell kbuild to always build the programsalways := $(hos
2017-03-01 15:47:21 7205
转载 通过sysfs在用户空间使用GPIO
转自http://weimenlove.blog.163.com/blog/static/177754732013112393434266/ 通过使用sysfs,Linux GPIO可以支持在用户空间进行GPIO的控制或获取状态。这样可以使用简单的工具,比如“echo”来设置输出GPIO的电平或使用“cat”来读取输入GPIO的当前值。1、配置内核中sysfs下的GPIO支持
2017-03-01 15:41:48 447
原创 管脚复用
管脚复用是指一个引脚具有多个功能,但是在一个时刻只能使用其中一个功能,硬件原理如下图所示, 通过配置相关寄存器控制多路开关来连接外部引脚与片内引脚。
2017-03-01 14:58:40 4546
原创 socket can 应用程序
#include #include #include #include #include #include #include #include #include #include int can_recv(){ int sock_fd, i; unsigned long nbytes, len; struct sockaddr_can addr; struct if
2017-03-01 14:28:24 1676
转载 Linux CAN编程详解
转自 http://velep.com/archives/1181.htmlLinux 系统中CAN 接口配置在 Linux 系统中, CAN 总线接口设备作为网络设备被系统进行统一管理。在控制台下, CAN 总线的配置和以太网的配置使用相同的命令。在控制台上输入命令:ifconfig –a可以得到以下结果:在上面的结果中, eth0 设备为以太网接口, can0和ca
2017-03-01 14:02:20 4844 2
转载 linux的system () 函数执行命令
转自http://www.cppblog.com/prayer/archive/2009/05/05/81955.htmlsystem(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #i ncl
2017-03-01 13:55:36 1554
转载 Linux Socket CAN
转自http://blog.csdn.net/zhouerhang/article/details/52873314由于Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。因此,为了能够全面地了解Socket CAN的原理。我们需要了解以下几个方面的知识点:(1)CAN总线协议;(2)Socket原理;(3)Linux网络设备驱动;当熟悉以下三个方面
2017-03-01 13:43:10 2387
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人