自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 list_add_tail()

将new所代表的list_head插入head所索引的队列的尾部static inline void list_add_tail(struct list_head *new, struct list_head *head){    __list_add(new, head->prev, head);}将new所代表的list_head插入到next索引的双链

2013-03-24 11:19:43 1094

转载 list_del 分析2

bug提示无法请求0000000000200200地址所在的页,而问题出在list_del函数;分析list_del函数:  在内核中0xC0000000以下(内存为4G,高地址1G作为内核空间使用,低地址3G作为用户空间使用,此3G内核空间申请不到)的地址是不能申请到的,为了防止有的节点申请内存错误的时候也是NULL使用不可能被初始化的指针当作标记。而0x00200200 这

2013-03-21 23:10:50 893

转载 list_del 分析

Linux内核的双向链表是比较经典的东西,网上分析链表的同志基本分析了99%,就差了1%。那就是list_del函数。先给出函数原型:#ifdef CONFIG_ILLEGAL_POINTER_VALUE# define POISON_POINTER_DELTA _AC(CONFIG_ILLEGAL_POINTER_VALUE, UL)#else# define POISON_

2013-03-21 23:05:58 2091

转载 关于删除元素的不安全性

关于删除元素的不安全性为什么说调用list_del()删除元素有安全隐患?具体看源代码:static inline void __list_del(struct list_head * prev, struct list_head * next){next->prev = prev;prev->next = next;}static inline void li

2013-03-21 23:01:17 722

原创 关于Epipolar Geometry Toolbox(EGT)如何安装

一下是官方文档给出来的:Simply unzip the files contained in "EGT_v1p3.rar" (or .zip) in your HD, and then add this directoryto your Matlab path. (File->AddPAth->...)

2013-01-26 12:52:28 926

原创 Robotics Toolbox for matlab如何安装

最近学习matlab关于机器人方面的编程,需要用到Robotics Toolbox for matlab工具箱,但是没有安装,于是上网百度了安装方法,并结合自己matlab的版本写下自己的安装过程:        首先,我们要知道什么叫工具箱。其实,工具箱就是一系列处理某个事件的函数的集合,因此,我们想安装工具箱,就是想用其中的函数。因此,我们只要把工具箱加到matlab的工作路径就好了。

2013-01-26 12:47:38 3524

转载 RAND_MAX 宏

RAND_MAX是VC中stdlib.h中宏定义的一个字符常量:  #define RAND_MAX 0x7FFF  其值最小为32767,最大为2147483647  通常在产生随机小数时可以使用RAND_MAX。  给出C++例子:  //在VC6.0中运行通过  #include  #include  #include

2012-09-23 15:35:29 1010

转载 srand 函数

srand函数是随机数发生器的初始化函数。  原型:void srand(unsigned seed);  用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如: srand(1); 直接使用1来初始化种子。不过为了防止随机数每次重复常常使用系统时间来初始化,即使用 time函数来获得系统时间,它的返回值为从 00:00

2012-09-23 15:32:43 967

转载 C语言中time()函数

C语言中time()函数函数简介  函数名: time  头文件:time.h  函数原型:time_t time(time_t * timer)  功能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epo

2012-09-23 15:15:30 1301

转载 Linux学习篇之Ubuntu10.10嵌入式开发配置

Ubuntu10.10配置    不论安装一个什么样的系统,或多或少的都要进行一些配置,有些更是必不可少的,用以满足日后所需,让我们的机器跑的更high。想当初第一次装好ubuntu之后,立马来了一股豪情,打开vi编辑器,准备来一个经典的"hello world"程序,也在linux上过过瘾,没想到竟然成功的悲剧了,按方向键居然出来的是ABCD大写字母,删除键是向前移动光标,这下郁

2012-09-23 14:54:45 588

转载 Linux下的vim配置和插件管理

http://www.cnblogs.com/windowswind/archive/2012/03/22/2450079.html

2012-09-23 14:51:21 632

转载 嵌入式linux进程线程----Linux中的EAGAIN含义

在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。    从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读。此时程序不会阻塞

2012-09-23 14:39:12 3542

转载 sem_init函数

#include   int sem_init(sem_t *sem, int pshared, unsigned int value);   sem_init() 初始化一个定位在 sem 的匿名信号量。value 参数指定信号量的初始值。 pshared 参数指明信号量是由进程内线程共享,还是由进程之间共享。如果 pshared 的值为 0,那么信号量将被进程内的线程共享,

2012-09-23 09:36:36 2669

转载 sem_init() 函数

sem_init目录头文件函数原型说明返回值错误展开 头文件函数原型说明返回值错误展开 编辑本段头文件  #include编辑本段函数原型  int sem_init(sem_t *sem, int pshared, unsigned int value);编辑本段说明  s

2012-09-23 09:33:49 2356

转载 波特率与比特率

在电子通信领域,波特率(Baud rate)即调制速率,指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数。它是对符号传输速率的一种度量,1波特即指每秒传输1个符号。 单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误。目录波特率概念波特率分析举例波特率与比特率

2012-08-03 23:06:17 700

转载 ReadFile

函数原型  BOOL ReadFile(  HANDLE hFile, //文件的句柄  LPVOID lpBuffer, //用于保存读入数据的一个缓冲区  DWORD nNumberOfBytesToRead, //要读入的字节数  LPDWORD lpNumberOfBytesRead, //指向实际读取字节数的指针  LPOVERLAPPED lpO

2012-06-24 16:07:05 614

转载 WriteFile 函数解析

BOOL WriteFile(  HANDLE hFile, // 文件句柄  LPCVOID lpBuffer, // 数据缓存区指针  DWORD nNumberOfBytesToWrite, // 你要写的字节数  LPDWORD lpNumberOfBytesWritten, // 用于保存实际写入字节数的存储区域的指针  LPOVERLAPPED

2012-06-24 16:03:11 11279

转载 SetCommTimeouts

windows系统利用此函数设定通讯设备读写时的超时参数,SetCommTimeouts函数声明如下:  BOOL SetCommTimeouts(  HANDLE hFile,  LPCOMMTIMEOUTS lpCommTimeouts  );  SetCommTimeouts函数的第一个参数hFile是由CreateFile函数返回指向已打开串行口的句

2012-06-24 15:52:42 1596

转载 GetCommTimeouts函数解析

Windows系统利用此函数获取特定的通讯设备读写时的超时参数设定,GetCommTimeouts函数声明如下:  BOOL GetCommTimeouts(  HANDLE hFile,  LPCOMMTIMEOUTS lpCommTimeouts  );  GetCommTimeouts函数的第一个参数hFile是由CreateFile函数返回指向已打开

2012-06-24 15:49:10 984

转载 COMMTIMEOUTS

在用ReadFile和WriteFile读写串行口时,需要考虑超时问题。如果在指定的时间内没有读出或写入指定数量的字符,那么ReadFile或WriteFile的操作就会结束。要查询当前的超时设置应调用GetCommTimeouts函数,该函数会填充一个COMMTIMEOUTS结构。调用SetCommTimeouts可以用某一个COMMTIMEOUTS结构的内容来设置超时。 有两种超时:间隔超时和

2012-06-24 15:39:52 573

转载 GetCommState 函数

GetCommState 读取串口设置(波特率,校验,停止位,数据位等).  函数声明:  BOOL GetCommState(  HANDLE hFile,  LPDCB lpDCB  );  GetCommState函数的第一个参数hFile是由CreateFile函数返回指向已打开串行口的句柄。第二个参数指向设备控制块DCB。如果函数调用成功,

2012-06-24 15:35:28 1246

转载 DCB结构

串口通讯中的DCB结构 DCB(Device Control Block)结构定义了串口通信设备的控制设置。 typedef struct _DCB {// dcb  DWORD DCBlength; // sizeof(DCB)   DWORD BaudRate; // current baud rate 指定当前的波特率   DWORD fBinary: 1; //

2012-06-24 15:33:42 4959

转载 CreateFile函数详解

CreateFile The CreateFile function creates or opens the following objects and returns a handle that can be used to accessthe object: files pipes mailslots communications resources disk

2012-06-24 15:26:36 521

转载 linux下的sourceinsight

1)CscopeUsing Cscope on large projects (example: the Linux kernel)Cscope can be a particularly useful tool if you need to wade into a large code base. You can save yourself a lot of time by being

2012-05-27 21:17:50 530

转载 定语从句和同位语重句的区别

众所周知,定语从句与同位语从句是中学英语语法的一个重要组成部分,都由连词that和副词when,where,why来引导,看似形式相同,实际上有着本质的区别。  首先.我们看定义,定语从句是在复合句中修饰名词或代词的从句,句法功能与形容词相同,是形容词性从句。而同位语从句是在复合句中,用以解释或说明某些特定名词的从句,句法功能与名词相同,故是名词性从句。  其次,我们分别来

2012-05-08 22:32:41 778

转载 考研数一辅导全书的选则---考研论坛转载

考研科目比较多,时间比较紧。任何复习都要付出成本的,因为时间就是你最大的成本。有人说做上万道题甚至更多,数学应该就能考好。这个问题也许是正 确的,即使题海战术也有它的特殊优势。但你要知道,考研考的不只是看你的数学成绩,你的复习还要包括其他几科,你追求的应该是综合的提高,也就是一个整体 观念,是一个协调过程。所以既然在有限的时间约束条件下求得复习的条件极值,就必须要找准你的方向,少走弯路,花的时间都

2012-05-07 21:59:42 848

转载 关于VS2005通过“添加变量”向导来添加控件变量时出现“控件变量”被禁用的处理办法!

当初刚接触MFC的时候,在使用VS2005的过程当中使用添加变量向导来添加控件变量时常会出现问题,在CSDN上发了求助帖也没人帮得上忙。。后来就此作罢。最近心血来潮,分析了正常与非正常VS工程的所有文件,总算被我找到了问题所在了!!其实非常简单,造成这种情况的主要原因是*.vcproj文件(也就是工程文件)里的资源文件关联信息错误引起的。而出现这种情况多半是因为工程里有多个*.rc文件或者

2012-05-03 15:34:07 921

转载 SD_STM32_SPI驱动+FatFs文件系统

一.文件列表:MMCSDTimming.pdfSD3.0_20090721.pdf-------详细介绍了SD、SDIO,标准的官方文档SD_FAT文档.docMicrosoft_fat32.doc二、简易FAT32/*******************************************************

2012-04-30 13:34:54 1954 1

转载 编辑本段C语言函数realloc

函数简介  原型:extern void *realloc(void *mem_address, unsigned int newsize);  语法:指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)。//新的大小一定要大于原来的大小不然的话会导致数据丢失!  头文件:#include stdlib.h> 有些编译器需要#include ,在TC

2012-04-27 23:50:06 626

转载 keil的51单片机仿真调试中如何查看内存的内容

在Memory窗口中输入地址值,得到的结果是程序代码区的内容。由于51采用的是哈佛结构,程序指令存储和数据存储分开。要查看各种内存区域的内容,只要在Address框内输入“字母:地址”即可显示相应的内存值。其中字母可以是C、D、I、X,分别代表的意义是:  C:代码存储空间  D:直接寻址片内存储空间  I :间接寻址片内存储空间  X:扩展的外部RAM空间如输入“d:0x30

2012-04-26 14:52:49 7153 4

转载 Windows CE下通讯录数据库的开发详细代码

CEDataBase.h文件#pragma once//数据库类型的枚举值//可以对此枚举进行拓展,但是在响应使用的函数里都要进行拓展enum{PRO_STRING = 0x00000001, //字符串类型 TCHARPRO_TIME, //日期型 systimePRO_NUMBER //整型 int};/

2012-04-09 22:35:38 757

转载 Windows Mobile 5.0 SDK 下载地址收藏

Windows Mobile 5.0 开发包: (包括工具和学习资源): http://download.microsoft.com/download/6/0/8/608530c5-7e9a-4032-bf18-92d90b5f4ab4/WM Developer Resource Kit.msi单独下载: SDK for Pocket PC: http://download.m

2012-04-07 16:12:35 452

转载 linux 编译静态链接库和动态链接库

我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在

2011-09-05 23:43:02 562

原创 windows xp 下QT集成开发环境

准备的软件: qt-creator-win-opensource-2.2.1.exe (主要包含mingw).qt-win-opensource-4.7.3-mingw.exe(QT编译软件,qmake和Qt库).首先安装qt-creator-win-open

2011-08-17 22:00:58 1391

原创 查看Linux下宏定义的快速方法

我是在ubunt 10.10 下用的.步骤:1.sudo apt-get install ctags2.cd  /usr/include/3.ctags -R4.vi -t +要查找的宏名

2011-08-15 21:02:25 2421

转载 线程学习

1. 线程的概念我们知道,进程在各自独立的地址空间中运行,进程之间共享数据需要用mmap或者进程间通信机制,本节我们学习如何在一个进程的地址空间中执行多个线程。有些情况需要在一个进程中同时执行多个控制流程,这时候线程就派上了用场,比如实现一个图形界面的下载软件,一方面需要和用

2011-08-05 21:41:20 559

转载 C 语言创建线程池

什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。   下面是Linux系

2011-08-05 21:38:37 559

转载 write()函数简介

write函数(写入文件)它的主要功能是:将某个文件缓冲区的数据,写入某个文件内。系统调用格式:number = write(handle, buffer, n) ;write函数各个参数定义如下:l         handle:  这是一个已经打开的文件句柄,表示将数据写入这

2011-07-26 00:17:39 6505

转载 read()函数简介

read函数从打开的设备或文件中读取数据。#include ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0

2011-07-26 00:10:22 43239

转载 C语言中open函数

作用:打开和创建文件。   简述:   #include   int open(const char *pathname, int oflag, ... /* mode_t mode */);   返回值:成功则返回文件描述符,否则返回 -1   对于 open 函数来说,第三

2011-07-26 00:04:36 38993 1

数据结构实例分析(C语言代码实现)

数据结构在计算机学习中的地位毋庸置疑,它是计算机的专业基础课程,想提高自己编程能力和算法能力的值得下载!

2010-10-24

网络工程师2006版

致力学习网络的初学者必备的手册!上面有很全的说明,讲解的很详细的!

2010-05-20

空空如也

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

TA关注的人

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