牛人的博客链接s

时间:2022-08-04 20:42:51
 

和菜鸟一起学linux总线驱动之i2c死锁问题

不知不觉中已经有好几个月没有写点东西了,懒了就是懒了,说是忙着想把产品做得更好,都是借口,每天花一点时间来写点东西确实很不错,自己也坚持了很久很久,只不过今年以来,发现提高不是很大,能写的东西好少好少,以前专门研究一个方向,学习,完成工作,可以总结,而现在的事情,真的不好总结,额外的时间也没有完全用来学习,也没有追求更深入的掌握一些东西,一段时间测试,一段时间修bug,一段时间整理产品的细节,一段...
  阅读(54)  评论(3)
 

和菜鸟一起学linux总线驱动之启动篇

突然觉得学了这么久的内核驱动,都没有很深入看内核总线底层的实现。简单看过了最低版本的内核的源码,总算可以稍微理清一些头绪了。现在回过头来,把这一部分的知识给补上去。        Linux设备的模型有:总线(bus)、设备(device)和驱动(driver),还有类(class)。其中总线是处理器与设备之间通道,在设备模型中,所有的设备都通过总线相连;设备是对于一个设备的详细信息描述,驱动是...
  阅读(531)  评论(1)
 

和菜鸟一起学linux总线驱动之DMA传输

最早接触DMA的时候是大三的微机原理,当时不是很理解,什么DMA模式啊,只知道是传输速度快,不经过CPU,但是到底是怎么样的不经过CPU呢?还是不理解。这次I2C控制器里面带了DMA的模式,所以有机会去接触下了。        而具体的DMA的意思是什么http://baike.baidu.com/view/32471.htm,百度百科里还是不错的。   DMA的工作过程:...
  阅读(2051)  评论(0)
 

和菜鸟一起学linux总线驱动之smartcard传输协议

协议T=0,异步半双工字符传输协议   协议在复位应答或成功的PPS交换之后启动。 1、  字符级 字符帧同对复位应答所定义的一样,使用TS所建立的约定,同时按照操作模式来考虑。ICC和IFD应按照使用错误信号和字符重发。 由过程字节触发的VPP上的任何跃变都应在从字符上升开始的12etu内发生。 特定接口字节TC(2)对它的8位进行编码以得到整数WI的值。空值留待将来使用。如果在复位...
  阅读(682)  评论(0)
 

和菜鸟一起学linux总线驱动之smartcard操作模式和协议与参数选择

模式操作 在复位应答后,卡处于下面两种操作模式之一: ——       若TA(2)存在,则处于特定模式; ——       若TA(2)不存在,则处于协商模式。 图示出了卡操作模式的选择和切换。   1、  特定模式 在特定模式中,直接在复位应答之后,由TA(2)所指示的协议应使用 ——若TA(2)中b5=0,使用Fi和Di; ——若TA(2)中b5=1,使用隐含值。...
  阅读(949)  评论(0)
 

和菜鸟一起学linux总线驱动之smartcard复位应答ATR

通过根据定义,复位应答是一系列字节的值,这些字节是由卡作为对复位的应答发送给接口设备的。通过卡对接口设备作为复位的应答的字节传送的顺序的值在I/O电路上,每个字节通过异步字符来运送。 每个成功的复位操作都会在在I/O上产生,一个初始字符TS,TS后面按下列次序紧跟有最多32个字符,见图。 T0-----------------------------------------格式字符,必备的...
  阅读(975)  评论(0)
 

和菜鸟一起学linux总线驱动之初识smartcard操作过程

学东西还是从实际的物体开始吧,先看下我们常用的触点式IC卡的管脚定义。                                    接口设备应通过触点VCC向卡提供下列标称电源: —— A类:5V —— B类:3V 因此,卡和接口设备应仅工作在A类,或者仅工作在B类,或者工作在A类及B类(以下表示为AB类)。 A类卡应能在A类或AB类接口设备上操作。AB类卡应能在...
  阅读(523)  评论(0)
 

和菜鸟一起学linux总线驱动之初识USB设备枚举

最近要写SDK,smartcard又没有什么进展,事情还真是多啊,对于一个本科应届毕业生,是不是要求高了点,哈哈,就喜欢严,那样提高才快,不过很多时候,忙得自己连思考的时间也没有多少了,也没有实行自己的计划,很多很多没有做。想想确实应该放弃一些事情了,那样的话,至少可以再某些方面做得很好,恩,加油就行。趁着周末之际,把所有模块的SDK都小整理了下,还是把上次没有分析完的USB的枚举给分析下吧。...
  阅读(1035)  评论(0)
 

和菜鸟一起学linux总线驱动之初识USB鼠标抓包数据

小日本可恶的暂时抢走了钓鱼岛,但是,相信凭借全国人民的齐心协力,钓鱼岛是逃不掉的。至于要不要武力解决,这个不是我们说了算的。最好还是不能动武,到时候受害者还是老板姓。相信时间会解释一切,在此只能默默祈祷,钓鱼岛早日回到祖国大陆的怀抱。        好了,钓鱼岛的事,关心是需要的,但是也帮不上什么忙,与其这么瞎折腾,还是多学点东西,为祖国的建设做贡献吧。        记得上次讲了US...
  阅读(1460)  评论(0)
 

和菜鸟一起学linux总线驱动之初识i2c驱动数据传输流程

吃个晚饭,画个流程图,没想到已经这么晚了。还是速度把这篇文章搞定,收拾回去了。 先看下linux中的i2c的数据流程图吧。这里主要是用gpio模拟的i2c的。   还是具体看下代码吧,流程只是个大概,和i2c的总线协议差不多的。   首先从数据调用来看吧。一般的都是通过 i2c_transfer来来实现的,   int i2c_transfer(struct i2c_adapt...
  阅读(1111)  评论(0)
 

和菜鸟一起学linux总线驱动之初识i2c驱动主要结构

和spi一样,了解了协议后,还是看看具体的linux kernel中的i2c的一些数据结构吧。 在include/linux/i2c.h中 主要是以下这些数据结构: struct i2c_msg; struct i2c_algorithm; struct i2c_adapter; struct i2c_client; struct i2c_driver; uni...
  阅读(911)  评论(0)
 

和菜鸟一起学linux总线驱动之初识i2c总线协议

就这么稀里糊涂地过了两天,都在公司里。为了不是我的任务的工作,是对,还是错。自己定的计划都没有实现,要看的书也没看,要玩的板子也没玩。不过终于体验到了,加班,其实对于IT业来说,太平常不过了。目前的部门还好,基本不用加班,布置的小任务,还是可以提前完成的,也有点时间用来记录所学的过程,慢慢成长。昨天,和我们子公司的工程师赶项目到9点半才回去,今天他说,他是凌晨3点回去的。不容易啊,工作4年后,我也...
  阅读(828)  评论(1)
 

和菜鸟一起学linux总线驱动之初识spi驱动数据传输流程

对于SPI的一些结构体都有所了解之后呢,那么再去瞧瞧SPI的那些长见的操作的函数了。 首先看一下本人画的比较挫的数据流了,仅供参考,如有不对,不吝赐教     接下来看看各个函数吧还是:   SPI write   /** * spi_write - SPI synchronous write * @spi: device to which data will be...
  阅读(2110)  评论(0)
 

和菜鸟一起学linux总线驱动之初识spi驱动主要结构

既然知道了协议了,那么就可以开始去瞧瞧linux kenerl中的spi的驱动代码了,代码中有很多的结构体,还是对主要的结构体先做个了解吧,那样才可以很好的理解驱动。主要是include/linux/spi.h   首先是SPI的主机和从机通信接口,也就是SPI总线, extern struct bus_type spi_bus_type;   bus_type定义在linux/de...
  阅读(1100)  评论(0)
 

和菜鸟一起学linux总线驱动之初识spi总线协议

还记得第一次用spi设备的时候是大三暑假了,那时和队友一起买了无线模块,然后用单片机来无线传输,不过代码都不是自己写的,虽然实现了这个功能,但是当时还不知道什么spi的。大四了,学弟问我怎么用spi flash,顿感惭愧。后来他送我了一块flash,然后我用51参考网上的实现了下,才知道有这么个东西。之后公司里也渐渐用了些spi的设备,flash,codec,ads7843等,渐渐地也熟悉了这个东...
 

和菜鸟一起学linux总线驱动之初识USB的数据传输方式

周末又快要过去了,一周又一周的循环往复,不知道何时才是尽头,每天除了工作学习就是睡觉。也许这样的日子很充实吧,但是并不是非常喜欢这样的生活。不知何时才可以跳出这样的怪圈。重归现实吧,还是继续看看USB吧,讲了USB的设备描述符,那接下去就是USB的数据传输了。        USB规范中规定了4种不同的数据传输方式,她们分别为:1、等时传输,2、中断传输、3控制传输、4批量传输。...
  阅读(730)  评论(0)
 

和菜鸟一起学linux总线驱动之初识USB设备描述符

耳边依旧是单曲循环,不知何时开始,音乐开始触动于我。一直以来,听歌都是只享受其中的旋律,而慢慢地,歌词很多事情让我微微一颤的感觉。继续循环着,继续这种微妙的感觉。        吃完饭了,那就继续USB吧,接下来那便是USB的设备描述符了。        每个USB设备内部都固化了一些数据,通过这些数据,USB主机就可以获取USB设备的类型、生产厂商等的信息。这组固定格式的数据,就是U...
  阅读(721)  评论(0)
 

和菜鸟一起学linux总线驱动之初识USB系统结构

上一篇文章中,对于USB是什么东东,想必都清楚了,她的连接方法也清楚了,那么接着学习下USB的系统结构吧。先看一下系统的拓扑结构吧。        主机host控制器和一个根hub,然后下面可以接很多的设备,也可以继续接hub,然后hub下面还可以接设备,接下一个hub,一直往下。对于USB总线,最多只能接127个设备。        USB的主控制器主要负责处理主机和设备之间的电气和...
  阅读(1025)  评论(1)
 

和菜鸟一起学linux总线驱动之初识USB

现在什么东西都用上了USB了,听着名字觉得怪怪的,拆开来看看,U,SB,貌似是骂人的话了,开个玩笑。不过这个家伙确实给我们带来很多的方便啊,什么USB鼠标啊,U盘啊,USB wifi啊,USB摄像头啊,什么电子设备都貌似可以用USB来替换掉,足见这个东西的好处和通用了。不过一直都不是很清楚这个东西,上次公司让做USB的device设备,由于硬件的总线有问题,从而没有继续下去,只是简单地看了下协议和...
  阅读(867)  评论(0)