自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 Openparty 会议流程

1. office入口处一台笔记本,网页版的签到系统, 与会者输入邮箱地址签到。2. 主持人介绍会议规则和流程。提醒大家保持office的环境卫生。3. 与会者自愿进行自我介绍。4. 话题拉票。每个话题的演讲人有一分钟的时间进行拉票。统计支持者的人数,获得最高票数的演讲人获得赞助

2011-07-25 00:10:33 387

转载 tar用法

<br />tar是Linux环境下最常用的备份工具之一。tar(tap archive)原意为操作磁带文件,但基于Linux的文件操作机制,同样也可适用于普通的磁盘文件。tar可用于建立、还原、查看、管理文件,也可方便的追加新文件到备份文件中,或仅更新部分的备份文件,以及解压、删除指定的文件。熟悉其常用参数,能方便日常的系统管理工作。<br />一、版本<br />还是那句,不同的操作系统,tar的命令参数是有点区别的:<br />引用<br /># tar --version<br />tar (GNU

2010-10-11 23:31:00 487

转载 归并排序

<br /><br />说归并排序稳定是因为它是一种稳定的排序方法。(快速排序和堆排序都是不稳定的排序方法)<br />说归并排序内外兼修是因为它在内部排序和外部排序中都需要用到。<br />归并,英文是Merge。归并排序,是Merge Sort。<br />“归并”的含义是将两个或两个以上的有序表组合成一个新的有序表。<br />假设初始序列含有n个记录,则可看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到⌌n/2⌍个长度为2或1的有序子序列;再两两归并…如此重复,直至得到一个长度为n的

2010-10-06 00:46:00 419

转载 函数指针

<br /><br />(一)简单的函数指针的应用。<br />//形式1:返回类型(*函数名)(参数表)<br />char (*pFun)(int);<br />char glFun(int a){ return;}<br />void main()<br />{<br />pFun = glFun;<br />(*pFun)(2);<br />}<br />第一行定义了一个指针变量pFun。它是一个指向某种函数的指针,这种函数参数是一个int型,返回值是char类型。只有第一句我们还无法使用这个指针,

2010-09-08 21:52:00 321

转载 C/C++中的Static

<br /><br /><br />在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。<br />(1)先来介绍它的第一条也是最重要的一条:隐藏。<br />当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。<br />下面是a.c的内容<br />char a = 'A'; // global variable<br />void msg()<br />{<

2010-09-08 20:56:00 296

转载 C++ 虚函数表解析

<br />下面的文章讲解非常清晰,值得一看:<br /> <br />http://blog.csdn.net/haoel/archive/2007/12/18/1948051.aspx

2010-07-13 00:37:00 405

转载 公有继承 保护继承 私有继承

<br />1.   公有继承(public) <br />公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的。 <br /><br />2.   私有继承(private) <br />私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。 <br /><br />3.   保护继承(protected) <br />保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生

2010-07-11 23:19:00 4820 1

原创 TCP为什么采用随机初始序列号

<br />在TCP的三次握手中,后采用随机产生的初始化序列号进行请求,这样做主要是出于网络安全的因素着想。<br />如果不是随机产生初始序列号,黑客将会以很容易的方式获取到你与其他主机之间通信的初始化序列号,并且伪造序列号进行攻击,这已经成为一种很常见的网络攻击手段。

2010-06-30 01:07:00 5875

转载 GCC的四步剖析

<br /><br />GCC的命令剖析--四步走<br />从上面我们知道GCC编译源代码生成最终可执行的二进制程序,GCC后台隐含执行了四个阶段步骤。<br />GCC编译C源码有四个步骤:预处理-----> 编译 ----> 汇编 ----> 链接<br />现在我们就用GCC的命令选项来逐个剖析GCC过程。<br />1)预处理(Pre-processing)<br />在该阶段,编译器将C源代码中的包含的头文件如stdio.h编译进来,用户可以使用gcc的选项”-E”进行查看。<br />

2010-06-12 18:41:00 760

原创 shell中参数的模式匹配

<br /><br />模式匹配<br />参数扩展还包括了一些模式匹配功能,该功能带有在文件名扩展或 globbing 中使用的通配符功能。注意:这不是 grep 使用的正则表达式匹配。表 2. Shell 扩展模式匹配扩展目的${PARAMETER#WORD}shell 像文件名扩展中那样扩展 WORD,并从 PARAMETER 扩展后的值的开头删除最短的匹配模式(若存在匹配模式的话)。使用 ‘@’ 或 ‘$’ 即可删除列表中每个参数的模式。${PARAMETER##WORD}导致从开头删除最长的匹配模

2010-06-12 10:19:00 3534

原创 extern

<br />extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。<br /><br /> <br />问题:extern 函数<br />  常常见extern放在函数的前面成为函数声明的一部分,那么,C语言的关键字extern在函数的声明中起什么作用?<br />  答案与分析:<br />  如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有明显的区别:<br /

2010-06-10 17:26:00 392

原创 教育网使用http proxy下载android源代码

前两天按照书上的流程下载android源代码,下载repo之后,在执行下载时遇到如下错误: $ repo init -u git://android.git.kernel.org/platform/manifest.git Getting repo ...    from git://android.git.kernel.org/tools/repo.git and

2010-05-21 09:34:00 2233 3

原创 __init和__exit

在linux内核中,所有标识为__init的函数在连接的时候都存放在.init.text这个区段内,此外,所有的__init函数在区段.initcall.init中还保存了一份函数指针,在初始化时内核会通过这些函数指针调用这些__init函数,并在初始化完成后释放init区段(包括.init.text,.initcall.init等),这样可以将该函数占用的内存释放出来。 __exit

2010-05-11 21:35:00 653

转载 长连接与短连接

通常短连接是这样:连接->传输数据->关闭连接那什么是长连接?一般长连接相对短连接而言的,长连接在传输完数后不关闭连接,而不断的发送包保持连接等待处理下一个数据包。such as: 连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 那什么时候用短连接呢?一般长连接用于少数client-end  to server-end的频繁的通信,例如:数据库的连

2010-04-27 11:17:00 368

转载 tcp协议连接建立的三次握手和结束连接的四次握手

建立连接: 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态; 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),

2010-04-25 14:19:00 1544 1

转载 在驱动模块初始化函数中实现设备节点的自动创建

 作者:杨硕,华清远见嵌入式学院讲师。我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。 内核中定义了struct class结构体,顾名思义,一个struct class结

2010-04-20 11:12:00 276

转载 设置vim语法高亮显示和自动缩进

1、配置文件的位置    在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。 2、设置语法高亮显示1) 打开vimrc,添加以下语句来使得语法高亮显示:    syntax on2)

2010-04-17 16:23:00 265

转载 多线程编程实例---pthread_join函数详解

单处理器上的linux多线程,是通过分时操作完成的;此时互斥锁的作用,只有在时间足够的情况下才能体现出来,即有时线程内需要延时;否则只有第一个线程不断解锁和获锁,别的线程在第一个线程执行完前无法获得互斥锁。三 pthread_join pthread_exit  函数pthread_join用来等待一个线程的结束。函数原型为:  extern int pthread_join __P ((

2010-04-16 18:40:00 830

原创 NOR flash和NAND flash的区别

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->NOR型闪存更像内存,有独立的地址线和数据线,但价格比较贵,容量比较小而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所

2010-04-15 20:36:00 463

原创 P1300开发过程中遇到的问题

1.着手开发之前应将源代码的补丁打上,否则后面可能遇到一些问题,如GPRS通信的问题。若以后再打补丁之前开发过得可能丢失。2.在编写NRF程序之前应该先测试用到的GPIO都是可用的。否则后面出现问题不知如何下手。3.利用SourceInsight查看API接口的具体定义和实现。4.遇到问题先到光盘资料里查找,一般讲的更清楚一些。5.资料中给的程序可能不对,自己琢磨修改。6.学习

2010-04-13 21:14:00 497

原创 使用socket发送struct结构体内容

可使用如下方式发送struct结构体内容: struct carinfo{ char pno[16]; char type[8]; char name[16]; char address[64]; char model[32]; char use_character[16];}; 发送端: struct carinfo carinf_1={0};

2010-04-13 20:56:00 1475

原创 C语言中的字符串连接

在C语言中,字符串的链接可用strcat函数来实现:原型:extern char *strcat(char *dest,char *src);  用法:#include   功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的/0)并添加/0。  说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指

2010-04-12 23:25:00 995

原创 MTK系统中显示汉字的方法

 #include "Conversions.h"void drawChineseString(kal_uint8 *s){ kal_uint8 des[256] = {0}; kal_uint8 * src; kal_uint8 len; len = strlen((char*)s); MMI_ASSERT((s !=

2010-04-12 23:23:00 742

原创 *p++的运算顺序

在论坛上看到这样一道笔试题:以下程序输出结果是:   #include    int main() { int cnt = 10; char *p = "welcome"; while(*p++) { cnt++ } printf("%d/n", cnt); }   答案:17 我刚开始的理解是先进行++运算,然后取其值,得到结果是16.其实真正的运算顺序应该是:先取出p的值,

2010-04-08 22:23:00 2971 3

原创 MTK中GPIO的使用

一、GPIO有关的函数1. GPIO_ModeSetup:函数原型:void GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada)功能:设置GPIO的工作模式是作为GPIO,还是作为专有功能接口。参数:pin:GPIO 的pin脚号,对应于原理图上MTK62XX 主CPU芯片的上的GPIO标号。conf_dada:值有0~3。其中0是表示作为GP

2010-04-08 21:13:00 2105

转载 守护进程

      在linux或者unix操作系统中在系统的引导的时候会开启很多服务,这些服务就叫做守护进程。为了增加灵活性,root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。  守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。  守护进程,也就是通

2010-03-28 00:51:00 273

原创 shell脚本中的export

有下面一个脚本test.sh: #! /bin/bashTEST=aaaexport TEST 假如使用./test.sh来执行,然后echo $TEST,你会发现TEST环境变量并没有被加入进去。这是由于:当运行脚本时,相当于重新开启一个子进程, 子进程中设定的环境变量不会影响到父进程。解决的方法是用source或者.来执行文件。

2010-03-25 22:04:00 985

原创 解释与编译的区别

    解释执行的语言的与编译型语言的最大不同就在于运行速度和使用方便程度上.解释执行的语言如BASIC   、Perl   、TCL/TL   等       再如JavaScript是一种解释性编程语言,其源代码在发往客户端执行之前不需经过编译,而是将文本格式的字符代码发送给客户编由浏览器解释执行,不需要编译和连接。

2010-03-24 18:24:00 337

转载 创建于删除用户

LINUX创建用户的命令useradd -g test -d /home/test1 -s /etc/bash -m test1注解:-g 所属组 -d 家目录 -s 所用的SHELL 删除用户命令userdel username(不删除主目录)userdel -r username(删除主目录)创建密码命令passwd

2010-03-24 17:00:00 279

原创 内部命令与外部命令

今天用串口线操作开发板时,由于串口线的问题,输入的命令老有错误显示。再次开机时输入命令时有时提示命令找不到。cd命令可以,ls、vi等命令一律提示命令找不到。想不通是哪里错了,重新烧录内核还是有一样的问题。我便认为是文件系统什么地方出问题了,想要重新烧录文件系统。可是原来文件系统里的东西便都没了,谨慎起见先给师兄打电话问了一下。结果师兄一席话点醒梦中人。原来linux中的命令分为内部命令和

2010-03-24 16:24:00 602

原创 与师兄谈话总结

1.国企比私企要舒服,特别是银行,第二年起能到手10w以上。银行第一年工资不高,但这样可以申请两限房(要求年薪8w一下,待确认)。2.百度超累,加班是常态。3.面试时大约有50%的人穿正装,若有最好穿着,看着精神。4.做人要低调。5.老师人不错,有时喜欢吓唬吓唬人,也只是吓唬而已,要顶住压力。6.最好找linux开发方向的职位,现阶段多看一些linux开发书,驱动开发要看一下。

2010-03-23 22:29:00 500

转载 可重入函数与不可重入函数的区别

    可重入函数可以做这样的基本定义:重入意味着这个函数可以重复进入,可以被并行调用,可以被中断,它只使用自身栈上的数据变量,它不依赖于任务环境,在多任务调度过程中,它是安全的,不必担心数据出错。    不可重入函数基本上与可重入函数有相反的定义了:不可重入,意味着不可被并行调度,否则会产生不可预料的结果,这些函数提内一般使用了静态(static)的数据结构,使用

2010-03-23 19:11:00 890

原创 UTU2440开发板中tftp的使用

首先需要将PC端地址设置为192.168.1.200.将所要下载的映像放置在tftp安装目录下。实验板加电后按空格键进入bootloader。 下载内核:输入:run install-kernel 下载裸机程序:输入:tftp 30000000 YC2440_ADS_TEST.bin运行:go 30000000

2010-03-19 12:33:00 317

转载 写时复制(copy-on-write)

    传统的fork()系统调用直接把所有的资源复制给新创建的进程。这种实现过于简单并且效率低下,因为它拷贝的数据或许可以共享(This approach is significantly naïve and inefficient in that it copies much data that might otherwise be shared.)。更糟糕的是,如果新进程

2010-03-10 13:53:00 297

转载 多任务与多进程的选择

多线程与多进程1、多线程的优点  a 数据共享方便(不需要进程间的通信)  b 占用系统内存小  c 提高cpu利用率  2. 多进程的优点 a. 一个进程core掉不会影响到其他进程 b. 编程简单 3. 多线程的缺点 a  调试困难 b  防止读写竞争,锁机制 c 编程复杂   4. 多进程的缺点  a 耗资源

2010-03-10 13:47:00 403

空空如也

空空如也

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

TA关注的人

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