易截截图软件、单文件、免安装、纯绿色、仅160KB

linux驱动之 led驱动

练手, 第一个字符驱动.
用模块加载方法
华清远见<嵌入式linux设备驱动开发详解>的代码拿来改的.  
编译过程发现很多错误.
最后发现 这本书带的驱动代码都是基于linux2.4的...目前我用的linux2.6, 代码部分需要做修改.
我的板子是 友善之臂的 2410.  vmware+ubuntu  nfs交叉编译
首先
linux2.6内核编译里面要打开loadable modules,  以及 unload 的选项也要选上 否则用不到rmmod命令 呵呵.
第二 (和上面第一条一样,今后写驱动都会要用到这个)
要制作linux 内核树(linux2.6必须)
在linux2.6.14.1的代码目录
make bzImage 
会生成一个新文件 vmlinux 
然后 make modules   //编译模块
       make modules install //安装模块
结束之后会在/lib/modules下生成2.6.14.1文件夹,  这个就是内核树了.  主要用到的就是里面的头文件.
第三
修改书上带的代码, 主要是改端口号, 以及部分代码基于linux2.6会不同, , 请见我提供的下载, 里面包括了 makefile, 驱动源代码, 测试程序源代码.
 注意会用到ioremap()函数,  绝对地址到虚拟地址的转换, 然后用指针来对portB的寄存器赋值
第四
测试..
交叉编译, 在开发板串口终端上  insmod ./led.ko   出现提示符,   rmmod led 也出现退出消息.
这个时候注意了, 要添加设备节点, 否则 test程序是打不开设备的.
mknod /dev/leds c 231 0  //创建设备节点
 
然后执行./test    ,  可以看到开发板上4个led全亮, 全黑, 轮流....说明这个驱动弄成功了. 
提供源码下载.很兴奋.
 
感谢老何.


相关文档:

linux 编译 qt4.6.2

准备工作
    qt-everywhere-opensource-src-4.6.2.tar
 解压 tar xvzf qt-everywhere-opensource-src-4.6.2.tar
 配置:
   ./configure -prefix /home/hyk/Qt_self_compiled/Qt_4_6_2
(只是改变了安装目录)
   gmake
(重配置 gmake confclean , configure)
中午12 ......

linux 中断处理

中断处理
 
在 2.4 内核和 2.6内核中都使用 request_irq()
函数来注册中断服务函数。在 2.4
内核中,需要包含的头文件是 #include <linux/sched.h> ,2.6 内核中需要包含的头文件则是 #include
<linux/interrupt.h> 。函数原型如下:
2.4 内核
int
request_irq
(unsigned
int
irq ......

Linux中安装Resin3手记

安装步骤:
Ø  安装resin前先要保证安装了JDK,可以用命令查看是否安装了JDK:
[root@wxr webapps]# java -versions
java version "1.6.0_19"
Java(TM) SE Runtime Environment (build 1.6.0_19-b04)
Java HotSpot(TM) Client VM (build 16.2-b04, mixed mode, sharing)
 
Ø  下载Res ......

Linux内核中 遍历链表


最近在看一个开源的代码,一段代码看了很久都没有看懂,Google了一下,尽然是linux中链表的遍历。
遍历链表:
遍历链表list_for_each是一个宏,展开了就是一个for循环
#define list_for_each(pos, head) \
        for (pos = (head)->next; prefetch(pos->next), pos != ( ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号