- 博客(38)
- 资源 (3)
- 收藏
- 关注
转载 大卸八块看真相 拆解5款行车记录仪
做工综合评价—— 相信大家看完了上文的单品拆解,脑子中应该已经产生了主观评价。但是这里要理智看待问题,因为本次对比不是要比出个谁最好谁最差,它们的产品定位和价格都是很有大差距的,如果用某几项标准来横评是不公平的。下面我们就来总结一下这些产品的差距。外部做工 外部做工主要看的是外壳手感和接缝等细节,整体评价5款不同价位的产品,不出意外,它们的做工质量也是与价格成
2014-08-06 14:07:48
1811
转载 产品经理们 什么叫工作到位?很深刻
1.汇报工作说结果不要告诉老板工作过程多艰辛,你多么不容易!老板不傻,否则做不到今天。举重若轻的人老板最喜欢,一定要把结果给老板,结果思维是第一思维。2.请示工作说方案不要让老板做问答题,而是要让老板做选择题。请示工作至少保证给老板两个方案,并表达自己的看法。3.总结工作说流程做工作总结要描述流程,不只是先后顺序逻辑清楚,还要找出流程中的关键点、失误点、反思
2014-08-04 18:29:03
513
原创 作为一个职场新人的感触
从七月四日入职以来已近一个月,从校园到社会,从学生到IT女,从北到南,种种的一切都有一个过渡的过程。自己边迷茫边摸索,希望 自己能够很好的融入到工作中去。第一次来珠海,珠海给人的印象是蓝天、白云、清新的空气以及炎热的天气。总体来说自己还是很喜欢这个城市。基本熟悉公司的流程之后,感觉公司的人比自己想象中的多好多,自己初来乍到一个也不认识,一个月下来也没跟几个人交流过,有一种被隔绝的感觉,没有归属
2014-08-01 20:16:29
775
原创 volatile和static
关键字volatile的含义:一个定义为volatile的变量是说这个变量可能会被意想不到地改变,这样,优化器每次用到这个变量的时候,必须重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:l 并行设备的硬件寄存器(如状态寄存器)l 一个中断服务子程序中访问到的非自动变量l 多线程应用中被几个任务共享的变量关键字Static的作用是什么
2013-08-20 20:37:08
850
原创 进程的一些理解
进程的堆栈:每个进程都有自己的堆栈,内核在创建一个新的进程是,在创建进程控制块task_struct的同时,也为进程创建自己的堆栈,一个进程有2个堆栈:用户堆栈、系统堆栈(内核堆栈)。用户堆栈和内核堆栈的切换:当进程由于中断或系统调用从用户态到内核态时,进程所用的栈也要从用户堆栈切换到内核堆栈。系统调用实质就是通过指令产生中断,成为软中断。进程因为中断(软中断或硬件产生中断)使得CPU切换到特
2013-08-20 20:36:15
430
原创 异步通知
1. 异步通知在设备驱动中使用异步通知可以使得对设备的访问可进行时,由驱动程序主动通知应用程序进行访问。这样,使用无阻塞I/O的应用程序无须轮询设备是否可访问,而阻塞访问也可以被类似“中断”的异步通知所取代。异步通知的意思:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上“中断”的概念,比较准确的称谓是“信号驱动的异步I/O”.信号是在
2013-08-20 20:35:18
601
原创 嵌入式根文件系统的一些理解
什么是文件系统?文件系统是对一个存储设备上的数据和元数据进行组织的机构,利于用户和操作系统的交互。什么是根文件系统?根文件系统首先是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,特殊之处在于,它是内核启动时所mount(挂载)的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后,从中把一些初始化脚本和服务加载到内存中去运行。
2013-08-20 20:34:44
863
原创 虚函数的一些认识
什么是虚指针?虚指针或虚函数是一个虚函数的实现细节。带有虚函数的类中的每一个对象都有一个虚指针指向该类的虚函数表。虚函数的入口地址和普通函数有什么不同?每个虚函数都在vtable中占了一个表项,保存着一条跳转到它的入口地址的指令(实际上就是保存了它的入口地址)。当一个包含虚函数的对象(注意,不是对象的指针)被创建的时候,它在头部附加一个指针,指向vtable中相应的位置。调用虚函数的时
2013-08-20 20:33:33
700
原创 时钟与中断
1. 所谓中断是指CPU在执行程序的过程中,出现了某些突发事件时CPU必须暂停执行当前的程序,转去处理突发事件,处理完毕后CPU又返回原程序被中断的位置并继续执行。根据中断的来源,中断可分为内部中断和外部中断,内部中断的中断源来自CPU内部(软件中断指令、溢出、除法错误等,例如,操作系统从用户态切换到内核态需借助CPU内部的软件中断),外部中断的中断源来自CPU外部,由外设提出请求。
2013-08-20 20:32:18
832
原创 嵌入式、Linux和UNIX的认识
嵌入式、Linux和UNIX的认识嵌入式系统的嵌入性的本质是将一个计算机嵌入到一个对象体系中去,实现对象体系的智能化控制。嵌入式技术趋势分析:更高主频、更低功耗、超大集成度、超小体积两大阵营:l 通用计算机系统的技术要求是高速、海量的数值计算;技术发展方向是总线速度的无限提升,存储容量的无限扩大。l 嵌入式计算机系统的技术要求则是对象的智能化控制能力;技术发展方向是与对象系
2013-08-20 20:29:05
1647
原创 poll和select
使用非阻塞I/O的应用程序也经常使用poll、select和epoll系统调用。Poll 、epoll和select功能本质上是一样的:都允许进程决定是否可以对一个或多个打开的文件做非阻塞的读取或写入。这些调用也会阻塞进程,直到给定的文件描述符集合中的任何一个可读取或写入。因此,常常用于那些要使用多个输入或输出流而又不会阻塞于其中任何一个流的应用程序中。所有三个系统调用都通过驱动程序的poll
2013-08-18 21:19:58
489
原创 Linux进程阻塞的相关知识
1.如果驱动程序无法立即满足要求,该如何响应?当数据不可用时,用户可能调用read;或者进程试图写入数据,但因为输出缓冲区已满,设备还未准备好接受数据。调用进程通常不会关心这类问题,程序员只会简单调用read和write,然后等待必要的工作结束后返回调用。因此,在这种情况下,我们的驱动程序应该(默认)阻塞该进程,将其置入休眠状态直到请求可继续。2.“休眠(sleep)”对进程来讲意味着什么
2013-08-18 20:26:24
1689
原创 并发和竞态
并发和竞态1. 并发及其管理竞态通常作为对资源的共享访问结果而产生。当两个执行线程需要访问相同的数据结构(或硬件资源)时,混合的可能性就永远存在。因此在设计自己的驱动程序时,第一个要记住的原则是,只要可能,就应该避免资源的共享。如果没有并发的访问,也就不会有竞态的产生。因此,仔细编写的内核代码应该具有最少的共享。这种思想的最明显应用就是避免使用全局变量。2.
2013-08-18 09:40:57
758
原创 虚函数和纯虚函数的作用与区别
虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原因:为了方便使用多态特性,我们常常需要在基类中定义虚函数。 class Cman { public: virtual void Eat(){……}; void Mo
2013-08-15 18:21:36
496
转载 C++中冒号和双冒号的用法
c++中冒号(:)和双冒号(::)的用法(摘自网络)这是C语言位域问题有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域
2013-08-15 17:28:50
793
转载 C++类模板与STL编程
C++类模板与STL编程1,学习目标1.理解类模板的概念;2.掌握类模板的定义、实例化过程,会运用类模板;3.掌握栈类模板、链表类模板的使用;4.理解STL编程的基本思想;5.掌握STL容器的使用;6.熟练使用STL算法;7.理解STL函数对象;类模板模板是C++语言的重要特征,它能够显著提高编程效率。利用C++的函数模板和类模板,能
2013-08-15 11:26:29
1254
原创 c和matlab混合编程
简要回顾一下MATLAB程序编译所经历的大致过程。通过分析MATLAB程序编译发展的历程可以更加明了为什么需要MATLAB编译器、在什么情况下选择MATLAB编译器、应当如何最大限度利用MATLAB编译器? MATLAB出现以后,以其特有的简单方便、功能强大很快拥有了众多的使用者,但是MATLAB也存在一些问题,比如循环执行速度慢、开发和发布应用软件不方便等。这时候
2013-08-14 21:08:45
831
原创 OpenCV和AIPCV库之间数据转换
使用OpenCV时需要了解的关键细节是图像数据结构是如何实现的。因此,要把OpenCV库和AIPCV连接起来的主要工作就在于提供一种在两种系统之间转换图像数据结构的方法。AIPCV库中的基本图像数据结构由两个数据结构组成:一个表示头信息,另一个表示图像。struct header { int nr, nc; /* Rows and columns i
2013-08-14 21:06:03
1801
原创 C/C++调用matlab程序
C/C++调用MATLAB程序可以通过多种方式:生成独立运行的MATLAB程序是使用MATLAB编译器编译m文件最常用的一种方式。通过将m文件编译为可独立运行的可执行文件,为用户提供了一种最简单的发布MATLAB程序的方法。Ø 将MATLAB m文件编译为可独立运行的可执行文件,通过修改接口文件的方式实现在C/C++程序中调用MATLAB文件。Ø 通过MATLAB引擎可以直接执
2013-08-14 21:02:42
1197
原创 C/C++一些易混淆的知识点
C/C++一些易混淆的知识点1. sizeof和strlen之间的区别:1) sizeof是运算符,strlen是函数2) sizeof可以用类型做参数,strlen只能用char*做参数,且必须是一“\0”结尾的。sizeof还可以用函数做参数,比如:short f(); sizeof(f());//即sizeof(short)
2013-08-14 21:01:43
737
原创 opencv的基本认识
Opencv 中 open为openSource,CV为computerVision计算机视觉 Opencv特征:1. 开源计算机视觉库采用C/C++编写2. 目的是开发实时应用程序3. 独立于操作系统、硬件和图形管理器4. 具有通用的图像、视频载入,保存和获取模块5. 具有底层和高层的应用开发包 Opencv目标:为
2013-08-11 15:16:11
831
原创 生活感悟二
1.像外行一样思考,像专家一样实践。研究和开发的有效方式就是要像一个没有专业背景的外行人一样去发挥自己的思考方式,想出点子、创意,然后像专家一样缜密地将其实现。一般来说越简单化、抽象化就会产生越绝妙、越鲜明的理论。但是这个简单化应该恰好与目的一致。能否将想到的问题简单化,是成功与失败的差别所在。成功的人会向简单的方向迈进,而失败的人只会担心“变得这么简单能行吗?”,却不肯迈出一步。2.
2013-08-10 19:33:47
490
原创 生活感悟一
1. 成功的人不是赢在起点,而是赢在转折点。2. 一个人在毕业5年培养起来的行为习惯,将决定他一生的高度。我们能否成功,在某种程度上取决于自己对自己的评价。3. 其实应该仔细掂量一下自己,你是否真是金子?是真金,手中要有绝活,才能上要有过人之处才行。一句话:真金是要靠实力来证明,只有先把自己的本领修炼好了,才有资格考虑伯乐的事。4.
2013-08-10 19:33:00
500
转载 99条为人处事经典法则剩下的一条由你自己来感悟
该如何与人为善1. 无论发生什么事情,都要首先想到自己是不是做错了。如果自己没错 (那是不可能的),那么就站在对方的角度,体验一下对方的感觉。 2. 让自己去适应环境,因为环境永远不会来适应你。即使这是一个非常非 常痛苦的过程。 3. 大方一点。不会大方就学大方一点。如果大方真的会让你很心疼,那就 装大方一点。 4. 低调一点,低调一点,再低调一点(要比临时工还要低调,
2013-08-10 17:35:46
1265
原创 模板与泛型编程
模板与泛型编程所谓泛型编程就是以独立于任何特定类型的方式编写代码。使用泛型程序时,我们需要提供具体程序实例所操作的类型或值。标准库的容器、迭代器、算法都是泛型编程的例子。在c++中,模板是泛型编程的基础。模板是创建类或函数的蓝图或公式。1. 函数模板函数模板是一个独立于类型的函数,可作为一种方式,产生函数的特定类型版本。eg:templatetypenameT>
2013-08-10 17:19:16
656
原创 容器和算法
容器和算法C++提供了使用抽象进行高效率编程的方式。标准库就是一个很好的例子:标准库定义了许多容器类以及一系列泛型算法,使程序员更加简洁高效的编写程序。算法库提供了各种各样经典算法的有效实现,像查找、排序及其他常见的算法任务。泛型算法中,所谓“泛型”指的是两方面:这些算法可作用于各种不同的容器类型,而这些容器又可以容纳多种不同类型的元素。1. 顺序容器类型顺
2013-08-10 16:41:34
582
转载 SIFT算法分析
SIFT算法分析(草稿)原文:http://blog.sina.com.cn/s/blog_916b71bb0100upwx.html特征提取在CV(computer vision)领域非常重要。SIFT是非常出名的特征提取算法,它来自论文IJCV'04的“Distinctive image features fromscale-invariant keypoints”,在schola
2013-08-10 16:27:12
579
转载 c语言嵌入式系统修炼之道
C语言嵌入式系统编程修炼之道——背景篇作者:宋宝华 e-mail:21cnbao@21cn.com不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言——一种“高级的低级”语言,则成为嵌入式系统开发的最佳选择。笔
2013-08-10 16:25:08
961
转载 c/c++程序员应聘常见问题深入剖析
C/C++程序员应聘常见面试题深入剖析(1)作者:宋宝华 e-mail:21cnbao@21cn.com 出处:软件报1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简
2013-08-10 16:21:16
786
转载 图像处理与计算机视觉经典论文
图像处理与计算机视觉经典论文目录(?)[+]Bilateral FilterColorCompression and EncodingContrast EnhancementDeblur RestorationDehazing and DefogDenoisingEdge DetectionGraph CutHough TransformImage Interpolatio
2013-08-08 14:52:09
1740
转载 机器视觉界的大师
机器视觉界的大师 Michael I. Jordan:统计学习方向的大大大大牛,曾经在MIT任教授10年,现在在加州大学伯克利分校任教授。他的学生几乎遍历美国CS方向的前20的所有高校。其中Andrew Ng是他的学生。Jordan的主页是:http://www.cs.berkeley.edu/~jordan/ Andrew Ng:斯坦福大学人工智能实验室的director,虽然现
2013-08-08 14:39:31
960
原创 Linux设备驱动程序(二)
第二章 构造和运行模块Hello World模块#include #include MODULE_LICENSE("Dual BSD/GPL")static int hello_init(void){ printk(KERN_ALERT "Hello,World\n"); return 0;}static void hello_exit
2013-08-08 14:37:07
568
转载 指针,引用,取值
指针、引用和取值什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量。在这份教程里“引用”表示计算机内存地址。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可以是void类型、NULL指针和未初始化指针。本文会对上述所有指针类型进行探讨。根据出现的位置不同,操作符 * 既可以用来声明一个指
2013-08-08 13:21:56
6497
转载 12个有趣的c语言问答
0,gets() 方法Q:以下代码有个被隐藏住的问题,你能找到它吗?A:这个不显眼的问题就是使用了 gets() 方法。此方法接受一个string类型参数,但是却没有检测此数值是否 有足够的空间来拷贝数据。所以这里我们一般用 fgets() 方法将来的更好。12345678910111213#i
2013-08-08 11:14:08
516
转载 学习c/c++的50个好网站
来自: 你不躲猫猫(why我所做的看起来像一个笑话) 2010-04-01 10:12:431、http://snippets.dzone.com/tag/c/ --数以千计的有用的C语言源代码片段2、http://www.hotscripts.com/category/c-cpp/scripts-programs/ Hotscripts --提供数以百计的C和C++脚
2013-08-08 10:18:55
819
原创 正能量
l 情绪和行为之间是相互影响的,正如正能量和负能量也会相互转化一样,举例来说,人微笑是因为快乐,同时也会因为微笑而变得更加快乐。l 如果你想拥有一种品质,那就表现的你像已经拥有了这个品质。l 表现出一种情绪,不仅仅能够影响我们的情绪,更能直接有力的影响我们的身体,催生不同的能量,而只有愉悦的,提振人心的情绪,才能激发正能量。l 人们不同的走路方式与情绪有着密切的关联:大踏步走的
2013-08-08 09:57:37
697
原创 linux设备驱动程序学习笔记(一)
第一章 设备驱动程序简介1.区分机制和策略是Unix设计背后隐含的最好思想之一。大多数编程问题实际上都可以分为两部分:“需要提供什么功能”(机制)和“如何使用这些功能”(策略)。如果这两个问题由程序的不同部分来处理,或者甚至由不同的程序来处理,则这个软件包更易开发,也更容易根据需要来调整。驱动程序同样存在机制和策略的分离问题。例如,软驱的驱动程序不带策略,它的作用是将磁盘表示为一个
2013-08-07 18:58:52
717
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人