linux驱动
文章平均质量分 79
jason_work
欢迎朋友来到我的小窝希望能给你带来技术帮助和学习灵感若有什么需要帮助的留言我会及时回复希望大家可以成为朋友共同学习进步
展开
-
数据校验
奇偶校验是一种校验代码传输正确性的方法。根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶 校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个数为奇数或偶数。若用奇校验,则当接收端收到这组代码时,校 验“1”的个数是否为奇数,从而确定传输代码的正确性。ECC校验是一种内存纠错原理,它是比较先进的内存错误原创 2013-06-17 15:25:49 · 2267 阅读 · 0 评论 -
spi驱动
一 管脚SPI以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时):(1)SDO – 主设备数据输出,从设备数据输入(2)SDI – 主设备数据输入,从设备数据输出(3)SCLK – 时钟信号,由主设备产生(4)CS – 从设备使能信号,由主设备控制二四种工作方式SPI输出串行同步原创 2013-06-17 14:56:27 · 1247 阅读 · 0 评论 -
AC97 与 HD audio的区别
一.AC97AC'97规范的特点就是双集成结构,分为Digital Controller(数字信号控制器)和Audio Codec。ADC和DAC模块独立出来成为一块称之为“Audio Codec”的小型芯片。声卡的主芯片即数字部分则成为一块称之为“Digital Control”(数字信号控制器)的大芯片(也就是集成I/O控制与DSP的主芯片)。Digital Controller和Audi原创 2013-06-09 12:34:06 · 10734 阅读 · 0 评论 -
嵌入汇编与CPUID指令
一.嵌入汇编基础嵌入式汇编语言存在怎样分配和使用寄存器,以及把C代码中的变量应该存放在哪个寄存器中。嵌入式汇编的一般形式:__asm__ __volatile__ ("" : output : input : modify);__asm__表示汇编代码的开始,__volatile__(这是可选项)含义是避免“asm”指令被删除、移动或组合;""为汇编指令部分,"movl %%c原创 2013-06-09 12:26:04 · 4239 阅读 · 0 评论 -
ARM MMU简介
一. CP15寄存器mcr将ARM处理器的寄存器中的数据写到CP15中的寄存器中mrc将CP15中的寄存器中的数据读到ARM处理器的寄存器中4.1.2 CP15寄存器介绍寄存器编号基本作用在MMU中的作用在PU中的作用0ID编码原创 2013-06-17 14:45:03 · 1531 阅读 · 0 评论 -
BIOS中断大全
BIOS中断:1、显示服务(Video Service——INT 10H) 00H —设置显示器模式0CH —写图形象素01H —设置光标形状0DH —读图形象素02H —设置光标位置0EH —在Teletype模式下显示字符03H —读取光标信息0FH —读取显示器模式04H —读取光笔位置10H —颜色05H —设置显示页11H —字体06H、07H —初始转载 2013-06-28 12:23:02 · 755 阅读 · 0 评论 -
spi读写分析
1.spi_write_then_readstatic int s3c24xx_spi_setupxfer(struct spi_device *spi, struct spi_transfer *t) { /*设置了每字长的位数,发送速度*/ bpw = t ? t->bits_per_word : spi->bits原创 2013-08-21 15:20:35 · 6813 阅读 · 0 评论 -
I2C驱动
I2C设备驱动程序编写首先要明确适配器驱动的作用是让我们能够通过它发出符合I2C标准协议的时序。在Linux内核源代码中的drivers/i2c/busses目录下包含着一些适配器的驱动。如S3C2410的驱动i2c-s3c2410.c。当适配器加载到内核后,接下来的工作就要针对具体的设备编写设备驱动了。编写I2C设备驱动也有两种方法。一种是利用系统给我们提供的i2c-dev.原创 2013-06-17 14:59:26 · 672 阅读 · 0 评论 -
字符设备驱动
字符设备驱动程序是由一个cdev结构描述的,其定义为:struct cdev {struct kobject kobj;//内嵌的kobjectstruct module *owner;const struct file_operations *ops;struct list_head list;//与字符设备文件对应的索引节点链表的头,该链表用于收集相同字符设备驱动程原创 2013-06-17 14:54:45 · 497 阅读 · 0 评论 -
linux之.config,makefile,kconfig
1.顶层顶层的Makefile文档读取内核配置文件.config文档的内容.递归向下访问子目录的形式完成build内核和模块的工作。.config文件的内容是在makemenuconfig的时候,通过Kconfig文档配置的结果.arch/$(ARCH)/Makefile则提供补充体系结构相关的信息;2.内核中的kconfig每个Kconfig分别描述了所属目录源文件相关的原创 2013-06-17 14:53:50 · 718 阅读 · 0 评论 -
longson平台显卡驱动
[gentoo]amd显卡将闭源驱动换成开源驱动+kms听说开源驱动现在已经不错了,就试着把系统里面的闭源驱动(fglrx)切换成开源驱动。首先,先卸载闭源驱动:emerge -C x11-drivers/ati-drivers,因为现在用的xorg.conf是通过ati的命令生成的,先干掉。然后,在make.conf中的VIDEO_CARDS环境变量中,将原来的fglrx改成ra原创 2013-08-22 19:17:25 · 1630 阅读 · 0 评论 -
tty驱动详解
/dev/tty代表当前tty设备,在当前的终端中输入 echo “hello” > /dev/tty ,都会直接显示在当前的终端中。/dev/ttyS*是串行终端设备。/dev/pty*即伪终端,所谓伪终端是逻辑上的终端设备,多用于模拟终端程序。例如,我们在X Window下打开的终端,以及我们在Windows使用telnet 或ssh等方式登录Linux主机,此时均在使用pty设备(准确原创 2013-08-22 21:36:59 · 2480 阅读 · 0 评论 -
dm9000驱动介绍
一. 硬件情况DM9000在电路板上的连接中与编程相关的如下:1)EECS拉高:16bit模式;2)EECK拉高,INT连接到2440 EINT7:INT脚为低时为有效中断信号,中断线为EINT73)cs连接到2440的nGCS2,CMD连接2440地址总线ADDR[2]:INDEX和DATA端口地址分别为0x1000_0000和0x1000_0004。知道上面这些信息已经原创 2013-06-17 14:58:07 · 793 阅读 · 0 评论 -
USB鼠标驱动
/var/log/messages查看错误信息1.各种描述符七种描述符:设备,配置,借口,端点,字符串,Qualifier,other speed configuration;还有一些类特殊描述符:如hid描述符和音频借口描述符,厂商自定义的描述符等。设备描述符决定该设备有多少配置,每一层都对下层描述符描述;首先获取设备描述符,接着获取配置描述符,然后根据配置描述符中的配置集合原创 2013-06-17 15:01:57 · 899 阅读 · 0 评论 -
nor flash
NOR FLASH的读取和RAM很类似,但不可以直接进行写操作。对NOR FLASH的写操作需要遵循特定的命令序列,最终由芯片内部的控制单元完成写操作。从支持的最小访问单元来看,NOR FLASH一般分为 8 位的和16位的(当然,也有很多NOR FLASH芯片同时支持8位模式和是16 位模式,具体的工作模式通过特定的管脚进行选择) 。 对8位的 NOR FLASH芯片,或是工作在8-BIT模式的原创 2013-06-17 15:25:11 · 831 阅读 · 0 评论 -
ECC算法的详细说明
今天本来是想写NAND的读写来着,可是这个东东要用到ECC的算法,就深入进来了,从网上找了些资料,不是很好,直到找到这个,郑重感谢Linux时代网站的wwxbei (旺旺) ,在黑暗中点亮了指明方向的路灯。http://linux.chinaunix.net/bbs/viewthread.php?tid=1116253&extra=page%3D1以下为转载,为之备忘!ECC转载 2013-07-17 09:21:33 · 14561 阅读 · 0 评论 -
spi子系统
ti8168驱动备份queue_work调度执行一个指定workqueue中的任务。输入参数:@ workqueue_struct:指定的workqueue指针@work_struct:具体任务对象指针spi目录下Makefile:ccflags-$(CONFIG_SPI_DEBUG) := -DDEBUG 如果配置了SPI_DEBUG则添加DDEBUG宏定义;其中cc原创 2013-08-21 15:07:18 · 1984 阅读 · 0 评论 -
OSS驱动
最常用的音频接口:蓝色:音频输入端口,可将MP3、录音机、音响等的音频输出端通过双头3.5mm的音频线连接到电脑,通过电脑再进行处理或者录制。蓝色接口在四声道/六声道音效设置下,还可以连接后置环绕喇叭,在8声道输出时,仍为音频输入端口。绿色:音频输出端口,用于连接耳机或2.0、2.1音箱。粉色:麦克风端口,用于连接到麦克风。黑色:后置环绕喇叭接头,在四声道,六声道,八声道音效设置下,用原创 2013-06-17 15:08:41 · 869 阅读 · 0 评论 -
linux串口驱动
一.常见结构体的分析1.tty_driver结构体:struct tty_driver { int magic; struct cdev cdev; /* 对应的字符设备cdev */ struct module *owner; /*这个驱动的模块拥有者 */ const char *driver_name; const char *devfs_name;原创 2013-06-17 14:58:45 · 850 阅读 · 0 评论 -
framebuffer驱动
一.应用程序在fb_fix_screeninfo中有__u32 smem_len 是这个/dev/fb0的大小,也就是内存大小。__u32 line_length 是屏幕上一行的点在内存中占有的空间,不是一行上的点数。在fb_var_screeninfo 中有__u32 xres ,__u32 yres 是x和y方向的分辨率,就是两个方向上的点数。__u32 bit原创 2013-06-17 14:57:16 · 824 阅读 · 0 评论 -
oss编程
一、概述1.声卡声卡有三个基本功能:一是音乐合成发音功能;二是混音器(Mixer)功能和数字声音效果处理器(DSP)功能;三是模拟声音信号的输入和输出功能。混音器的作用是将来自音乐合成器、CD-ROM、话筒输入(MIC)等不同来源的声音组合在一起再输出,混音器是每种声音卡都有的。模拟声音输入输出功能 主要是A/D、D/A转换。2.MP3格式MP3其中的VBR,ABR原创 2013-06-09 12:30:15 · 1800 阅读 · 0 评论 -
sha1加密驱动
1 概述 本文档介绍DS28E01-100的加密驱动,该加密驱动支持x86和ppc硬件环境,同时可以在linux和vxworks上运行。DS28E01使用1--WIRE总线,只需要一个引脚就可以完成读写数据和同步时钟的功能。2 用户接口1 2.1软件环境的不同 本由于操作系统的不同,在具体操作上有所差异,在源码里提供了license.h文件,可以在里面定义宏定义来标原创 2013-05-30 11:16:36 · 6327 阅读 · 2 评论 -
mcp2510驱动备份
MCP2515 CAN控制器的使用MCP2515最高支持SPI速率为10MHZ,本身CAN速率最高支持1MHZ(传输距离缩短),只支持SPI倆种传输模式 00,11。有些寄存器只能在配置模式修改。MCP2510的发送操作通过三个发送缓冲器来实现。这三个发送缓冲器各占据14个字节的SRAM。第一字节是控制寄存器TXBNCTRL,该寄存器里的内容设定了信息发送的条件,且给出了信息的发送状态;第原创 2013-08-21 16:13:42 · 2300 阅读 · 0 评论 -
hd audio驱动
hd_audio引脚:RST(Intel High Definition Audio Reset): This signal is the master hardware reset to external codec(s).SYNC(Intel High Definition Audio Sync): This signal is a 48 kHz fixed rate sample原创 2013-06-17 15:07:40 · 3641 阅读 · 0 评论 -
中断/IO/DMA
一.中断操作与Linux设备驱动中中断处理相关的首先是申请与释放IRQ的API request_irq()和free_irq(),request_irq()的原型为:int request_irq(unsigned int irq,void (*handler)(int irq, void *dev_id, struct pt_regs *regs),unsigned long原创 2013-06-17 14:55:30 · 1095 阅读 · 0 评论 -
vxworks pci驱动
PCI配置空间当VxWorks内核起来之后,PCI设备的第一次使用都是必须在调用sysHwInit2()例程之后。但是由于MMU内存映射的初始化和激活是在例程sysHwInit()和sysHwInit2()之间的,所以推荐的PCI初始化顺序为:sysHwInit() 默认的MMU table entries相当于将本地事务映射为PCI事务的HOST-Bridge的访问侧sysHwI原创 2013-06-09 12:27:22 · 3894 阅读 · 0 评论 -
内核初始化与gpio子系统
定义在linux/arch/arm/plat-s3c/gpio-config.cint s3c_gpio_cfgpin(unsigned int pin, unsigned int config){struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin); //得到对应GPIO结构体首指针,里面包含了该GPIO的各种参数unsig原创 2013-08-22 15:45:25 · 3203 阅读 · 0 评论