自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我的博客

每天一小步

  • 博客(31)
  • 资源 (5)
  • 收藏
  • 关注

原创 对Linux多线程的理解

Linux多线程一、线程的特点1. 线程是进程的一个执行流,是CPU调度和分配的基本单位。线程是程序运行的最小单位。2. 线程不会影响到其它线程的运行。比如一个线程崩溃,其它线程正常运行。3. 同一进程内的线程共享进程的地址空间。二、一个线程的组成1. 一个指向当前被执行指令的指令指针2. 一个栈空间3. 一个寄存器值的集合4. 一个私有的数据区三、使用线程

2016-10-31 20:17:00 513

原创 Linux进程间通信 -- 信号量

Linux进程间通信 -- 信号量一、信号量的定义信号量是保护临界资源,解决进程间同步与互斥问题的一种通信机制。进程可以根据信号灯来判断是否能够访问共享资源,还可以用于进程同步。二、信号灯分类1. 二值信号灯信号灯的值只能取0或1。二值信号灯能够实现互斥锁的功能,上锁之后只能由进程自己来解锁。2. 计算信号灯信号灯的值可以取任意非负值。三、操作步骤创建信号量

2016-10-30 22:39:22 365

原创 Linux进程间通信 -- 共享内存

Linux进程间通信 -- 共享内存:同一块物理内存被映射到两个进程的地址空间,一个进程可以看到到另一个进程对共享内存的更新。一、特点1. 共享内存是进程间通信最快的IPC形式。2. 进程可以直接对共享内存进行读写,而不需要任何数据的复制。3. 共享内存中的数据是在解除映射之后才写回文件中的。二、操作步骤1. 创建共享内存2. 映射共享内存3. 使用共享内存4.

2016-10-29 20:35:03 430

原创 Linux进程间通信 -- 消息队列

一、消息队列1. 消息队列就是一个消息的链表。可以把消息看做一个记录,具有特定的格式以及特定的优先级。对消息队列有写权限的进程可以向中按照一定的规则添加新信息,对消息队列有读权限的进程可以从消息队列中读走消息,消息队列是随内核持续的。每个消息队列都有一个队列头,用结构struct msg_queue来描述。队列头中包含了该消息队列的大量信息,包括消息队列键值,用户ID,组ID,消息队列中消息数

2016-10-28 21:18:08 625

原创 Linux进程间通信 -- 信号

信号通信1、信号的产生:信号是进程间通信中最为长久的方式,很多条件可以产生信号,例如:① 当用户按某些按键时,产生信号② 硬件异常产生信号:除数为0、无效的存储访问等等。这些情况通常由硬件检测到,将其通知内核,然后内核产生适当的信号通知进程,例如,内核对正访问一个无效存储区的进程产生一个SIGSEGV信号③ 进程用kill函数将信号发送给另一个进程④ 用户可用kill命令将

2016-10-27 10:57:56 270

原创 PCB板布线中地线和电源线的布线规则

电源、 地线的布置考虑不周到而引起干扰,使产品的性能下降,严重时会降低产品的成功率。要把电源线和地线处理好,将电源线和地线所产生的噪音干扰降到最低限度,以保证产品的质量。一、电源线和地线的布线规则如下:1)芯片的电源引脚和地线引脚之间应进行去耦。去耦电容采用0.01uF的片式电容,应贴近芯片安装,使去耦电容的回路面积尽可能减小。。2)尽量加宽电源线、地线宽度,最好是地线比电源线宽。它们

2016-10-26 23:38:48 31330 1

原创 Linux进程间通信 -- 管道

本篇讲述Linux进程间通信 -- 管道其中管道又分为无名管道和有名管道。1> 管道的特点A. 管道是单向的,先进先出的。B. 一个进程在管道尾部写入数据,另一个进程在管道头部读取数据。因此管道通信是半双工的。C. 管道提供了简单的流控制机制,当进程试图读空管道时,进程将阻塞。当管道已经写满时,进程再试图向管道写入数据,进程将阻塞。2> 有名管道和无名管道的区别无名

2016-10-25 22:08:10 392

转载 USB协议架构及驱动架构

1. USB协议1.1 USB主机系统       在USB主机系统中,通过根集线器与外部USB从机设备相连的处理芯片,称为USB主机控制器。USB主机控制器包含硬件、软件和固件一部分。1.2 USB设备系统        USB设备按功能分为两部分:集线器(Hub)和功能部件。从下图可知,主机通过根集线器连接到各种外围设备(集线器和功能部件)。1.

2016-10-24 22:42:41 441

原创 基于文件流的文件操作

基于文件流的文件操作1、打开文件 -- fopen函数原型:FILE *fopen(const char *path, const char *mode);函数参数:path --打开文件的路径                    mode --打开文件的方式mode权限:r:打开只读文件,文件必须存在。r+:打开读写文件,文件必须存在。w:打开只写文件,文件不存

2016-10-23 20:18:04 435

原创 基于文件描述符的文件操作

基于文件操作符的文件操作1、文件创建 -- creat函数原型:int creat(const char *pathname, mode_t mode);函数参数:pathname --创建的文件名                  mode --创建的方式S_IRUSR:可读S_IWUSR:可写S_IXUSR:可执行S_IRWXU:可读可写可执行0755 --

2016-10-22 20:57:42 1245

原创 linux多个用户对于文件的操作

Linux多个用户对文件的操作时利用文件锁来操作的。文件锁是一种文件读写机制,在任何特定的时间只允许一个进程访问一个文件。利用这种机制能够使读写单个文件的过程变得更安全。以下是Linux系统中两种常用的文件锁: 1、 协同锁 协同锁要求参与操作的进程之间协同合作。假设进程“A”获得一个WRITE锁,并开始向文件中写入内容;此时,进程“B”并没有试图获取一个锁,它仍然可以打开文件

2016-10-21 20:29:50 2926

转载 PCB设计技巧一百问

1、如何选择PCB板材? 选择PCB板材必须在满足设计需求和可量产性及成本中间取得平衡点。设计需求包含电气和机构这两部分。通常在设计非常高速的PCB板子(大于GHz的频率)时这材质问题会比较重要。例如,现在常用的FR-4材质,在几个GHz的频率时的介质损(dielectric loss)会对信号衰减有很大的影响,可能就不合用。就电气而言,要注意介电常数(dielectric constan

2016-10-21 12:59:18 1981

转载 FAT32文件操作系统

FAT32文件系统  FAT32文件系统的存储机制及其在单片机上的实现 based on a SD card。FAT32文件系统您一定不会陌生,最多看到它是在windows操作系统里,但在一些嵌入式产品(如手机、MP3、MP4等)中,也能看到它的身影。从某种意义上来讲,FAT32文件系统是非常成功的,使我们可以脱离底层储存设备驱动,更为方便高效地组织数据。给单片机系统中的大容量存储

2016-10-20 21:33:11 6336

原创 热敏电阻的简单介绍

一、热敏电阻简介热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)。热敏电阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。二、热敏电阻的主要特点①灵敏度较高,其电阻温度系数要

2016-10-19 22:35:01 2151

原创 Linux中---exec族函数解析

(1)exec函数说明fork函数是用于创建一个子进程,该子进程几乎是父进程的副本,而有时我们希望子进程去执行另外的程序,exec函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新程序的内容替换了。另外,这里的可执行文件既可以是二进制文件,也可

2016-10-18 20:17:22 26865 2

原创 Linux守护进程的简单介绍

一、守护进程的定义在linux操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。实际上,守护进程就是一个后台程序,能够提供相应的服务,保证功能的实现。二、守护进程的生命周期守护进程脱离于终端并且在后台运行,并且它脱离终端的目的是为了避免进程在运行的过程中的信息在任何终端中显示,并且进程也不会被任何终

2016-10-17 22:04:37 749

转载 linux进程调度介绍

一、Linux新老版本调度器对比在 2.6 版本的内核之前,当很多任务都处于活动状态时,调度器有很明显的限制。这是由于调度器是使用一个复杂度为 O(n) 的算法实现的。在这种调度器中,调度任务所花费的时间是一个系统中任务个数的函数。换而言之,活动的任务越多,调度任务所花费的时间越长。在任务负载非常重时,处理器会因调度消耗掉大量的时间,用于任务本身的时间就非常少了。因此,这个算法缺乏可伸缩性

2016-10-16 21:25:46 428

原创 单链表实现冒泡排序算法

下面实现主要采用交换指针的方法,其中附加有单链表及其相关的实现[cpp] view plain copy#include     struct Node;    typedef struct Node *PtrToNode;  typedef PtrToNode List;  typedef PtrToNode Positio

2016-10-15 19:54:29 9632 3

转载 嵌入式系统编程C语言之软件架构

模块划分  模块划分的“划”是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念:  (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;  (2

2016-10-14 22:04:38 548

原创 make管理器---MAKEFILE

Make管理器make (make通过makefile来实现操作)1.原因: 当我们写许许多多.c文件的时候,编译起来会非常麻烦。虽然可以gcc *.c,编译所有的.c文件,但是不同目录下的.c文件还是不可以一起编译。所以要用make统一编译。2.特点: 能够自动编译 (1.按照Makefile的内容命令进行编译 2.自动判断时间戳,没有修改源文件就不会再重新编译)3. Mak

2016-10-13 19:51:17 331

原创 温湿度传感器---DHT11

一、DHT11简介DHT11是一款有已校准数字信号输出的温湿度传感器,传感器包括一个电阻式感湿元件和一个NTC测温元件。pin名称注释1VDD供电 3-5.5V DC2DATA串行数据,单总线3NC空脚,请悬空4GN

2016-10-12 21:42:12 10617 5

原创 实现strcmp函数功能--比较字符串

原型:extern int strcmp(const char s1,const char s2);用法:#include 功能:比较字符串s1和s2。一般形式:strcmp(字符串1,字符串2)说明:当s1 当s1 = s2时,返回值=0当s1 > s2时,返回值>0/*********************************File name :

2016-10-11 21:42:12 14007 2

原创 如何设置Vim的配置(详细)

我的vim配置主要有以下优点:1.按F5可以直接编译并执行C++、C++、java代码以及执行shell脚本,按“F8”可进行C、C++代码的调试。2.自动插入文件头 ,新建C、C++源文件时自动插入表头:包括文件名、作者、联系方式、建立时间等,读者可根据需求自行更改。3.映射“Ctrl + A”为全选并复制快捷键,方便复制代码。4.按“F2”可以直接消除代码中的空行。5.“F

2016-10-10 21:15:49 1420

原创 烟雾传感器MQ-2的应用

一、烟雾传感器MQ-2二、烟雾模块结构图三、烟雾模块原理图四、烟雾模块的特点1、具有信号输出指示。2、双路信号输出(模拟量输出及TTL电平输出)。3、TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机)                 4、模拟量输出0~5V电压,浓度越高电压越高。5、对液化气,天然气,城市煤气有较好

2016-10-09 20:58:20 68070 3

原创 光敏电阻的简单介绍

一、光敏电阻光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,表面还涂有防潮树脂,具有光电导效应。二、特性光敏电阻对光线十分敏感。光照愈强,阻值就愈低。随着光照强度的升高,电阻值迅速降低,可降低至1KΩ以下。三、工作原理光敏电阻的工作原理是基于内光电效应,即在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻。为了增加灵敏度,两电极常做

2016-10-08 21:20:06 24713 1

原创 对于0欧电阻的作用介绍

一、0欧电阻的定义零欧姆电阻又称为跨接电阻器,是一种特殊用途的电阻。0欧姆电阻的并非真正的阻值为零,欧姆电阻实际是电阻值很小的电阻。正因为有阻值,也就和常规贴片电阻一样有误差精度这个指标。电路板设计中两点不能用印刷电路连接,常在正面用跨线连接,这在普通板中经常看到,为了让自动贴片机和自动插件机正常工作,用零电阻代替跨线。二、0欧电阻的作用1. 在电路中没有任何功能,只是在PCB

2016-10-07 16:40:53 5743

原创 LCD12864串行和并行显示

一、LCD12864串行显示***********************************************************************/#include #include #define uchar unsigned char#define uint unsigned intsbit CS = P2^4;sbit SID = P2^5

2016-10-06 15:40:39 14525

原创 NRF24L01双向传输数据

NRF24L01双向传输数据1.两种数据双方向的通讯方式:如果想要数据在双方向上通讯,PRIM_RX 寄存器必须紧随芯片工作模式的变化而变化。处理器必须保证PTX 和PRX 端的同步性。在RX_FIFO 和TX_FIFO 寄存器中可能同时存有数据。2.当MCU控制NRF24L01发送数据时,NRF24L01就会启动发送数据,发送完后NRF24L01就会转到接收模式并等待终端的应答信号。如果

2016-10-05 22:14:39 9102

原创 NRF24L01的使用

1、NRF24L01 2.管脚功能 3、51单片机的I/O口输出为5V,而NRF24L01的电源输入为1.9—3.6V,如果直接接入单片机的电源会烧坏模块,因而要对单片机的电源接口进行压降,这里我选用3V降压。  4、要用NRF24L01进行通信首先知道它的发送和接收流程 发送流程: ① MCU通过SPI对NRF24L01进行基本配置,配置自动应

2016-10-04 22:49:19 26252 14

原创 51单片机的周期概念

一、时钟周期1.时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。2.在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250us。3.由于时钟脉冲是

2016-10-02 22:16:58 3206 1

原创 NRF24L01的配置详解

一、NRF24L01的模式二、NRF24L01的CONFIG配置三、NRF24L01状态寄存器配置可根据上述配置NRF24L01的设置,确定发送还是接收、通道地址、校验方法等等。

2016-10-01 21:36:21 13394 2

mkyaffs2image制作工具

2017-05-04

Linux Shell脚本攻略(第2版)

Linux Shell脚本攻略(第2版)

2017-04-19

mjpg-streamer-mini2440-bin-r6

mjpg-streamer-mini2440-bin-r6在mini2440开发板成功运行

2017-04-03

mini2440 supervivi-128M

这是针对于mini2440的supervivi-128M文件,亲测可用!已用JLink下载到Nor Flash中运行成功。

2017-04-03

蓝牙AT指令集

蓝牙AT指令集

2016-11-15

空空如也

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

TA关注的人

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