摘要:
I can't make an exception for you.(我不能为你破例) oppose goverment (反对政府) with their mouths watering(流着口水) hold water(不让水流出来->比较严密->靠谱) agony(身体和精神上的极大痛苦) rascal(淘气鬼) Far water doesn't put out near fire(远水救... 阅读全文
摘要:
三个 比较有用的变量是 $@, $<和 $^ (这些变量不需要括号括住)。 $@ 扩展成当前规则的目的文件名, $< 扩展成依靠列表中的第 一个依靠文件,而 $^ 扩展成整个依靠的列表(除掉了里面所有重 复的文件名)。利用这些变量,我们可以把上面的 makefile 写成: === makefile 开始 === OBJS = foo.o bar.o CC... 阅读全文
摘要:
Linux i386+源码中常见宏标识tag的定义 这些宏包括 __init、__initdata、__initfunc()、asmlinkage、ENTRY()、FASTCALL()等等。它们的定义主要位于Include\linux\linkage.h和 include\asm-i386\Init.h以及其他一些.h文件中。 1) __init位置:include\asm-i386\Init.... 阅读全文
摘要:
基本思路: 1.module_init(初始化函数) 2.module_exit(退出时的函数) 3.初始化函数要做的基本工作: request_irq()//为设备申请中断 register_chrdev()//注册字符型设备的操作 操作类型存于file_operations结构体中 4.具体实现file_operations结构体中涉及的操作,基本的有open,read,wr... 阅读全文
摘要:
1.#define 定义编译期间的常量 2.#undef 取消编译期间的常量 3.#ifdef (条件编译) #else #endif 看下面的一个例子: #undef DEBUG //取消DEBUG常量 #define DEBUG //定义DEBUG常量,表达执行程序时有调试结果 #ifdef DEBUG //如果已经定义了DEBUG常量(调试时) #defi... 阅读全文