
嵌入式
文章平均质量分 78
ivy_reny
这个作者很懒,什么都没留下…
展开
-
Linux设备驱动(二)字符设备
1、工作基本原理#include struct file_operations;struct file;struct inode;用户进程通过设备文件同硬件打交道,对设备文件的操作方式就是一些系统调用,如open、write等。file_operations建立了系统调用和驱动程序之间的关联,指向该结构的指针称为fops。该结构的每一个成员的名字都对应着一个系统调用。每个打开的原创 2015-03-31 10:14:48 · 483 阅读 · 0 评论 -
总线设备驱动模型——设备篇
strcut device_typestruct device_type { const char *name; const struct attribute_group **groups; int (*uevent)(struct device*dev,struct kobj_uevent_env *env); char *(*原创 2015-08-18 20:12:31 · 495 阅读 · 0 评论 -
总线设备驱动模型
1、总线,设备和驱动总线:一个总线是处理器和一个或多个设备之间的通道。为设备模型的目的,所有的设备都通过一个总线连接,甚至当它是一个内部的虚拟的“平台”总线。设备:设备就是连接在总线上的物理实体。设备是有功能之分的。具有相同功能的设备被归到一个类(CLASS)中。在Linux 系统中,每个设备由一个 struct device 代表。驱动:驱动程序是在CPU运行时,提供操作的软件接口。原创 2015-08-18 20:15:39 · 588 阅读 · 0 评论 -
USB之(二)通讯协议
SYNCPIDDATACRCEOP1.1 同步原创 2015-08-14 17:05:14 · 8159 阅读 · 0 评论 -
USB之(三)USB描述符和命令(请求)
1、USB描述符 USB协议为USB设备定义了一套描述设备功能和属性的有固定结构的描述符。USB设备通过这些描述符向USB主机汇报设备的各种各样属性,主机通过对这些描述符的访问对设备进行类型识别、配置并为其提供相应的客户端驱动程序。USB描述符是由特定格式排列的一组数据结构组成。USB描述符包含标准描述符、类描述符和厂商特定描述3种形式。标准描述符包括设备描述符(Device Descr原创 2015-08-17 11:24:45 · 4394 阅读 · 0 评论 -
RAM、NAND Flash、NOR Flash的区别详解
一、RAM和Flash的区别 RAM有两大类,一种称为静态RAM (Static RAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如CPU的一级缓冲cache。另一种称为动态RAM(Dynamic RAM/DRAM),DRAM保留数据的时间很短,速度也比SRAM慢,不过它还是比任何的ROM都要快,但从价格上来说DRAM原创 2015-10-13 17:28:18 · 2544 阅读 · 0 评论 -
SPI、UART、I2C三种串行总线简介
SPI、UART、I2C三种串行总线简介原创 2015-11-18 10:22:25 · 4560 阅读 · 0 评论 -
Linux内核I2C子系统详解
1 I2C总线知识1.1 I2C总线物理拓扑结构 I2C总线在物理连接上非常简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。1.2 I2C总线特征I2C总线上的每一个设备都可以作为主设备或者从设备,而且转载 2016-04-21 19:42:39 · 1091 阅读 · 0 评论 -
SPI总线协议
一、概述 SPI(Serial Peripheral Interface,串行外围设备接口),是Motorola公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据传输,节约了芯片pin的数目,同时为PCB在布局上节省了空间。正是由于这种简单易用的特性,现在越来越多的芯片上都集成了SPI技术。SPI主要用于EEPROM、Fla原创 2017-10-10 09:36:04 · 18183 阅读 · 0 评论 -
UART
概述 UART(Universal Asynchronous Receiver and Transmitter)通用异步收发器,从硬件角度看,实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备,在开发板设计和测试阶段用来控制CPU与其余部分的信息传送,将数据在串行传输与并行传输间进行转换。UART作为软件协议来看,是异步串口通信协议的缩写,包括了RS232、RS499、原创 2017-10-11 11:27:16 · 877 阅读 · 0 评论 -
I2C总线
一、概述 I2C是Inter-integrated circuit的缩写,两条双向的线,一条SDA (Serial Data Line),另一条SCL (Serial Clock)。SCL:上升沿将数据输入到每个EEPROM器件中,下降沿驱动EEPROM器件输出数据(边沿触发)。SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成“线与”关系。速率:普通模转载 2017-10-13 11:21:52 · 1129 阅读 · 0 评论 -
Vim入门基础
1. 简介Vim(Vi[Improved])编辑器是功能强大的跨平台文本文件编辑工具,继承自Unix系统的Vi编辑器,支持Linux/Mac OS X/Windows系统,利用它可以建立、修改文本文件。进入Vim编辑程序,可以在终端输入下面的命令:$vim [filename]其中filename是要编辑的文件路径名。如果文件不存在,它将为你建立一个新文件。Vim编辑程序有三种操作模式,分别称为编辑转载 2017-10-13 18:13:24 · 504 阅读 · 0 评论 -
总线设备驱动模型——总线篇
总线struct bus_type 总线是处理器与设备之间的通道,在设备模型中,所有的设备都是通过总线相连的。在设备模型中,总线由bus_type表示。struct bus_type { const char *name; //总线类型名称 struct bus_attribute *bus_原创 2015-08-18 20:09:45 · 1021 阅读 · 0 评论 -
总线设备驱动模型——驱动篇
驱动struct device_driverstruct device_driver { const char *name; //驱动的名字 struct bus_type *bus; //驱动呈现属于的总线类型 struct module原创 2015-08-18 20:14:08 · 583 阅读 · 0 评论 -
USB之(六)USB设备驱动
To be updated原创 2015-08-18 09:47:33 · 1049 阅读 · 1 评论 -
Linux设备驱动(三)块设备
1、整体框架块设备在Linux中是一个完整的子系统。每个块设备驱动程序的核心是它的请求函数。磁盘驱动程序的性能是整个操作系统性能的重要组成部分,因此块设备子系统在编写时非常注意性能,除了从所控制的设备上获得信息外,块设备子系统为驱动程序完成了所有可能的工作,这样可以快速I/O。另一方面,块设备子系统不必关心驱动程序API的大量复杂性。在Linux中,驱动对块设备的输入或输出(I/O原创 2015-03-31 10:36:19 · 657 阅读 · 0 评论 -
Linux设备驱动(一)
一、操作系统和内核功能操作系统是一组程序,管理计算机的所有活动以及驱动系统中的所有硬件。系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和硬件之间的接口,设备驱动程序是内核的一部分。二、Linux设备驱动文件类型1、 字符设备:用户->字符设备文件->字符设备驱动->字符设备2、 块设备:用户->文件系统->块设备文件->块设备驱动->块设备3、原创 2015-03-31 10:06:12 · 664 阅读 · 0 评论 -
在ubuntu中使用wine安装SourceInsight
1、安装 wine sudo apt-get install wine wine配置命令: winecfg 2、安装 SourceInsight 下载 SourceInsight 安装包。下载完成后,用 wine 安装,安装方法与在 windows一样。 wine InsightSetup.exe 3、启动source insight原创 2015-06-30 17:19:46 · 2912 阅读 · 1 评论 -
Linux下usb转串口工具minicom安装
Minicom是Linux下的串口通信软件。对于没有串口的笔记本来说,可以通过USB转串口设备实现PC机与目标机之间的通信。1、使用以下命令安装minicom: $ sudo apt-getinstall minicom2、检查ubuntu是否已安装USB转串口驱动 $ lsmod | grepusbserial 如果有usbser原创 2015-08-12 16:13:57 · 939 阅读 · 0 评论 -
总线设备驱动模型——platform篇
Linux从2.6起加入了一套新的驱动管理和注册的机制。platform平台总线是一条虚拟的总线,设备用platform_device表示,驱动用platform_driver进行注册。与传统的bus/device/driver机制相比,platform由内核进行统一管理,在驱动中使用资源,提高了代码的安全性和可移植性。 下面来看看内核注册platform总线的过程。platform原创 2015-08-24 19:02:34 · 602 阅读 · 0 评论 -
ARM Linux 3.x的设备树(Device Tree)
ARM Linux 3.x的设备树(Device Tree)转载 2015-08-13 10:47:54 · 863 阅读 · 0 评论 -
USB之(一)概述
USB协议包括USB1.1, USB2.0, USB3.0。USB1.1支持的数据传输率为1.5Mbps和12Mbps,USB2.0支持的数据传输率可达480Mbps。在普通用户看来,USB系统就是外设通过一根USB电缆和PC机连接起来,通常把外设称为USB设备,把PC机称为USB主机。将指向USB主机的数据传输方向称为上行通信,把指向USB设备的数据传输方向称为下行通信。Lo原创 2015-08-14 09:42:27 · 2782 阅读 · 2 评论 -
USB之(四)HID设备类协议
USB HID类设备属于人机交互操作的设备,是一个比较大的类,用于控制计算机操作的某些方面,如USB鼠标、USB键盘、USB游戏操作杆、USB触摸板、USB轨迹球、电话拨号设备、VCR遥控等等设备。另外,使用HID设备的一个好处就是操作系统自带了HID类的驱动程序,用户无需开发很麻烦的驱动程序,只有直接使用API调用即可完成通信,所有很多简单的USB设备喜欢枚举成HID设备,这样就可以不用安装驱动原创 2015-08-17 11:27:32 · 21388 阅读 · 0 评论 -
USB之(五)设备枚举
1、枚举是什么? 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。 USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(InterruptIN Endpoint)来向主机(Host)报告。在系统启动时,主机轮询原创 2015-08-17 15:52:15 · 4571 阅读 · 0 评论 -
正则表达式30分钟入门教程
本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。如何使用本教程 最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :) 别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果转载 2017-10-16 14:08:14 · 366 阅读 · 0 评论