自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 共享内存

共享内存是被多个进程共享的一部分物理内存.共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容. 共享内存实现分为两个步骤: 1、创建共享、打开共享内存,使用shmget函数 2、映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数 3. 分离共享内存 4. 控制、删除共享

2016-10-29 00:56:25 259

原创 消息队列2

消息队列就是一个消息的链表.可以把消息看作一个记录,具有特定的格式.进程可以向中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息。创建打开消息队列msgget()读数据从队列msgrcv()写数据到队列msgsnd()控制消息队列msgctl()目前主要有两种类型的消息队列:   POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用系统V消息

2016-10-28 16:20:02 284

原创 消息队列

消息队列就是一个消息的链表.可以把消息看作一个记录,具有特定的格式.进程可以向中按照一定的规则添加新消息;另一些进程则可以从消息队列中读走消息。创建打开消息队列msgget()读数据从队列msgrcv()写数据到队列msgsnd()控制消息队列msgctl()目前主要有两种类型的消息队列:   POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用系统V消息

2016-10-27 00:14:59 315

原创 共享内存实现

共享内存是被多个进程共享的一部分物理内存.共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容. 共享内存实现分为两个步骤: 1、创建共享、打开共享内存,使用shmget函数 2、映射共享内存,将这段创建的共享内存映射到具体的进程空间去,使用shmat函数 3. 分离共享内存 4. 控制、删除共享

2016-10-25 23:10:50 494

原创 管道2

1.数据传输    一个进程需要将它的数据发送给另一个进程2.资源共享    多个进程之间共享同样的资源3.通知事件    一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件4.进程控制    有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变管道是单向的、先进先出的,它

2016-10-24 22:22:00 315

转载 进程

创建打开消息队列msgget()读数据从队列msgrcv()写数据到队列msgsnd()控制消息队列msgctl()目前主要有两种类型的消息队列:   POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用系统V消息队列是随内核持续的,只有在内核重起或者人工删除时,该消息队列才会被删除#include    #include    key_t

2016-10-23 22:50:05 244

原创 管道

1.数据传输    一个进程需要将它的数据发送给另一个进程2.资源共享    多个进程之间共享同样的资源3.通知事件    一个进程需要向另一个或一组进程发送消息,通知它们发生了某种事件4.进程控制    有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有操作,并能够及时知道它的状态改变管道是单向的、先进先出的,它

2016-10-22 22:29:42 323

原创 堆和栈

堆和栈的通俗解释:我们先从大家比较熟悉的栈说起吧,它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开压在它上面的物体(放入的比较晚的物体)。而堆就不同了,堆是一种经过排序的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个

2016-10-21 21:46:55 232

原创 单片机科创

#include "main.h"//****************************************IO¶Ë¿Ú¶¨Òå***************************************sbit SCK    =P0^1;sbit CE    =P0^0;sbit MISO =P0^2;sbit CSN =P0^3;

2016-10-20 22:29:06 683

原创 nrf

#include #include  #define uchar unsigned char /***************************************************/#define TX_ADR_WIDTH   5  // 5字节宽度的发送/接收地址#define TX_PLOAD_WIDTH 4  // 数据通道有效数据宽度#de

2016-10-19 23:18:30 532

原创 读书笔记

第一章1.概述了µC/OS-II如何安装,目录的存放。2.µC/OS-II中的数据类型均为浮点型。3.OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL():关中断和开中断是为了保护临界段代码。这些代码与处理器有关。关于宏的定义可以在OS_CPU.H中找到。以及进入正确宏的代码。4.全局宏的定义方式:#ifdef   xxx_GLO

2016-10-18 20:46:51 229

原创 ds18b20

#include #include #include #include "./delay/delay.h"#include "./lcd/lcd.h"#include "./led/led.h"#include "./uart/uart.h"sbit ds = P2^0;sbit BEEP = P2^2;sbit LED = P2^3;bit

2016-10-17 20:39:57 453

原创 文件

1.creat 函数的作用: 创建一个文件; 函数的原型: int  creat(const char *pathname, mode_t mode); 文件头:  #include        #include        #include  返回值:成功:新的文件描述符;         出错:  -1              创建几个函数:file_

2016-10-16 19:19:29 290

转载 c++

#include   #include   #include   #include   #include   #include   usingnamespace std;  usingnamespace std::tr1;     #define PRINT_RES 

2016-10-16 00:31:46 309

转载 React Native

最近在学React Native,了解了一个原本iOS中非常重要的导航控件的使用方法。不过在React Nativa中,这个导航控件是不会自带顶部的导航栏的,也不会自动生成返回按钮之类的,只是提供了类似的导航功能,且原理也是出栈入栈的方式,也就是说同样是有着push和pop方法的。这里不讲React Native的基础了,直接讲一讲Navigator这个组件的基本使用方法。对于一个导航组件

2016-10-14 21:56:00 292

转载 java

一   java微信开发应具备的前提条件1  掌握xml解析工具Dom4j、Jdom中的任意一种微信所有的消息处理都是xml,因此xml的解析就显得尤为重要,这集中体现在文本消息、图文消息这两个部分2 掌握JSON开发工具类如json-libjson数据的处理在微信开发集中体现在自定义菜单接口、获取Access_Token、Oauth2.0网页授权等常用接口,此外第

2016-10-13 22:24:25 286

转载 整理框架

以下这些技巧分为三个不同那个的级别---基础,中级,高级。   基础   这些技巧你要总是想着实现在你开发的App中。   1. 用ARC去管理内存(Use ARC to Manage Memory)   2.适当的地方使用reuseIdentifier(Use a reuseIdentifier Where Appropriate)   3.尽可能设置视图为不

2016-10-12 23:11:15 616

转载 单片机spi总线

1、初步介绍         SPI 是一种高速的、全双工、同步通信总线,标准的 SPI 也仅仅使用 4 个引脚,常用于单片机和 EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。 SPI 通信原理比 I2C要简单,它主要是主从方式通信,这种模式通常只有一个主机和一个或者多个从机,标准的 SPI 是 4 根线,分别是 SSEL( 片选,也写作 SCS)、 SCLK( 时钟,也

2016-10-11 22:17:58 839

转载 c小知识

1.static关键字的作用和使用场景?    。static的作用——隐藏,变量所有未加static前缀的全局变量和函数都具有全局可见性,假设有两个文件,其中一个文件中定义全局变量a,int a = 10;如果在另一个文件中声明extern int a;则a = 10,在这个文件中可以对其进行使用。但是如果定义的全局变量前加上static,即就是:static int a = 10;

2016-10-10 21:56:39 209

转载 c++

一、rand()  函数名:   rand     功   能:   随机数发生器   用   法:   int rand(void);    所在头文件: stdlib.h  函数说明 :                rand()的内部实现是用线性同余法做的,它不是真的随机数,因其周期特别长,故在一定                的范围里可看成

2016-10-09 15:46:50 245

原创 单片机

单片机 一.绘图,画板 2G,3G,4G均指信道载波的频率。 手工PCB和工业PCB的区别1.多了一层铺油。2.多了一层丝印。 一面有,一面没有,叫作单层版。电阻:R开头电容:C开头 绘图软件1.民用:①protel,protel99se,protel DXP,Altium2.军用,公司用:①Cadende spd,Mento

2016-10-08 22:52:00 412

原创 单片机

104 为10*10的4次方= 10^5PF = 100NF 焊盘:内径30mil   外径60mil 两层板过孔一般是内径12mil 外径24mil ctrl+m是量距离英文状态下按q ,单位就转化了  每个器件都有一个中心点中心点作用之一:可以看两个器件之间的距离 Edit ->Set Reference->设置中心点 ①走线

2016-10-07 18:05:59 269

原创 字符串

二:获取字符串的两种方法。以及malloc,calloc,ralloc的使用注意点获取字符串两种方法1.char ptr[100];  1#include  2 #include  3 #define MAX_SIZE 1024  4 int main()  5 {  6     char *ptr=(char *)malloc(MAX_SIZE*sizeof(ch

2016-10-06 19:03:09 238

转载 golang

1.2与其他并发模型的对比 Python等解释性语言采用的是多进程并发模型,进程的上下文是最大的,所以切换耗费巨大,同时由于多进程通信只能用socket通讯,或者专门设置共享内存,给编程带来了极大的困扰与不便; C++等语言通常会采用多线程并发模型,相比进程,线程的上下文要小很多,而且多个线程之间本来就是共享内存的,所以编程相比要轻松很多。但是线程的启动和销毁,切换

2016-10-05 20:10:15 468

转载 算法

0. 学习模型评价标准    1)学习速度    2)推广能力/泛化能力/Generalize1. 反向传播算法计算全过程      目标:计算出权重和偏差的梯度(通过反向传播误差的方式)。      下例中,其激活函数为Sigmoid函数:     2. 随机梯度下降法计算全过程      目标:更新权重和偏差。     

2016-10-04 20:29:30 914

转载 c语言

1、分布式表示(distributed representations)的需要在Yoshua Bengio开始的讲座上,他说“这是我重点讲述的幻灯片”。下图就是这张幻灯片:假设你有一个分类器,需要分类人们是男性还是女性,佩戴眼镜还是不佩戴眼镜,高还是矮。如果采用非分布式表示,你就在处理2*2*2=8类人。为训练精准度高的分类器,你需要为这8类收集足够的训练数据。但是,如

2016-10-03 17:26:06 247

原创 c

2016-09-30 18:14:05 219

原创 单片机

2G,3G,4G均指信道载波的频率。 手工PCB和工业PCB的区别1.多了一层铺油。2.多了一层丝印。 一面有,一面没有,叫作单层版。电阻:R开头电容:C开头 绘图软件1.民用:①protel,protel99se,protel DXP,Altium2.军用,公司用:①Cadende spd,MentorGraphics 过孔(via

2016-09-28 22:21:12 344

原创 指针

一:野指针:char *ptr;定一个指针,没有赋值,用NULL。char *ptr = NULL 即表示指向空,不能再做赋值,不能对0地址操作访问。 //#define NULL (void *)o如果出现段错误,看看对NULL有没有赋值。 如何避免野指针而不是杜绝:1.如果没有对指针进行赋值,可把指针指向空,可避免野指针2.如果出现段错误,可查看有没有对

2016-09-27 23:56:39 206

转载 编译

首先我们先来说一下静态库的建立静态库的创建:创建规则:        gcc –c 源文件.c        ar rcs 静态库名 目标文件1 目标文件2        rc:静态库不存在,就创建该库文件        s:更新库文件首先我们先建立一个cla.c的文件,以下是代码。这个小程序是实现加减乘除运算的。int main(){int a,b; int sum;scanf("%d%

2016-09-26 22:16:10 182

原创 c语言

char *ptr;定一个指针,没有赋值,用NULL。char *ptr = NULL 即表示指向空,不能再做赋值,不能对0地址操作访问。 //#define NULL (void *)o如果出现段错误,看看对NULL有没有赋值。 如何避免野指针而不是杜绝:1.如果没有对指针进行赋值,可把指针指向空,可避免野指针2.如果出现段错误,可查看有没有对NULL进行赋值

2016-09-25 22:22:04 340

原创 c

1.提高代码的复用性。2.提高代码的维护性。3.迭代开发,可扩展开发。 ①函数名:(自助解释性,即可读性)举例:delete_ch_count_min最多不能超过5个动词+名词get_user,insert_user函数名也是一个指针常量,保存的是函数存放的地址(函数的入口地址) ②函数调用1.通过函数名找到函数的入口地址2.给形参分配内存空间3

2016-09-24 18:21:54 207

原创 c

①封装数据 name是数组名,stu.name是一个指针常量,不能赋值。 结构体变量.成员名(*p).成员名p->成员名这三个是等价的,通常为了清晰,都用最后一个。   1#include  2 struct student  3 {  4     int id;  5     char name[20];  6     int age;

2016-09-23 23:27:45 221

原创 c语言

左右法则:首先从从未定义的标识符开始阅读,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程直到整个声明解析完毕。举例:int a;整型变量      int *a;整型指针变量      int **a;整型指针的指针变量      int a[10];整型数组      int *a[10];整型指针数组

2016-09-22 23:13:30 226

原创 scanf,gets

1.scanf:一条语句可输入多个数据。默认以空格来跳到下一个输入变量,若完成了本次调用时用户本次规定的输入量,可以缓冲起来,继续输入下一次调用该函数时的数据,发出执行指令后做一起处理。该函数不接收空格,多个空格等同一个空格。可以在一次规定的变量之间加上其他的符号来自定义跳转指令。若完成了本次规定的输入量,回车表示执行本次要的操作;若未完成本次规定的输入量,则作用同于空格,是跳到下一个输入

2016-09-21 17:54:42 237

原创 封装以及注释

封装: 所谓封装,通俗地说,就是一个姑娘化了妆,只给你看她想让你看的那一面,至于里面是否刮了骨、垫了东西,不给你看。说到封装就得说隐藏,这是对兄弟概念;其实我理解隐藏是更深的封装,完全不给你看见,而封装可能是犹抱琵琶半遮面。封装在 C++ 语言中有 protected、 private关键字在语言层面上支持,而 C语言中没有这些。 C有结构体( struct),其实可以实现

2016-09-20 18:41:30 641

原创 指针

1.C语言具有出色的可移植性,能够在多种不同体系结构的软/硬件平台上运                    行。2.c语言有简洁紧凑,使用灵活的语法机制,可以直接访问硬件。3.c语言具有很高的运行效率。①移植性:从一个平台切换到另一个平台,修改的地方越少,移植性越好。②汇编与c语言差别:汇编可以直接访问硬件,c语言要编译过后,才能访问硬件。对硬件的初始化,通常用汇编。汇编语言是低

2016-09-18 22:04:01 226

原创 c指针

char *ptr;定一个指针,没有赋值,用NULL。char *ptr = NULL 即表示指向空,不能再做赋值,不能对0地址操作访问。 //#define NULL (void *)o如果出现段错误,看看对NULL有没有赋值。 如何避免野指针而不是杜绝:1.如果没有对指针进行赋值,可把指针指向空,可避免野指针2.如果出现段错误,可查看有没有对NULL进行赋值

2016-09-17 23:03:18 194

原创 c字符

&&:如果第一个不成立,后面不判断。||:如果第一个成立后面一个不判断。位与& 位或| 取反~ 位异或^ 左移> 常量都是有符号的unsigned int mask = 0x80000000;//掩码 与运算:1.清0特定位(mask中特定位置为0,其他位为1,s=s&mask)。2.取某数中指定位(mask中特定位置为1,其他位为0,s=s&mask)。 

2016-09-16 22:33:26 241

原创 c语言

1.如何把“123”输出123,“1234567”输出1234567. 提示:“123”   ’1’-’0’=1  ‘2’-’0’=2  1*100+2*10+3*1=123#include#include#define MAX_SIZE 1024int main(){       int result=0;    int i=0;    int len=0;

2016-09-15 22:25:02 489 1

空空如也

空空如也

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

TA关注的人

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