转贴: 原地址:http://www.ibm.com/developerworks/cn/linux/l-module26/
从 2.4 到 2.6,Linux 内核在可装载模块机制、设备模型、一些核心 API 等方面发生较大改变,设备驱动开发人员面临着将驱动从
2.4 移植到 2.6 内核,或是使驱动同时支持2.4 与 2.6
内核的任务。站在设备驱动开发人员的角度,驱动由一个或几个外部可加载内核模块组成,本文针对 2.6
内核里模块机制的改变对编写设备驱动程序的影响,从内核模块的编译、装载时的版本检查、初始化与退出、模块使用计数、输出内核符号、命令行输..
1、wildcard : 扩展通配符
2、notdir : 去除路径
3、patsubst :替换通配符
例子:
建立一个测试目录,在测试目录下建立一个名为sub的子目录
$ mkdir test
$ cd test
$ mkdir sub
在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2 个文件
建立一个简单的makefile
src=$(wildcard *.c ./sub/*.c)
dir=$(notdir $(src))
obj=$(patsubst %.c,%.o,$(dir) )
all:
@echo $(src)
@echo $(dir)
@echo $(obj)
@echo "end"
执行结果分析:
第一行输出:
a.c b.c ./sub/sa.c ./sub/sb.c
wildcard..
最近开发ARM
Linux需要用NFS升级目标板的文件系统。于是在电脑上启动NFS是必须的。其实这种方式还真没用过,以往都是通过串口下载内核和文件系统的,速度怎
一个慢了得。比较懒,没有研究NFS更新的办法。在动手之前还是阅读了些NFS服务相关的文档和帖子。个人记性不是很好,记录一下,以便查找吧。
安装:
#sudo apt-get install nfs-common#sudo apt-get install nfs-kernel-server
修改/etc/exports文件,加入如下几行:
格式: [共享目录] [主机名或IP](参数,参数) /hom..
什么是交叉编译呢,简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓
平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结
构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说
的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是
Intel x86体系结构和Windows NT for x86操作系统的简称。
一个经常会被问到的问题就是,“既然我们已经有了主机编译..
source命令:
source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。
用法:
source filename 或 . filename
source命令除了上述的用途之外,还有一个另外一个用途。在对编译系统核心时常常需要输入一长串的命令,如:
make mrproper
make menuconfig
make dep
make clean
make bzImage
…………
如果把这些命令做成一个文件,让它自动顺序执行,对于需要多次反复编译系统核心的用户来说会很方便,而用source命令就可以做到这一点,它的作
..
指令名称 : chmod
使用权限 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
参数 :
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表..
http://www.khronos.org/opengles/sdk/1.1/docs/man/
Linux 设备驱动 Edition 3
http://www.deansys.com/doc/ldd3/
Makefile学习教程: 跟我一起写 Makefile
http://www.stlchina.org/twiki/bin/view.pl/ScriptProgram/LearnMakefile
一.使用基础:
1. Linux是
工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备
来供用户态进程实现直接写屏。对于用户而言,framebuffer和/dev下面的其他设备没有什么区别,用户可以把framebuffer
看成一块内存,既可以向这块内存中写入数据,也可以从这块内存中读取数据。在应用程序中,一般通过将 FrameBuffer
设备映射到进程地址空间的方式使用。
2.在这种机制下,尽管Framebuffer需要真正的显卡驱动的支持,但所有显示任务都有CPU完成,因此CPU负..