文章分类 -  转载

摘要:PS2接口和协议简介1 PS/2接口和协议1.1 接口的物理特性 PS/2接口用于许多现代的鼠标和键盘,由IBM最初开发和使用。物理上的PS/2接口有两种类型的连接器:5脚的DIN和6脚的mini-DIN。图1就是两种连接器的引脚定义。使用中,主机提供+5V电源给鼠标,鼠标的地连接到主机电源地上。1.2 接口协议原理 PS/2鼠标接口采用一种双向同步串行协议。即每在时钟线上发一个脉冲,就在数据线上发送一位数据。在相互传输中,主机拥有总线控制权,即它可以在任何时候抑制鼠标的发送。方法是把时钟线一直拉低,鼠标就不能产生时钟信号和发送数据。在两个方向的传输中,时钟信号都是由鼠标产生,即主机不产生通信 阅读全文
posted @ 2014-02-18 21:00 interrupt 阅读(3406) 评论(0) 推荐(0)
摘要:假设我们要为一个系统编写驱动,系统已经定义好了如下所示的复用接口(MUX):STATUS DriverIoControl(UINT function_no, PVOID para_in, PVOID para_out)用户层程序通过复用接口调用驱动,功能号就是function_no,驱动程序负责实现具体的DriverIoControl()函数完成相应的功能。这是使用switch-case的典型场景,先看一个使用switch-case的方案:STATUS DriverIoControl(UINT function_no, PVOID para_in, PVOID para_out){ STATU 阅读全文
posted @ 2014-02-18 16:19 interrupt 阅读(734) 评论(0) 推荐(0)
摘要:IC交易平台网址大全http://blog.sina.com.cn/liubingshaoIC交易网, www.ic.net.cn华强网, www.hqew.com中发网, www.zfa.cnICtrade , www.ic-trade.com库存在线, www.161online.com.cn盛名零件, www.icminer.comICbuy, www.icbuy.com香港电子库存, www.hkinventory.com51电子网, www.51dzw.com中国IC网, www.ic37.com芯片交易在线, www.ic72.com 中国电子网, www.21ic.com电子元. 阅读全文
posted @ 2013-02-24 16:12 interrupt 阅读(15431) 评论(0) 推荐(0)
摘要:IC及半导体品牌A-Data TechnologyAANetcom (acquired by PMC-Sierra)AB SemiconABB SemiconductorAbracon CorporationAcapella (acquired by Semtech Corporation)Acard TechnologyAccutek Microcircuit CorporationAcer Laboratories, Inc.Actel CorporationAdaptec, Inc.Adaptive NetworksADMtekAdvance Data Technology, Inc.A 阅读全文
posted @ 2013-02-24 16:11 interrupt 阅读(1540) 评论(0) 推荐(0)
摘要:uboot下的nand flash驱动分析 Nand flash芯片工作原理:------------------------------------ Nand flash芯片型号为Samsung K9F2G08U0A,数据存储容量为256MB,总线宽度为8bit,页大小为2048字节,需要5个寻址命令,采用块页式存储管理。8个I/O引脚充当数据、地址、命令的复用端口。 芯片内部存储布局及存储操作特点: 一片Nand flash为一个设备(device), 其数据存储分层为: 1 (Device) = 2048 (Blocks) 1 (Block) -= 64 (Pages/Rows) 页与. 阅读全文
posted @ 2013-01-28 14:38 interrupt 阅读(574) 评论(0) 推荐(0)
摘要:GNU-ld链接脚本浅析 0. Contents1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表达式12. 暗含的连接脚本1. 概论每一个链接过程都由链接脚本(linker script, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.连接器有个默认的内置连接脚本, 可用ld --verbose查看. 阅读全文
posted @ 2013-01-18 11:29 interrupt 阅读(502) 评论(0) 推荐(0)
摘要:S3C64xx系列的应用处理器芯片是三星主推的,三星目前推出了S3C6400和S3C6410,都是基于ARM11架构的,而且硬件管脚兼容,应该说大致的功能基本相同,比较明显的区别就是S3C6410带有2D/3D硬件加速。下面,我对S3C6410做个简单介绍,该芯片大小为13x13mm,424管脚,芯片架构如图:ARM Core:采用ARM1176JZF-S的核,包含16KB的指令数据Cache和16KB的指令数据TCM,ARM Core电压为1.1V的时候,可以运行到553MHz,在1.2V的情况下,可以运行到667MHz。通过AXI,AHB和APB组成的64/32bit内部总线和外部模块相连 阅读全文
posted @ 2013-01-12 18:22 interrupt 阅读(570) 评论(0) 推荐(0)
摘要:C语言中函数参数的入栈顺序http://www.cnblogs.com/xkfz007/archive/2012/03/27/2420158.html对技术执着的人,比如说我,往往对一些问题,不仅想做到“知其然”,还想做到“知其所以然”。C语言可谓博大精深,即使我已经有多年的开发经验,可还是有 许多问题不知其所以然。某天某地某人问我,C语言中函数参数的入栈顺序如何?从右至左,我随口回答。为什么是从右至左呢?我终究没有给出合理的解释。于 是,只好做了个作业,于是有了这篇小博文。#includevoid foo(int x, int y, int z){printf("x = %d at 阅读全文
posted @ 2012-11-14 11:25 interrupt 阅读(1705) 评论(0) 推荐(0)
摘要:ARM体系的7种工作模式pally2004.blog.chinaunix.netARM体系的7种工作模式一、ARM体系的CPU有以下7种工作模式:1、用户模式(usr):正常的程序执行状态2、快速中断模式(fiq):3、中断模式(irq):4、管理模式(svc):操作系统使用的保护模式5、系统模式(sys):运行具有特权的操作系统任务6、数据访问终止模式(abt):数据或指令预取终止时进入该模式7、未定义指令终止模式(und):未定义的指令执行时进入该模式注解:可以通过软件来进行模式切换,或者发生各类中断、异常时CPU自动进入相应的模式;除用户模式外,其余6种工作模式都属于特权模式;特权模式中 阅读全文
posted @ 2012-11-08 17:49 interrupt 阅读(1308) 评论(0) 推荐(0)
摘要:http://zxy0301.i.sohu.com/blog/view/196836841.htm对于一条具体的指令执行过程,通常可以分为五个部分:取指令,指令译码,取操作数,运算(ALU),写结果。其中前三步一般由指令控制器完成,后两步则由运算器完成。按照传统的方式,所有指令顺序执行,那么先是指令控制器工作,完成第一条指令的前三步,然后运算器工作,完成后两步,在指令控制器工作,完成第二条指令的前三步,在是运算器,完成第二条指令的后两部……很明显,当指令控制器工作是运算器基本上在休息,而当运算器在工作时指令控制器却在休息,造成了相当大的资源浪费。解决方法很容易想到,当指令控制器完成了第一条指令 阅读全文
posted @ 2012-11-08 16:27 interrupt 阅读(1552) 评论(0) 推荐(0)
摘要:一)udev1)udev与硬件平台无关,属于用户空间的进程,它脱离驱动层的关联,而建立在操作系统之上,只要修改配置文件使之生效,无需重启操作系统.2)udev需要内核sysfs和tmpfs的支持3)udev已经取代devfs和hotplus,udev通过netlink直接监听这些事件.注:这里的hotplus主要负责在线和脱机情况下为硬件定位和安装驱动程序模块.在早期的发行中常使用一个外部二进制文件/sbin/hotplug来将设备状态的改变通知Udev.二)sysfs1)sysfs是一个建立在内存基础上的文件系统.它建立在内核对象kobjects的基础上,而kobjects是内核2.6新添加 阅读全文
posted @ 2012-11-02 13:01 interrupt 阅读(471) 评论(0) 推荐(0)
摘要:转自:http://home.lupaworld.com/home.php?mod=space&uid=56821&do=blog&id=139949一)I/O调度程序的总结:1)当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成.2)每个块设备都有它自己的队列.3)I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/O操作变为有序的I/O操作.4)内核必须首先确定队列中一共有多少个请求,然后才开始进行调度.二)I/O调度的4种算法1)CFQ(完全公平排队I/O调度程序)特点:在最新的内核版本和发行版中,都选择CF 阅读全文
posted @ 2012-10-31 12:23 interrupt 阅读(171) 评论(0) 推荐(0)
摘要:Linux中subst是字符串处理函数。 Makefile里的subst 用法是$(subst FROM,TO,TEXT),即将TEXT中的东西从FROM变为TO Makefile中的字符串处理函数 格式: $(subst <from>;,<to>;,<text>;) 名称:字符串替换函数——subst。 功能:把字串<text>;中的<from>;字符串替换成<to>;。 返回:函数返回被替换过后的字符串。 示例: $(subst a,the,There is a big tree), 把“There is a big 阅读全文
posted @ 2011-12-02 20:02 interrupt 阅读(3353) 评论(0) 推荐(0)
摘要:gVim改回Vim的本来面目。 执行如下命令 :set go= 这时的Vim应该是 补充说明:set表示一般性设置;go是gui option的缩写,就是界面;等于空就是什么都没有 再输入半条命令(先不要回车) :colo evening 补充说明:colo就是设置调色方案。Vim自带了近十种调色方案,当然你还可以在网上下载更多,或改编自己的调色方案。你可以直接在:colo (加一个空格)就连续tab,选择不同的配色方案来体验一下。当然,evening是比较经典的一种。我一直就用它。 3.4 准备并打开范例文件 简化起见,请下载test.txt并保存为d:\tes... 阅读全文
posted @ 2011-12-02 19:34 interrupt 阅读(317) 评论(0) 推荐(0)
摘要:十.信号 gdb通常可以捕捉到发送给它的大多数信号,通过捕捉信号,它就可决定对于正在运行的进程要做些什么工作。例如,按CTRL-C将中断信号发送给gdb,通常就会终止gdb。但是你或许不想中断gdb,真正的目的是要中断gdb正在运行的程序,因此,gdb要抓住该信号并停止它正在运行的程序,这样就可以执行某些调试操作。 Handle命令可控制信号的处理,他有两个参数,一个是信号名,另一个是接受到信号时该作什么。几种可能的参数是: l nostop 接收到信号时,不要将它发送给程序,也不要停止程序。 l stop 接受到信号时停止程序的执行,从而允许程序调试;显示一条表示已接受到信号的消息(禁止使用 阅读全文
posted @ 2011-07-15 10:07 interrupt 阅读(527) 评论(0) 推荐(0)
摘要:简述一 列文件清单二:执行程序三:显示数据四:断点(breakpoint)五.断点的管理六.变量的检查和赋值七. 单步执行八.函数的调用九.机器语言工具十.信号GDB的使用方法简述一 列文件清单List(gdb) list line1,line2二:执行程序要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<和> )和外壳通配符(*、?、[、])在内。如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。利用set args 命令就可以修改发送给程序的参数,而使用show args 命 阅读全文
posted @ 2011-07-15 09:59 interrupt 阅读(1038) 评论(0) 推荐(0)
摘要:在Linux下面,我们常用top命令来查看系统进程,top也能显示系统内存。我们常用的Linux下查看内容的专用工具是free命令。Linux下内存查看命令free详解:在Linux下查看内存我们一般用free命令:$ free total used free shared buffers cached Mem: 3266180 3250004 16176 0 110652 2668236 -/+ buffers/cache: 471116 2795064 Swap: 2048276 80160 1968116 下面是对内存查看free命令输出内容的解释:total:总计物理内存的大小。use 阅读全文
posted @ 2011-07-14 15:45 interrupt 阅读(85794) 评论(0) 推荐(1)
摘要:splint的使用1.空引用错误在引用没有指向任何内存地址的指针时,会导致这种错误.也就是使用了一个没有赋值的指针. splint支持一种特别的注释.这种注释写在C程序代码中,用于对程序进行特殊说明. 如下面这段程序.使用了/*@null@*/进行了说明,表示说明*s的值可能会是NULL.//null.cchar firstChar1 (/*@null@*/ char *s){return *s;}char firstChar2 (/*@null@*/ char *s){ if (s ==NULL) return '\0'; return *s;}//END使用splint扫描 阅读全文
posted @ 2011-07-14 15:03 interrupt 阅读(531) 评论(0) 推荐(0)