上一页 1 ··· 16 17 18 19 20
摘要: 记录哪个方法更普适,更高效,这些方法不包括使用函数的方法,如果使用函数的话,使用指针的方法更合适。 使用中间变量 形如 int tmp, tmp = a; a=b; b = tmp;1 #define SWAP(a, b) {typeof(a) _t=a; a=b; b=_t;} 通杀,唯... 阅读全文
posted @ 2015-05-09 21:27 thammer 阅读(1455) 评论(0) 推荐(0) 编辑
摘要: typeof基本介绍 1 typeof(x) 这是它的使用方法,x可以是数据类型或者表达式。它的作用时期和sizeof类似,就是它是在编译器从高级语言(如C语言)翻译成汇编语言时起作用,这个很重要,稍后会解释。 当x是数据类型时,它和关键字typedef很相似,只不过typedef是要先定义再... 阅读全文
posted @ 2015-05-09 18:01 thammer 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 一个简单的驱动 模块的使用能使linux内核便于裁剪,根据不同的应用需求得到一个最小的内核,同时调试内核驱动也更为方便,比如如果调试i2c驱动,如果不采用模块的方式,那么每次修改i2c驱动就得编译整个内核,对于编译调试极其耗时,使用模块,一个简单的insmod就将模块加载进了内核,如果觉得不合适,... 阅读全文
posted @ 2015-05-03 22:56 thammer 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 有main.c:1 #include 2 #include "command.h" 3 4 int main(int argc, const char *argv[])5 {6 printf("run in main\n");7 return 0;8 }commad.... 阅读全文
posted @ 2015-04-27 23:15 thammer 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 伪目标就是总是被执行的目标,相对于目标来说,伪目标不会去考虑它的依赖的时间戳与自己时间戳的新旧关系,从而决定是否执行规则。伪目标格式:.PHONY:cleanclean: -rm *.o在makefile里面通常会将clean这个目标指定为伪目标,这个目标有个特性就是无依赖,那么每次mak... 阅读全文
posted @ 2015-04-25 20:55 thammer 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 从来没系统的看过makefile文档,平时属于复制模板,用完即忘,下午尝试按自己的理解写一个最简单的makefile,含2个.c文件,1个.h文件,费了个把小时,参考别人的文章才弄出来,特记录。main.c:1 #include 2 #include "command.h" 3 4 int ma... 阅读全文
posted @ 2015-04-25 19:17 thammer 阅读(1281) 评论(0) 推荐(0) 编辑
摘要: 以s3c2440 clock & power management为例,2440一般可以使用外部晶振或者外部时钟作为时钟源,通过OM[3:2]来配置。外部晶振一般选用12MHZ,而2440如果工作在这个频率显然大材小用,2440正常工作频率可达400MHZ,显然从12MHZ到400MHZ需要倍频,2440通过锁相环单元来实现倍频。 上面这个框图中,PFD,... 阅读全文
posted @ 2015-04-13 15:21 thammer 阅读(2146) 评论(0) 推荐(0) 编辑
摘要: loop系列的指令有:loop,loope/loopz,loopne/loopnz,它们都是借助于ECX寄存器作为计数来实现循环,每轮循环先ecx自动减1,再来判断ecx值,ecx的自减不会影响OF和CF。通用的格式是 loopx labloop循环直到ecx为0。一个错误的例子: 1 .... 阅读全文
posted @ 2015-03-11 13:50 thammer 阅读(3202) 评论(0) 推荐(0) 编辑
摘要: EAX, ECX,EDX,EBX均可以32bit,16bit,8bit访问,如下所示:|| || ||| 测试代码如下: 1 .section .data 2 output: 3 .asciz "Value is:%x\n" 4 val: 5 ... 阅读全文
posted @ 2015-03-03 17:50 thammer 阅读(1364) 评论(0) 推荐(0) 编辑
上一页 1 ··· 16 17 18 19 20