- 博客(9)
- 资源 (17)
- 收藏
- 关注
转载 Linux内核系统定时器TIMER实现过程分析
转自http://blog.csdn.net/yyplc/article/details/7065722Linux系统定时器,在内核中扮演着重要角色。内核的许多重要实现如任务调度,工作队列等均以系统定时器关系密切。系统定时器能以可编程的频率中断处理,这一中断叫做软中断。此频率即为每秒的定时器节拍数HZ。HZ的越大,说明定时器节拍越小,线程调度的准确性会越高。但HZ设得过大,对一个系统来说并
2013-09-29 17:35:04 1627
原创 linux内核链表分析
linux内核的链表一般都是双向循环链表,双向循环链表的效率是最高的,找头节点,尾节点,直接前驱,直接后继时间复杂度都是O(1),而使用单链表,单向循环链表或其他形式的链表是不能完成的。 linux内核链表最大特点就是它的通用性,不必因为结构体中的数据域的不通而单独为操作链表设计一套方案. linux内核在linux/list.h文件中定义了内核通用链表list_head类
2013-09-29 17:03:50 794
原创 linux中kmalloc和vmalloc的使用
kmalloc和get_free_page申请的内存位于物理内存映射区域,而且在物理上也是连续的,它们与真实的物理地址只有一个固定的偏移,因此存在较简单的转换关系,virt_to_phys()可以实现内核虚拟地址转化为物理地址:#define __pa(x) ((unsigned long)(x)-PAGE_OFFSET) extern inline unsigned long
2013-09-29 16:10:18 5003
原创 #define 和 typedef的区别
最近看linux数据结构,对于大范围使用typedef很不适应,上网查资料,发现好多的错误,特此更正下,有错的话请轻喷。#define宏常量只是简单的进行值替换,枚举常量是真正意义上的常量#define宏常量无法被调试,枚举常量可以#define宏常量无类型信息,枚举常量是一种特定类型的常量typedef用于给一个已经存在的数据类型重命名typedef并没有产生新的
2013-09-29 15:39:44 823
转载 深入理解指针函数
1.指针函数的定义 顾名思义,指针函数即返回指针的函数。其一般定义形式如下: 类型名*函数名(函数参数表列); 其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函数后,将得到一个“指向返回值为…的指针(地址),“类型名”表示函数返回的指针指向的类型”。 “(
2013-09-29 15:31:24 599
转载 深入理解typedef
typedef作为类型定义关键字,用于在原有数据类型(包括基本类型、构造类型和指针等)的基础上,由用户自定义新的类型名称。 在编程中使用typedef的好处,除了为变量取一个简单易记且意义明确的新名称之外,还可以简化一些比较复杂的类型声明。比如: typedef int INT32;将INT32定义为与int具有相同意义的名字,这样类型INT32就可用于类型声明和类型
2013-09-29 15:29:52 645
原创 柔性数组
也许你从来没有听说过柔性数组(flexible array)这个概念,但是它确实是存在的。看这个结构体的定义:typedef struct st_type{ int nCnt; int item[0];}type_a;(有些编译器会报错无法编译可以改成:)typedef struct st_type{ int nCnt; int
2013-09-29 15:24:27 618
原创 const violate
在C语言中,const修饰的变量是只读的,其本质还是变量,其仍然会占用内存空间,在编译时有用,在运行时没有作用,本质上是告诉编译器const修饰的变量只能在等号的右边,但是这并不代表const修饰的变量是不能改变的。const int* p; //p可变,p指向的内容不可变 int const* p; //p可变,p指向的内容不可
2013-09-29 15:17:48 1795
原创 remap_pfn_range使用详解
remap_pfn_range和io_remap_pfn_range负责为一段物理地址建立新的页表,他们的原型如下 int remap_pfn_range(struct vm_area_struct *vma, unsigned long virt_addr, unsigned long pfn, unsigned long size, pgprot_t prot); i
2013-09-29 15:01:30 12102 2
android触摸位置显示
2014-02-13
-LPC1788-SDK Example V1.0 Beta version LPC1788例程
2013-08-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人