自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hello World

zm小菜鸟

  • 博客(21)
  • 资源 (4)
  • 收藏
  • 关注

原创 Linux多线程编程(三)线程同步之互斥量

线程之间对资源的竞争:互斥量Mutex 信号灯Semaphore 条件变量Conditions 1. 互斥量Mutex线程在取出头节点前必须要等待互斥量,如果此时有其他线程已经获得该互斥量,那么该线程将会阻塞在这里.只有等到其他线程释放掉该互斥量后,该线程才有可能得到该互斥量。互斥量从本质上说就是一把锁, 提供对共享资源的保护访问

2016-09-30 23:28:32 346

原创 Linux多线程编程(二)线程同步之条件变量

Linux多线程编程(二)线程同步之条件变量 条件变量是利用线程间共享的全局变量同步的一种机制。操作:一个线程等待“条件变量的条件成立”而挂起,另一个线程使得“条件成立”(给出条件成立信号)。因为条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,所以条件变量总是互斥量同时使用。使用时,条件变量被用来阻塞一个进程,当条件不满足时,线程往往解开相应的互斥锁并等待

2016-09-29 21:05:55 317

原创 Linux 多线程编程(一)

Linux 多线程编程 线程(Thread)已被许多操作系统所支持,包括Windows/NT ,Linux以前的多线程其实是多进程,而现在意味着一个进程中有多个线程 使用多线程的原因(多线程的优点):1.“节省”,启动一个新的进程需要分配给它独立的地址空间,建立众多的数据表来维护他的代码段,堆栈段和数据段,这是一种“昂贵的多任务操作方式”。运行在一个进程中的多个线程,使用相

2016-09-28 21:53:54 1188 1

原创 SD + FAT文件系统学习

1.硬盘 硬盘排序结构:主引导记录(MBR)—引导扇区—数据—引导扇区—数据。 2.MBR MBR(Main Boot Record 主引导记录区)放置在硬盘物理地址0的地方。总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外64个字节交给了 DPT(Disk Partition Table硬盘分区表),最后两个字节“55,AA”是分区

2016-09-27 23:51:02 1611

转载 振南的znFAT FAT32文件系统

一、最最简单文件系统:缺点:1、查找文件效率低;   2、不可能为文件添加数据;   3、不能有效的利用空间;二、改进后的文件系统模型:优点:1、查找文件效率更高;    2、文件数据更改更为灵活;缺点:1、存储空间利用上貌似清晰,其实不合理;    三、越来越接近FAT的文件系统:

2016-09-26 22:24:18 4662

原创 SPI通信总线原理及工作过程

SPI, serial peripheral interface, 串行外围设备接口。高速的,全双工的,同步通信总线。有四个引脚:SDI(数据输入),SDO(数据输出),SCLK(时钟),CS(片选)。 应用:常作为单片机外设芯片串行扩展接口,主要应用于EEPROM,FLASH,实时时钟,AD转换器,数字信号处理器和数字信号解码器之间。 通信原理:以主从方式工作MOSI

2016-09-25 21:19:40 61295

原创 解读数据手册 以VS1003为例

阅读数据手册,写驱动代码 通过这些天对单片机项目的研究,我觉得阅读芯片手册确实是一项需要锻炼的能力,且不说阅读英文手册,从中文数据手册中找到自己所想要的点也不容易。 以最近研究的VS1003音频解码芯片为例,以下是我认为解读芯片手册所需基本流程。 作为软件,最关心的是各个引脚功能接下来要关心的是寄存器,MCU控制一些外围芯片,最最常见的方式就是通过通信接口(

2016-09-24 23:12:51 2257

原创 单片机软硬件复位

单片机软硬件复位 复位:把电路恢复到起始状态 复位电路启动的手段:一是在给电路通电时马上进行复位操作;二是在必要时可以由手动操作;三是根据程序或者电路运行的需要自动地进行。 单片机软复位有什么好的方法? 1.放狗;(watchingtimer看门狗防止程序发生死循环,或者说程序跑飞)        但不是所有的单片机都有看门狗的功能 2.

2016-09-23 22:56:56 4585

原创 单片机项目:驱动VS1003模块(二)

/******************************************************************向VS1003的功能寄存器写入数据 ******************************************************************/void VS_Write_Reg(unsigned char addr,uns

2016-09-22 22:45:26 871

转载 单片机项目:驱动VS1003模块

VS1003共有16个16位的寄存器,地址分别为0x0–0xF;除了模式寄存器(MODE,0x0)和状态寄存器(STATUS,0x1)在复位后的初值分别0x800和0x3C外,其余的寄存器在VS1003初始化后的值均为0。         初始化SPI所有对VS1003的操作将通过SPI总线来完成。在默认情况下,数据位将在SCLK的上升沿有效(被读入VS1003),因此需要在SCLK的下降沿更

2016-09-21 22:22:37 1423

原创 Linux基础学习(二)

第三章   Linux安装与多重启动技巧    硬盘,由最小的单位扇区组成,数个扇区组成一个磁柱,最后构成整个硬盘容量大小。   硬盘 —— 主引导扇区 包括 启动管理程序和硬盘分区表—— 实际数据文件  第四章   开机,关机,在线求助与指令输入指令输入格式: 显示日历的指令:cal计算器:bc  默认bc仅输出整数

2016-09-20 19:20:11 219

原创 嵌入式实时操作系统ucos/ii 原理与应用(七)

第八章 在51单片机上移植μC/OS-Ⅱ8.1 μC/OS-Ⅱ移植的一般性问题8.1.1 可重入函数能允许同时被多个任务所调用,而不会通过函数中变量的耦合引起任务之间的相互干扰的函数叫做可重入函数。一个可重入函数只使用局部变量,因为函数的局部变量存储在任务的堆栈中,所以可保证不同的任务在调用同一个函数时不会发生冲突。如果函数一定要使用全局变量,则需要对使用的全局变量

2016-09-19 22:14:07 897

原创 Linux基础学习(一)

第一章  Linux是什么与如何学习 1.1从Unix到Linux 1.2Linux到底是什么核心(Kernel)内核,是操作系统的最底层的东西,掌握硬件资源的工作状态。核心的基本功能:System call interface (系统调用接口)Process interface(过程控制)Memory management(内存管理)File system

2016-09-18 19:50:11 264

原创 嵌入式实时操作系统ucos/ii 原理与应用(六)

第七章 动态内存管理7.1 内存控制块    μC/OS-Ⅱ对内存进行两级管理,即把一个连续的内存空间分为若干各分区,每个分区分为若干个大小相等的内存块。操作系统以分区为单位来管理动态内存,而任务以内存块为单位来获取和释放动态内存。7.1.1 可动态分配内存划分1. 内存块   μC/OS-Ⅱ以内存块为单位向应用程序提供动态内存。内存块的大小由用户定制。

2016-09-17 22:04:34 791

转载 嵌入式实时操作系统ucos/ii 原理与应用(五)

第六章 信号量集6.1 信号量集的结构6.1.1 基本概念信号量集:信号量集实质上就是一个多输入、多输出的组合逻辑,输入为其他任务发出的多个信号,输出为这多个输入逻辑运算的结果。6.1.2 信号量集的结构    信号量集由一个标志组和多个等待任务控制块组成信号量集的功能:标志组、等待任务链表标志组:信号量集的所有信号

2016-09-16 22:06:14 655

原创 嵌入式实时操作系统ucos/ii 原理与应用(四)

第五章 任务的同步与通信一个完善的多任务操作系统,必须具有完备的同步和通信机制。5.1 任务的同步和事件5.1.1 任务间的同步    直接制约关系:源于任务之间的合作间接制约关系:源于对资源的共享多任务合作过程中,处理的问题:各任务间应该具有一种互斥关系,即对于某个共享资源,如果一个任务正在使用,则其他任务只能等待,等待该任务释放该资源后,

2016-09-14 23:18:31 2022

原创 操作系统

一、操作系统的定义和分类1.操作系统的基础知识计算机系统中的软件极为丰富,通常分为应用软件和系统软件两大类。应用软件是指计算机用户利用计算机的软件、硬件资源为某一专门的应用目的而开发的软件。例如,科学计算、工程设计、数据处理、事务处理和过程控制等方面的程序,以及文字处理软件、表格处理软件、辅助设计软件(CAD)和实时处理软件等。系统软件是计算机系统的一部分,由它支持应用软件的运行。

2016-09-13 23:11:29 510

转载 嵌入式实时操作系统ucos/ii 原理与应用(三)

三、uC/OS-II的中断和时钟3.1 uC/OS-II的中断3.1.1 uC/OS-II的中断过程uC/OS-II系统响应中断的过程是:系统接收到中断请求后,如果这是CPU处于中断允许状态(即中断时开放的),系统就会中止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统会根据情况返回到被中止的任务去继续运行,或者转

2016-09-12 22:39:58 2573

原创 单片机项目:基于51单片机的MP3播放器

项目题目:    基于51单片机的MP3播放器项目要求:   可以选用型号为VS1003的音频解码芯片,同时要配上SD卡或U盘接口,显示接口,控制接口,如果可以加上电池和充电模块最好。 项目设计:本设计以单片机为核心控制器,设计一个MP3音乐播放器,主要完成U盘存储的音频文件数据提取及播放任务。该播放器可识别,提取U盘所存储的文件并自行完成音频解码数据处理,最后通过耳机播放。通过自定义

2016-09-11 22:28:52 19182 2

原创 嵌入式实时操作系统ucos/ii 原理与应用(二)

第二章  Uc/OS-II中的任务 3.1任务的基本概念3.1.1从代码上看:Uc/OS-II中的任务就是一个函数从任务的存储结构上看:任务分成三个组成:                      任务程序代码(函数)                      任务堆栈 (保存任务的工作环境)                      任务控制块  (关联任务代码的

2016-09-10 23:14:26 3929

原创 嵌入式实时操作系统ucos/ii 原理与应用(一)

第一章          嵌入式实时操作系统的基本概念 大纲计算机操作系统的基本概念嵌入式操作系统的基本概念实时操作系统的基本概念 1.1计算机操作系统计算机,一种功能强大的数字运算装置,由中央处理器,存储器,接口及外部设备等构成。在计算机系统中,操作系统负责对计算机系统的几类主要资源,如处理器,存储器,输入输出设备,数据文档资源,用户作业等进行管理,并向计算机

2016-09-09 22:46:13 3195

C语言详解.mmap

C语言 要点汇总

2017-06-06

QT详解与实例

QT详解与实例

2017-04-25

ARM初识.mmap

ARM基础 S3C2451控制器简要介绍 启动代码分析

2017-04-23

C语言概述 思维导图

用思维导图清晰整理C语言概述 十分实用!!!

2017-04-10

空空如也

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

TA关注的人

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