![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux设备驱动
andydung
这个作者很懒,什么都没留下…
展开
-
S3C24x0片内设备驱动编写时的时钟问题
<br />S3C24x0片内设备驱动编写时的时钟问题前天编写S3C24x0芯片的ADC驱动。其实很简单,参考别人的驱动,把以前的驱动模板改改就好了。可是写好后没使用成功。测来测去,最后发现对ADC的寄存器根本无法写入,只能读出。郁闷!!一开始以为是我用的赋值语句不对,参考我的驱动学习文档,试了一圈,问题依旧!郁闷了整整两天之后,在网上看到有人也遇到了2410的外设寄存器无法赋值的情况,最后发现是时钟问题。受此启发,我回想起了以前看的Linux的SPI驱动,里面有以下语句:<br />hw->clk = c转载 2010-07-13 13:06:00 · 449 阅读 · 0 评论 -
Linux设备驱动程序学习
Linux设备驱动程序学习 前言: 接触ARM-Linux已经有9个多月了,经历了毕业设计和公司的练习设计,对ARM-Linux有了一定的了解,也让我爱上了ARM-Linux,决心以后从事Linux的工作。 8月份开始,我算是从头认认真真,一步一个脚印地学习ARM-Linux。先后对博创UP-NETARM2410-S和友善之臂SBC2440V4进行了系统移植,包括U-Boot1.2.0、Linux2.6.22.2,并针对3个网卡芯片进行了U-Boot和Linux的驱动移植,制作了一个cramfs转载 2010-07-13 13:12:00 · 785 阅读 · 0 评论 -
Linux主机驱动与外设驱动分离思想
- by 宋宝华(Barry Song)1主机、外设驱动分离的意义在Linux设备驱动框架的设计中,除了有分层设计实现以外,还有分隔的思想。举一个简单的例子,假设我们要通过SPI总线访问某外设,在这个访问过程中,要通过操作CPU XXX上的SPI控制器的寄存器来达到访问SPI外设YYY的目的,最简单的方法是:return_type xxx_write_spi_yyy(...){xxx_write_spi_host_ctrl_reg(ctrl);xxx_ write_spi_host_data_reg(buf转载 2010-07-13 17:10:00 · 481 阅读 · 0 评论 -
platform设备驱动全透析
1.1 platform总线、设备与驱动 在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。 一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等的设备而言,这自然不是问题,但是在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设等确不依附于此类总线。基转载 2010-07-13 18:25:00 · 475 阅读 · 0 评论 -
Linux设备驱动的分层设计思想
1.1 设备驱动核心层和例化在面向对象的程序设计中,可以为某一类相似的事物定义一个基类,而具体的事物可以继承这个基类中的函数。如果对于继承的这个事物而言,其某函数的实现与基类一致,那它就可以直接继承基类的函数;相反,它可以重载之。这种面向对象的设计思想极大地提高了代码的可重用能力,是对现实世界事物间关系的一种良好呈现。Linux内核完全由C语言和汇编语言写成,但是却频繁用到了面向对象的设计思想。在设备驱动方面,往往为同类的设备设计了一个框架,而框架中的核心层则实现了该设备通用的一些功能。同样的,如果具体的设转载 2010-07-13 19:27:00 · 586 阅读 · 0 评论