linux

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  linux 驱动程序学习

上一页 1 2

摘要:一、开发环境主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2二、硬件原理分析 S3C2440内部ADC结构图我们从上面的结构图和数据手册可以知道,该ADC模块总共有8个通道可以进行模拟信号的输入,分别是AIN0、AIN1、AIN2、AIN3、YM、YP、XM、XP。那么ADC是怎么实现模拟信号到数字信号的转换呢?首先模拟信号从任一通道输入,然后设定寄存器中预分频器的值来确定AD转换器频率,最后ADC将模拟信号转换为数字信号保存到ADC数据寄存器0中(ADCDAT0),然后A 阅读全文
posted @ 2011-01-24 22:02 h13 阅读(4738) 评论(0) 推荐(0) 编辑

摘要:s3c2410 RTC驱动框架linux内核源码分析代码 阅读全文
posted @ 2011-01-19 10:07 h13 阅读(1781) 评论(0) 推荐(0) 编辑

摘要:一、通用IO的定义GPIO(General-Purpose IO ports),通用的IO口。一般的微控制芯片都提供通用的可编程接口。按照它们的功能分成:●通用IO控制寄存器●通过IO数据寄存器很多MCU的GPIO接口出去了标准的寄存器必须外,还会提供上拉寄存器,可以设置IO的输出模式为高阻。二、S3C2410A的通用IO寄存器S3C2410A共有117个复用的输入/输出端口,分别是端口A~H,共8组。按照其位数不同不同可分为:●端口A(GPA),23位输出口●端口B(GPB),11位输出口●端口C(GPC),16位输出口●端口D(GPD),16位输出口●端口E(GPE),16位输出口●端口F 阅读全文
posted @ 2010-12-30 14:50 h13 阅读(1604) 评论(0) 推荐(0) 编辑

摘要:1. 学会写简单的makefile 2. 编一应用程序,可以用makefile跑起来 3. 学会写驱动的makefile4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。5. 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的实现。 6. 写一block驱动, 加上read,write,ioctl,poll等各种函数实现。 7. 简单学习下内存管理, 阅读全文
posted @ 2010-12-24 22:18 h13 阅读(2853) 评论(0) 推荐(1) 编辑

摘要:由于很多人总问这个问题,所以这里做一个总结文档供大家参考。这里必须先说明,以下的步骤都是针对Linux系统的,并不面向WinCE。也许你会注意到,现在做嵌入式的人中,做linux研究的人远比做WinCE的人多,很多产家提供的资料也是以linux为主。我一直很难理解,其实WinCE的界面比linux的界面好看多了,使用起来也很方便,更为重要的是,WinCE的开发和Windows下的开发基本一样,学起来简单得多,但是学linux或者使用linux做嵌入式的人就是远比WinCE多。在和很多工作的人交流时我了解到,他们公司从没考虑使用WinCE,因为成本高,都是使用linux进行开发。我读研究生的的实 阅读全文
posted @ 2010-12-21 19:36 h13 阅读(2423) 评论(0) 推荐(1) 编辑

摘要:杂项设备(misc device)杂项设备也是在嵌入式系统中用得比较多的一种设备驱动。在 Linux 内核的include\linux目录下有Miscdevice.h文件,要把自己定义的misc device从设备定义在这里。其实是因为这些字符设备不符合预先确定的字符设备范畴,所有这些设备采用主编号10 ,一起归于misc device,其实misc_register就是用主标号10调用register_chrdev()的。 也就是说,misc设备其实也就是特殊的字符设备,可自动生成设备节点。 字符设备(char device) 使用register_chrdev(LED_MAJOR,DEVI 阅读全文
posted @ 2010-12-21 18:49 h13 阅读(1617) 评论(0) 推荐(0) 编辑

摘要:Linux USB驱动框架分析(一)初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程序写法。 事实上,Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的所有资源。用术语来说,就是这个驱动器对象所拥有的属性及成员。由于Linux的内核用c来编写,所以 阅读全文
posted @ 2010-11-19 08:31 h13 阅读(5309) 评论(1) 推荐(1) 编辑

摘要:经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助。刚接触Linux设备驱动时,初学者往往连如何编译驱动程序都不懂,更别说编译进内核或加载测试了。一般都是在网上找个最简单的 helloworld驱动程序,然后严格按照网上所说的步骤编译,结果却得到一大堆见都没见过的错误,更不要说根据错误信息... 阅读全文
posted @ 2010-10-29 15:48 h13 阅读(23946) 评论(1) 推荐(5) 编辑

摘要:Linux操作系统网络驱动程序编写 一.Linux系统设备驱动程序概述 1.1 Linux设备驱动程序分类 1.2 编写驱动程序的一些基本概念 二.Linux系统网络设备驱动程序 2.1 网络驱动程序的结构 2.2 网络驱动程序的基本方法 2.3 网络驱动程序中用到的数据结构 2.4 常用的系统支持 三.编写Linux网络驱动程序中可能遇到的问题 3.1 中断共享 3.2 硬件发送忙时的处理 3.3 流量控制(flow control) 3.4 调试 四.进一步的阅读 五.杂项 Linux网络驱动程序编写工作需要写了我们公司一块网卡的Linux驱动程序。经历一个从无到有的过程,深感技术交流的重 阅读全文
posted @ 2010-08-20 13:55 h13 阅读(3076) 评论(0) 推荐(0) 编辑

上一页 1 2