自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (2)
  • 收藏
  • 关注

原创 实模式和保护模式

实模式:将整个物理内存看成分段的区域,程序代码和数据位于不同区域,系统程序和用户程序并没有区别对待,而且每一个指针都是指向实际的物理地址。这样一来,用户程序的一个指针如果指向了系统程序区域或其他用户程序区域,并修改了内容,那么对于这个被修改的系统程序或用户程序,其后果就很可能是灾难性的。x86体系的处理器刚开始时只有20根地址线,寻址寄存器是16位。我们知道16位的寄存器可以访问64K的地址空间,

2014-03-26 22:43:22 882

转载 assert用法

assert宏的原型定义在中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:#i

2014-03-25 22:52:55 688

转载 linux内核空间和用户空间

linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G。Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。而将较低的3G

2014-03-22 10:42:36 645

转载 linux进程间通信之信号量集

AT&T的贝尔实验室,对Unix早期的进程间通信进行了改进和扩充,形成了"system V IPC",其通信进程主要局限在单个计算机内。IPC对象指的是共享内存(share memory)、消息队列(message queue)和信号灯集(semaphore)。信号灯(semaphore),也叫信号量。它是不同进程间或一个给定进程内部不同线程间同步的机制。System V的信号灯是一个或者

2014-03-21 12:57:43 850 1

转载 C++类中成员变量初始化

C++类中成员变量包括主要四种:普通成员变量,常量成员变量,静态成员变量,静态常量成员变量上述成员变量该如何初始化,注意不是赋值。由于普通成员变量和常量成员变量,每一个类实例化,都一份内存拷贝。C++规定成员变量在声明(注意声明与定义区别)时,不允许初始化,因此这些变量只能放在构造函数初始化列表中。静态成员变量所有类实例化,只有一份内存拷贝,不能放在构造函数中初始化, 因为共享

2014-03-18 23:42:38 1144

转载 C++的虚基类,抽象类,虚函数,纯虚函数,virtual

虚基类在说明其作用前先看一段代码class A{public:int iValue;};class B:public A{public:void bPrintf(){cout};class C:public A{public:void cPrintf(){cout};class D:public B,public

2014-03-18 23:27:25 903

原创 float和double类型数据做比较问题

因为float和double类型的数据有数据精度,因此直接用“==”或者“!=”做比较会出现很多的问题,这类比较一般都使用宏定义一个数据精度,在精度允许误差范围内则认为两个数相等。以最常见的问题做分析:float a 与0作比较程序:我们经常不这样写代码 if(a == 0.0){printf("a equal 0");}而是这样写#define EPSINON

2014-03-10 22:36:00 1909

转载 sizeof和strlen区别和联系

一、sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。    由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所

2014-03-10 21:14:31 733

原创 linux中的用户ID分类

unix环境高级编程中进程一节提到了实际用户ID(RUID),有效用户ID(EUID)和设置用户ID(SUID)的概念。RUID是当前登陆linux系统用户的ID,EUID是表示某个用户对当前可执行程序所具有的有效权限,SUID是设置用户对当前程序的修改以及可执行权限。下面着重介绍EUID和SUID:linux@ubuntu:/$ ll /etc/passwd-rw-r--r--

2014-03-09 13:14:27 1537

转载 字符编码杂谈

1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与

2014-03-07 10:41:54 785

Keil C51文件夹

Keil for arm支持51配置时需要添加的C51文件夹

2014-04-19

arm芯片发展

arm芯片发展,cortex-A,cortex-R,coretx-M

2013-08-25

空空如也

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

TA关注的人

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