- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 进程和线程的关系
1.含义进程:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动。进程是系统进行资源分配和调度的一个独立单位。线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的独立运行的基本单位,线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(程序计数器,寄存器,栈),但是它可以与同属一个进程的其他线程共享进程中拥有的全部资源。2.关系一个线程
2017-07-18 10:19:48 274
原创 哈佛结构和冯诺依曼结构的区别
哈佛结构:是一种将程序指令存储和数据储存分开的存储器结构。例如ARM中央处理器在程序指令存储器中读取程序指令内容,解码后得到数据地址,再去读取数据,再执行下一步操作,。与冯诺依曼结构相比较,特点是:1、使用两个独立的存储器模块,分别存储指令和数据,二者不并存。2、两条独立的总线,无关联。效率高冯诺依曼结构:将程序指令存储器和数据存储器合并在一起的设计结构。特点:必须有一个存
2017-07-12 15:27:55 1159
原创 常用函数整理
//判断两个字符串是否相同string_matched(action,"alarm");bool string_matched(const char *src,const char *dst) { if(!src || !dst) //有空指针 { return FALSE; } while(*src && *dst &&(*src == *dst)) { src
2017-07-06 14:16:25 232
原创 指向结构体的指针
//头文件#ifndef __KONE_BATTERY_H__#define __KONE_BATTERY_H__typedef struct{ char fault_status[256]; uint16_t operation_status; uint32_t power_on_time; uint32_t drop_out_time; uint32_t avai
2017-06-08 18:11:10 323
原创 linux 串口通信
串口的操作一般都通过四个步骤来完成:1、打开串口2、配置串口:对串口的波特率、数据位、停止位、校验码、等进行设置。3、读写串口4、关闭串口
2017-06-07 15:09:35 531
原创 Linux sysinfo函数、结构体使用
linux中,可以使用sysinfo来获取系统的相关信息。函数声明和原型:#includeint sysinfo(struct sysinfo *info);Linux2.3.23(i386),2.3.48(all architectures)struct sysinfo { long uptime; /* 启动到现在经过的时间
2017-05-26 20:19:42 1161
原创 memset函数
memset()函数原型:extern void *memset(void *buffer,int c,int count)buffer:指针或者数组c: 赋给buffer的值count:buffer长度这个函数在socket中多用于清空数组,如原型是memset (buffer,0,sizeof(buffer));另外可以用来对一段内存空间的设置为某个字符,一般用
2017-05-26 17:15:43 368
原创 Linux系统调用及用户编程接口(API) open close write read lseek
系统调用:操作系统提供给用户程序调用的一组“特殊接口,可以通过这组接口获得操作系统内核提供的服务。例如:创建进程、实现进程调度、进程管理,进程间通信,文件系统控制,系统控制,存储管理,网络管理,socket控制,用户管理等。用户程序接口(API):通过软中断机制向内核提交请求以获取内核服务的接口。API遵循POSIX标准。例如: getpid() ”
2017-05-24 20:35:15 2533
原创 tftp的使用
tftp --helpBusyBox v1.22.1 (2017-05-10 10:28:22 CST) multi-call binary.Usage: tftp [OPTIONS] HOST [PORT]Transfer a file from/to tftp server -l FILE Local FILE -r FI
2017-05-19 15:55:32 403
原创 结构体的定义和使用,以及typedef的使用。
结构体定义:只有结构体的定义struct stuff{ char job[20]; int age; float height; }; //直接带变量名Xiaomingstruct stuff{ char job[20]; int age; float
2017-05-18 14:41:04 432
原创 变长数组data[0]
一、变长数组data[0],在linux内核中,结构体中经常会用到,比如:struct buffer{ int data_len; //长度 char data[0]; //起始地址};这样可以使数组长度可变,根据需要进行分配,方便操作,节省空间。 1 #include 2 #include 3 #include 4 #include 5 6
2017-05-17 15:25:06 335
转载 exit与return区别
1.对于单独的进程,exit的返回值是返回给操作系统的,但如果是多进程,则返回给父进程。而return是退出当前函数并返回函数值,把控制权交给调用函数。2.exit表示一个进程的结束,而return表示调用堆栈的返回。3.一般在main()函数结尾时,会隐式调用exit,exit将删除进程中使用的内存空间,同时将错误信息返回给父进程。4. void exit(int status);
2017-05-17 13:52:35 336
转载 malloc和calloc的区别
函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别。malloc()函数有一个参数,即要分配的内存空间的大小:void *malloc(size_t size);calloc()函数有两个参数,分别为元素的数目和每个元素的大小,这两个参数的乘积就是要分配的内存空间的大小。void *calloc(size_t numEl
2017-05-17 10:55:51 299
转载 linux特殊符号说明及使用
#管理员 $普通用户脚本中#!/bin/bash #!/bin/sh井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行。# This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行了。这常用在撰写过程中。#ec
2017-05-15 15:18:28 315
原创 union和struct
共用体union与结构体struct的区别union:使不同类型变量共同占用同一段内存struct:把不同类型的数据组合成一个整体--自定义数据类型union abc{int i;char m;};1、在联合体中,i和m共用一个内存位置。2、当一个联合体被说明时,编译程序会产生一个变量,其长度为联合体中最大的变量长度。结构
2017-05-11 14:05:48 859
原创 linux学习笔记(2)
一、几种进程间通信方式管道(pipe): 管道是一种半双工的通信方式,数据只能单向传输,而且只能在具有亲缘关系的进程间使用,只要指的是父 子进程关系。有名管道(named pipe): 有名管道也是半双工通信方式,但其允许无亲缘关系进程间通信。信号量(semophore):信号量是一个计数器,可以用来控制多个进程对共享资源的访问,它通常作为一种锁机制,防止某进程正在访问共享资源时
2017-05-10 17:28:02 210
原创 linux学习笔记(1)
1.文件属性与权限 $ ls -l drwxr-xr-x 23 liyankun liyankun 4096 May 4 09:49 application 文件类型和权限 连接数 拥有者 所属用户组 文件大小 最后修改日期文件名文件类型和权限 -
2017-05-10 14:53:39 298
转载 普及tcpip
TCP/IP应该是个协议集,根据OS的七层理论,TCP/IP分为四层.分别是应用,传输,Interne和网络界面.我们一般说TCP在传输层,而IP在Internet层.TCP/IP的应用程序包括我们平时经常用到的Ping,Telnet,Ftp,Finger等等配置TCP/IP包括IP地址,子网掩码和缺省网关正确检测TC
2017-03-30 10:14:59 1036
原创 杨辉三角
#include#define SIZE 26int A[SIZE][SIZE];void f_Triangle(int P){ int result; int m,n; int i,j; scanf("%d %d",&m,&n); for(i=1;i<SIZE;i++) { A[i][1] = 1; A[i][i] = 1; } for(i=3;i<=
2017-02-11 17:09:04 220
原创 数组从小到大排列
#include#define SIZE 101int A[SIZE];int N;void f_recombine(int P){ int i,j,m; scanf("%d",&N); for(i=0;i<N;i++) { scanf("%d",&A[i]); } printf("#%d ",P); for(i=0;i< N-1;i++) for(j
2017-02-11 14:40:45 683
原创 源程序、目标程序、可执行程序之间的关系
1源程序:程序可以用高级语言或汇编语言编写,用高级语言或汇编语言编写的程序称为源程序。C语言源程序的扩展名为“.c”。源程序不能直接在计算机上执行,需要用“编译程序”将源程序编译为二进制形式的代码。2目标程序:源程序经过“编译程序”编译所得到的二进制代码称为目标程序。目标程序的扩展名为“.obj”。目标代码尽管已经是机器指令,但是还不能运行,因为目标程序还没有解决函数调
2015-10-16 13:37:01 19083
原创 C++ 字符数组和字符串
标准类型库下 #include下初始化string对象: string s5=“hello world”;//拷贝初始化 string s6("hello world");//直接初始化 string s7(6,‘c’);// 初始化内容为
2015-10-12 17:32:29 383
原创 C语言中的变量
从作用域来看:1.全局变量 具有全局作用域,其他不包含全局变量定义的源文件需要用extern关键字再次声明就可以使用。2.静态局部变量 具有局部作用域,一直到程序运行结束都存在,其与全局变量的区别是:全局变量对所有函数都可见,而静态局部变量只对定义自己的函数可见。3.局部变量 只有局部作用域,它在程序运行期间不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量被
2015-10-11 22:10:21 427
转载 POSIT算法
一、基本思想:算法分两部分(1)带有比例系数的正交投影变换SOP,根据线性方程组求出旋转矩阵和平移向量;(2)由得出的旋转矩阵和平移向量系数,更新比例系数,(scale factor),再由比例系数更新原有的点进行迭代。二、算法过程:(1)假设矩阵 和平移向量,f是焦距,在透视投影变换中,,而在SOP中,,其中比例因子是s=f/Z0。(2)作为基本的透视投影变换,将3D点透
2014-08-18 11:24:23 3859
转载 基于SIFT 关键点增强现实初始化算法(学习笔记)
SIFT特征描述算子 SIFT算子是一种能对图像旋转,尺度缩放,仿射变换,视角变化,光照变化等变化因素保持一定不变性,而对物体运动、遮挡、噪声等因素也保持较强可匹配的图像局部特征描述算子。SIFT算子在图像二维平面空间和DOG (Difference of Gaussian)多尺度空间中同时检测局部极值作为特征点,以使特征具备良好的独特性和稳定性。【1】极值搜索:一幅二维图
2014-08-07 12:15:05 616
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人