自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (5)
  • 收藏
  • 关注

原创 nginx 源码阅读(2)

nginx 只有一个主进程多个从进程

2017-02-20 20:37:11 637

原创 nginx源码阅读(1)

ngix 源码解析

2017-02-20 20:29:34 424

转载 linux内核学习-宿主机为linux、windows分别实现VMware三种方式上网(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

宿主机为linux、windows分别实现VMware三种方式上网一、VMware三种方式工作原理1 Host-only连接方式  让虚机具有与宿主机不同的各自独立IP地址,但与宿主机位于不同网段,同时为宿主主机新增一个IP地址,且保证该IP地址与各虚机IP地址位于同一网段。最终结果是新建了一个由所有虚机与宿主主机所构成的局域网,但该局域网与宿主主机本身所处的现有局域网是相互独立的

2015-04-23 18:08:31 658

原创 linux内核学习- 字符设备块设备uart rs232(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

属于kernal核心,分别在子文件夹中实现,其他部分如工具文件,文件系统,等不再赘述

2015-04-21 15:52:44 840

原创 linux内核学习-7重要函数(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

该程序主要描述了进程(任务)终止和退出的处理事宜。主要包含进程释放、会话(进程组)终止和程序退出处理函数以及杀死进程、终止进程、挂起进程等系统调用函数。还包括进程信号发送函数send_sig()和通知父进程子进程终止的函数tell_father()。释放进程的函数release()主要根据指定的任务数据结构(任务描述符)指针,在任务数组中删除指定的进程指针、释放相关内存页并立刻让内

2015-04-21 12:12:41 513

原创 linux内核学习-6信号量(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

#include // 调度程序头文件,定义了任务结构task_struct、初始任务0 的数据,// 还有一些有关描述符参数设置和获取的嵌入式汇编函数宏语句。8 #include // 内核头文件。含有一些内核常用函数的原形定义。9 #include // 段操作头文件。定义了有关段寄存器操作的嵌入式汇编函数。1011 #include // 信号头文件。定义信号符号常量,信号结构以及信号操作函

2015-04-21 11:57:23 928

原创 linux内核学习-5任务调度(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

void schedule(void)105 {106 int i,next,c;107 struct task_struct ** p; // 任务结构指针的指针。108109 /* check alarm, wake up any interruptible tasks that have got a signal *//* 检测alarm(进程的报警定时值),唤醒任何

2015-04-21 11:43:11 721

原创 linux内核学习-4kernal目录(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

该目录下的代码文件从功能上可以分为三类,一类是硬件(异常)中断处理程序文件,一类是系统调用服务处理程序文件,另一类是进程调度等通用功能文件。参见图1.5。我们现在根据这个分类方式,从实现的功能上进行更详细的说明。5.1.1.1 硬件中断处理类程序主要包括两个代码文件:asm.s 和traps.c 文件。asm.s 用于实现大部分硬件异常所引起的中断的汇编语言处理过程。而trap

2015-04-21 10:34:46 981

原创 linux内核学习-3 fork()函数(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

fork 是一个系统调用函数。该系统调用复制当前进程,并在进程表中创建一个与原进程(被称为父进程)几乎完全一样的新表项,并执行同样的代码,但该新进程(这里被称为子进程)拥有自己的数据空间和环境参数。在父进程中,调用fork()返回的是子进程的进程标识号PID,而在子进程中fork()返回的将是0 值,这样,虽然此时还是在同样一程序中执行,但已开始叉开,各自执行自己的那段代码。如果f

2015-04-21 10:22:11 516

原创 linux内核学习-3 init函数(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

void init(void)169 {170 int pid,i;171172 setup((void *) &drive_info); // 读取硬盘参数包括分区表信息并建立虚拟盘和// 安装根文件系统设备。(kernel/blk_drv/hd.c,71)173 (void) open("/dev/tty0",O_RDWR,0); // 用读写访问方式打开设备“/dev

2015-04-21 10:17:58 642

原创 linux内核学习-3 main函数(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

#ifdef RAMDISK // 如果定义了虚拟盘,则主内存将减少。124 main_memory_start += rd_init(main_memory_start, RAMDISK*1024);125 #endif// 以下是内核进行所有方面的初始化工作。阅读时最好跟着调用的程序深入进去看,实在看// 不下去了,就先放一放,看下一个初始化调用 -- 这是经验之谈☺。12

2015-04-21 10:07:35 665

原创 linux内核学习-3 main.c(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))

在整个内核完成初始化后,内核将执行权切换到了用户模式,也即CPU 从0 特权级切换到了第3 特权级。然后系统第一次调用创建进程函数fork(),创建出一个用于运行init()的子进程。在该进程(任务)中系统将运行控制台程序。如果控制台环境建立成功,则再生成一个子进程,用于运行shell 程序/bin/sh。若该子进程退出,父进程返回,则父进程进入一个死循环内,继续生成子进程,并在此

2015-04-21 09:51:41 529

原创 linux0.11学习笔记(2)

makefile文件:make 程序是使用Makefile数据文件和代码文件的最后修改时间(last-modification time)来确定那些文件需要进

2014-10-29 22:26:53 620

原创 linux0.11学习笔记(1)

linux 入门学习笔记

2014-10-29 21:19:59 785

原创 学习make(十)

Where to go from hereWith this brief introduction to Makefiles, you can create some very sophisticated mechanism for compiling your projects. However, this is just a tip of the iceberg. I don't expe

2014-03-15 13:32:36 450

原创 学习make(七)

嵌套执行make在一些大的工程中,我们会把我们不同模块或是不同功能的源文件放在不同的目录中,我们可以在每个目录中都书写一个该目录的Makefile,这有利于让我 们的Makefile变得更加地简洁,而不至于把所有的东西全部写在一个Makefile中,这样会很难维护我们的Makefile,这个技术对于我们模 块编译和分段编译有着非常大的好处。例如,我们有一个子目录叫subdir,这个

2014-03-15 12:56:59 506

原创 学习make(六)

Makefile中,我们的依赖关系可能会需要包含一系列的头文件,比如,如果我们的main.c中有一句“#include "defs.h"”,那么我们的依赖关系应该是:main.o : main.c defs.h但是,如果是一个比较大型的工程,你必需清楚哪些C文件包含了哪些头文件,并且,你在加入或删除头文件时,也需要小心地修改Makefile,这是一个很 没有维护性的工作。为了避免这

2014-03-15 12:39:35 512

原创 学习makefile(五)

GNU的make工作时的执行步骤入下:(想来其它的make也是类似)1、读入所有的Makefile。2、读入被include的其它Makefile。3、初始化文件中的变量。4、推导隐晦规则,并分析所有规则。5、为所有的目标文件创建依赖关系链。6、根据依赖关系,决定哪些目标要重新生成。7、执行生成命令。1-5步为第一个阶段,6-7为第二个阶段。第一个阶段中,如

2014-03-15 12:30:09 382

原创 学习make(四)

认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、“makefile”、“Makefile”的文件,找到了解 释这个文件。在这三个文件名中,最好使用“Makefile”这个文件名,因为,这个文件名第一个字符为大写,这样有一种显目的感觉。最好不要用 “GNUmakefile”,这个文件是GNU的make识别的。有另外一些make只对全小写的“makefile”文件名

2014-03-15 12:24:38 452

原创 学习make(三)

GNU的make很强大,它可以自动推导文件以及文件依赖关系后面的命令,于是我们就没必要去在每一个[.o]文件后都写上类似的命令,因为,我们的make会自动识别,并自己推导命令。只要make看到一个[.o]文件,它就会自动的把[.c]文件加在依赖关系中,如果make找到一个whatever.o,那么whatever.c, 就会是whatever.o的依赖文件。并且 cc -c whateve

2014-03-15 12:20:49 475

原创 学习make(2)

make是如何工作的在默认的方式下,也就是我们只输入make命令。那么,1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要

2014-03-15 12:17:40 447

原创 学习make (-)

一、Makefile的规则在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则。target ... : prerequisites ...command......target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,在后续的“伪目标”章节中会有叙述。

2014-03-15 12:14:11 447

原创 关于vA

va简直是个垃圾,装上后我的vs慢了十几倍,受不了了

2014-03-07 19:00:00 494

转载 FLTK 例子扫雷

[0]起因花了一个星期左右的时间学习了下FLTK图形库,拿扫雷游戏作为学习FLTK图形库的原因有二:扫雷游戏算法很简单;之前写过一个Win32API的扫雷游戏。(自己回头去看看,感觉以前的按过程式的方法设计的代码不便于理解,结构不清晰) [1]设计一个可以载入图片的GameObject类 [1.1]类的声明如下:class GameObject{pu

2014-03-02 15:28:46 2335

转载 lex vs2010

用Lex做词法分析 Lex编译器将输入的模式转换成一个状态转换图,并生成相应的实现代码,并存放到文件lex.yy.c中,这些代码模拟了状态转换图。用Lex创建一个词法分析器冲突解决规则:1) 总是选择最长的前缀2) 如果最长的可能前缀与多个模式匹配,总是选择Lex中先被列出的模式。【实验步骤】1、实验环境配置安装Parse

2014-03-02 13:18:21 981

转载 SDL: Lex & Yacc

分享到一键分享QQ空间新浪微博百度云收藏人人网腾讯微博百度相册开心网腾讯朋友百度贴吧豆瓣网搜狐微博百度新首页QQ好友和讯微博更多...百度分享登录 | 注册收藏成功确定收藏失败,请重新收藏确定标题标题不能为空网址

2014-03-02 12:39:57 1300

转载 ser Generator使用说明

分享到一键分享QQ空间新浪微博百度云收藏人人网腾讯微博百度相册开心网腾讯朋友百度贴吧豆瓣网搜狐微博百度新首页QQ好友和讯微博更多...百度分享登录 | 注册收藏成功确定收藏失败,请重新收藏确定标题标题不能为空网址

2014-03-02 12:26:47 794

转载 Windows 7下配置Lex和Yacc

Blueve 湛蓝搜索主菜单跳至内容BlogShelf漫话人生动手动脑学习记录计算机心理学开发探索心情札记我听音乐随拍小记PlanAboutMeFeedMeChocolateContactMe搜索: 学习记录、计算机Windows 7下配置Lex和Yacc2013 年 03

2014-03-02 12:22:15 1351

原创 lex yaac

Lex自动地表示把输入串词法结构的正规式及相应的动作转换成一个宿主语言的程序,即词法分析程序,它有一个固定的名字yyler,在这里yyler是一个C语言的程序。Yylex将识别出输入串中的词形,并且在识别出某词形时完成指定的动作。看一个简单的例子:写一个lex源程序,将输入串中的小写字母转换成相应的大定字母。程序如下:%%[a-z]printf(“%c”.yytext[0]

2014-03-01 21:51:40 1191

原创 LEX YACC

二、语法分析程序自动产生器yacc的使用方法2.l yacc概述形式语言都有严格定义的语法结构,我们对它们进行处理时首先要分析其语法结构。yace是一个语法分析程序的自动产生器,严格地说Lex也是一个形式语言的语法分析程序的自动产生器。不过Lex所能处理的语言仅限于正规语言,而高级语言的词法结构恰好可用正规式表示,因此Lex只是一个词法分析程序的产生器。yace可以处理能用LALR(1)文

2014-03-01 21:49:07 486

原创 LEx YACC 3

在2.3.8中已涉及到二义性和冲突的问题,这里再集中介绍一下,这在写Yacc源程序时会经常碰到。二义性会带来冲突。在2.3.8中我们介绍了yacc可以用为算符确定优先级和结合规则解决由二义性造成的冲突,但是有一些由二义性造成的冲突不易通过优先级方法解决,如有名的例子:stat:IF bexp THEN stat|IF bexp THEN stat ELSEstat;对于这样

2014-03-01 21:47:02 606

原创 gmsh编译error C2440: “初始化”: 无法从“std::_Tree_iterator<_Mytree>”转换为“std::_Tree_iterator<_Mytree>”

错误 1 error C2440: “初始化”: 无法从“std::_Tree_iterator”转换为“std::_Tree_iterator” H:\program\gmsh\gmsh-2.8.4-source\Mesh\meshGFaceBDS.cpp 774 1 lib错误 2 error C2440: “初始化”: 无法从“std::_Tree_iterator”转换为“std::_

2014-03-01 20:28:49 3620

转载 Gmesh几何模块

介绍   Gmesh是一款开源的网格剖分软件包,除了网格剖分,还提供几何建模、求解、后处理几个模块。本文是翻译自Gmesh手册上的第5章,讲几何建模的。Gmesh中的几何建模模块具有简单的建模能力,在3D建模上,它只具有生成基本体素和扫描体的能力,不具备实体布尔运算的能力。因为Gmesh也是一个可执行的程序,所以,建模也是在用户界面上,以命令的方式进行的。下面是翻译。第5章 几何模

2014-02-17 21:03:54 2822

转载 Gmesh的网格剖分模块

第6章 网格剖分模块Gmsh的网格剖分模块集中了几种1维,2维,3维的网格剖分算法,他们都能产生适合于有限元的网格:2维的非结构化算法产生三角单元或者三角单元与四方形(当使用拼接曲面时)。3维的非结构化算法产生四面体单元。3维的结构化算法(超限或拉伸)默认产生三角单元,但是通过recombine命令,能得到四方形。3维结构化算法产生四面体,六面体,三菱柱、椎

2014-02-17 21:00:17 3128

转载 MSP430中,局部变量

全局变量是存在RAM中的,而局部变量是存在堆栈中的 全局变量是从低地址往高地址存,局部变量是从RAM的高地址往低地址存,如果你定义的变量太多就有可能是溢出了。在MSP430中,局部变量如果不多,就会分配r4-r15的寄存器,如果数量大就会用压栈处理。 全局变量是使用相同的内存块在整个类中存储一个值. 全局变量的存在主要有以下一些原因: 1,使用全局变量会占用更多的内存(因为其生命期长),不

2014-01-14 18:15:42 1453

原创 MSP430单片机全局变量与局部变量

全局变量是存在RAM中的,而局部变量是存在堆栈中的 全局变量是从低地址往高地址存,局部变量是从RAM的高地址往低地址存,如果你定义的变量太多就有可能是溢出了。在MSP430中,局部变量如果不多,就会分配r4-r15的寄存器,如果数量大就会用压栈处理。  全局变量是使用相同的内存块在整个类中存储一个值. 全局变量的存在主要有以下一些原因: 1,使用全局变量会占

2014-01-14 17:18:37 3810

原创 dummy

SPI的传输,读和写其实是同时进行的。在虚写的同时,要读的数据也就伴随着dummy字节被传了过来,所及产生了时钟,也就实际上把数据读了过来。但是对于SPI写,由于主端有自己的时钟,所以不需要进行虚读产生时钟。既然读和写是同时进行的,那么对于SPI,主端发送数据对从端进行写数据的话,实际上也有数据被读过来?????所以每完成一个字节传递后进行下一个字节传递之前都要清寄存器????单纯写时

2014-01-14 15:46:30 3925

原创 volatile

你是要说volatile一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值(From Memory),而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1) 并行设备的硬件寄存器(如:状态寄存器)2) 一个中断服务子程序中会访问

2014-01-13 22:20:06 332

原创 const和const volatile关键字

const和const volatile关键字const关键字关键字“const”,C语言中命名最差的关键字,并不表示恒量,而是代表“只读”。在嵌入式系统中,有很大的不同,这一会应会明白。Const声明可用于任何变量,它告诉编译器将其存贮在ROM代码。编译器保留了那个位置程序存贮器地址。由于位于ROM中,其值不能改变。由于它作为常量工作,必须赋一初值。如

2014-01-13 22:05:45 899

原创 Error[e16]: Segment CSTACK (size: 0x50 align: 0x1) is too long for segment

Copyright 1987-2008 IAR Systems. All rights reserved. Error[e16]: Segment CSTACK (size: 0x50 align: 0x1) is too long for segment definition. At least 0x3e more bytes needed. The pro××em occu

2014-01-13 22:03:52 3198 1

计算机视觉中的多视图几何英文版第二部分

计算机视觉中的多视图几何英文版第二部分,康桥大学出版社

2014-07-11

计算机视觉中的多视图几何英文版

计算机视觉中的多视图几何英文版第一部分,康桥大学出版社

2014-07-11

计算机视觉中的多视图几何(中文版)1

计算机视觉中的多视图几何是机器视觉人员必读的书籍,剑桥大学出版

2014-07-11

VTKMFC显示

关于mfc stl vtk 多视图显示 三视图显示三维物体的一些代码合集,整理后打包

2013-12-31

VTK_STL显示

VTK 读取STL并且显示出来,VTK是一个强大的显示数据开源工程,面向对象,非常好用

2013-12-31

空空如也

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

TA关注的人

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