![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux内核技术
Wayne-Woo
早点领悟,就少走弯路!
展开
-
底层之旅 —— Linux下的I2c体系结构
最近在搞电容式触摸屏驱动,用I2C总线接口来传输数据,所以趁机复习一下I2C总线原理。 I2C总线是Philips公司推出的芯片间品德传输总线,它采用两线制,由串行时钟线SCL和串行数据线SDA构成。在电路设计方面,由于I2C总线接口为开漏或开集电极输出,需原创 2011-09-02 20:52:11 · 1315 阅读 · 0 评论 -
对Socket CAN的理解(5)——【Socket CAN控制器的初始化过程】
对于一般的CAN模块,初始化步骤:第一步,进入初始化模式,在CAN控制寄存器中,将Init位置1;第二步,在CAN控制寄存器中,将CCE位置1;第三步,等待Init位置1,此步聚为了确保已经进入初始化模式;第四步,将位时序的值写入到位时序寄存器(BTR)中;第五步,将CCE和Init位置为0;第六步,等待清除Init位,此步聚为了确保已经退出初始化模式;原创 2014-07-30 21:56:06 · 4645 阅读 · 0 评论 -
对Socket CAN的理解(4)——【Socket CAN接收数据流程】
现在我们来分析一下CAN总线的接收数据流程,对于网络设备,数据接收大体上采用中断+NAPI机制进行数据的接收。同样,我们现在的CAN模块也是采用同样的方式进行数据的接收。由于我们只针对CAN总线接收数据这条主线进行分析。因些,会忽略一些针对CAN协议的设置及初始化等相关代码。 在初始化CAN设备时,我们需要给CAN设备分配NAPI功能。我们通过netif_napi_add()函数将CAN设备添加到NAPI机制列表中。原创 2014-05-16 23:30:18 · 8178 阅读 · 0 评论 -
对Socket CAN的理解(1)——【CAN总线原理】
转载请注明出处:http://blog.csdn.net/Righthek 谢谢!由于Socket CAN涉及到CAN总线协议、套接字、Linux网络设备驱动等。因此,为了能够全面地了解Socket CAN的原理。我们需要了解以下几个方面的知识点:(1)CAN总线协议;(2)Socket原理;(3)Linux网络设备驱动;当熟悉以下三个方面的知识点后,我们再去分析基原创 2013-12-24 00:03:29 · 47720 阅读 · 1 评论 -
对Socket CAN的理解(2)——【Socket的原理及使用】
转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 为了能够对Socket CAN的深入理解,我们需要了解Socket的机制。 Socket的中文翻译为“插座”,在计算机世界里称为套接字。Socket最初是作为网络上不同主机之间进程的通信接口,后来应用越来越广,在同一主机上的不同进程之间通信也可以用Socket。简单来说,原创 2013-12-31 16:54:39 · 19530 阅读 · 1 评论 -
对Socket CAN的理解(3)——【Socket CAN发送数据流程】
转载请注明出处:http://blog.csdn.net/Righthek 谢谢! 对于本文,我们将从用户层使用Socket CAN进行数据发送时,数据从用户空间到底层驱动的整个通信流程,用户层使用Socket CAN可参考上一篇文章《对Socket CAN的理解(2)——【Socket的原理及使用】》。 当我们在用户层通过socket进行CAN数据的发送时,需要进行以下操原创 2014-03-30 15:35:52 · 10422 阅读 · 3 评论 -
曾经的足迹——对CAN驱动中的NAPI机制的理解
NAPI 是 Linux 上采用的一种提高网络处理效率的技术,它的核心概念就是不采用中断的方式读取数据,而代之以首先采用中断唤醒数据接收的服务程序,然后 通过poll的方法来轮询数据。采用NAPI技术可以大大改善短长度数据包接收的效率,减少中断触发的时间。原创 2013-09-25 23:44:28 · 4958 阅读 · 0 评论 -
曾经的足迹——对Linux CAN驱动的理解(1)
在Ti的AM335X系列Cortext-A8芯片中,CAN模块采用D_CAN结构,实质即两路CAN接口。在此分享一下对基于AM335X的Linux CAN驱动源码的理解。下面来分析它的驱动源码及其工作方式。原创 2013-09-25 23:24:39 · 7051 阅读 · 2 评论 -
底层之旅——DM9000网卡驱动源码分析
将近有一年多没写博客了。。。虽然网上有很多分析DM9000网卡驱动的,但是本文是基于Linux-2,6.32的,虽然驱动源码都差不多一样,不过,还是有点区别的。。。 Linux内核中,DM9000网卡采用平台设备驱动进行设备与驱动的分离。以下先分析DM9000的网卡驱动,然后再进行DM9000平台设备的注册。本文采用的是Linux-2.6.32内核。 分析驱动应从原创 2013-04-20 22:52:35 · 1957 阅读 · 1 评论 -
2D图形加速引擎(GE2D)
32位2D图形引擎(GE2D)专门用于提高图形性能处理。它可以加速单个GUI功能的操作,如BitBLT和Bresenham线绘制在所有像素深度上运行,包括每像素8/16/32位。翻译 2017-06-03 18:19:22 · 10928 阅读 · 1 评论