自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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蓝牙通信代码

Android和HC05蓝牙模块通信代码

2015-03-23

android触摸位置显示

android触摸位置显示,详情见博客http://blog.csdn.net/hongkangwl/article/details/19162883

2014-02-13

STM32编码器程序

STM32 编码器 程序 亲测可用,串口输出

2014-01-06

经典常用ALLEGRO16.3的PCB库

经典常用ALLEGRO16.3的PCB库

2013-11-12

串口通信的类,非常好用

串口通信的类,非常好用

2013-10-09

线性表链式存储结构C语言实现

线性表 链式存储结构 C语言实现 VC6.0

2013-10-04

线性表顺序存储C语言实现

数据结构 C语言 线性表 顺序存储 DEV 代码

2013-10-04

ubuntu下的dnw安装包

ubuntu下的dnw安装包,绝对可用,安装后直接运行sh文件即可

2013-09-16

人民银行招聘考试复习资料计算机类

人民银行招聘 考试 复习资料 计算机类 淘宝买30大洋买的 无偿献给大家

2013-08-27

PUMA560基于Matlab系统仿真

PUMA560 Matlab 系统仿真 测试通过

2013-08-27

MAG3110代码基于stm32

MAG3110 代码 基于stm32 亲测通过

2013-08-25

-LPC1788-SDK Example V1.0 Beta version LPC1788例程

-LPC1788-SDK Example V1.0 Beta version LPC1788例程

2013-08-23

STM32 DMP MPU6050

STM32 DMP MPU6050 测试成功

2013-08-20

平衡小车MPU6050

MPU6050 平衡小车 segway 调试通过

2013-08-17

STM32 MPU6050

STM32 MPU6050 代码调试通过

2013-08-17

Linux_C函数库参考手册_目录

Linux_C 函数库 参考手册_ 目录 嵌入式

2012-10-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除