本章节为大家讲解 FreeRTOS 动态内存管理,动态内存管理是 FreeRTOS 非常重要的一项功能,前面章节讲解的任务创建、 信号量、 消息队列、 事件标志组、 互斥信号量、 软件定时器组等需要的 RAM 空间都是通过动态内存管理从 FreeRTOSConfig.h 文件定义的 heap 空间中 ...
分类:
其他好文 时间:
2017-07-23 10:09:16
阅读次数:
997
本章节讲解 FreeRTOS 任务间的同步和资源共享机制,二值信号量。 二值信号量是计数信号量的一种特殊形式,即共享资源为 1 的情况。 FreeRTOS 分别提供了二值信号量和计数信号量,其中二值信号量可以理解成计数信号量的一种特殊形式,即初始化为仅有一个资源可以使用,只不过 FreeRTOS 对 ...
分类:
其他好文 时间:
2017-07-21 10:27:50
阅读次数:
191
较为复杂的生产者-消费者问题: 问题描述 桌子上有一只盘子,每次只能向其中放入一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,儿子专等吃盘子中的橘子,女儿专等吃盘子中的苹果。只有盘子为空时,爸爸或妈妈就可向盘子中放一个水果;仅当盘子中有自己需要的水果时,儿子或女儿可以从盘子中取出。 问题分析 ...
分类:
移动开发 时间:
2017-07-02 13:44:57
阅读次数:
323
1.适用范围本文档可作为Linux驱动源码或库源码快速移植至SylixOS的参考。2.互斥信号量2.1概念简介互斥信号量(Linux中亦称为互斥锁)是因为多线程对临界区访问而存在的。只有拥有互斥对象的线程才具有访问资源的权限,当前占据资源的线程在任务处理完后应将拥有的互斥对象交出..
分类:
系统相关 时间:
2017-05-15 14:20:20
阅读次数:
240
今天整理“信号量”的相关知识,其实想想也蛮有趣的,锁,互斥,信号量都可以实现线程同步,在framework里面主要有三种。 <1>:ManualResetEvent <2>:AutoResetEvent <3>: Semaphore 好,下面就具体看看这些玩意的使用。 一:ManualResetEv ...
分类:
编程语言 时间:
2017-05-12 17:33:55
阅读次数:
247
哲学家就餐问题之解 1. 引言 问题描述: 5个哲学家围坐在一个圆桌上,每两个哲学家之间都有一只筷子,哲学家平时进行思考,只有当他们饥饿时,才拿起筷子吃饭。规定每个哲学家只能先取其左边筷子,然后取其右边筷子,然后才可以吃饭。 2. 求解方法 信号量设置。定义互斥信号量数组chopstick[5] = ...
分类:
其他好文 时间:
2017-04-07 10:12:56
阅读次数:
215
在操作系统中进程之间经常会存在互斥和同步两种关系。为了有效处理这种情况,W.Dijskra在1965年提出信号量和PV操作的概念(1)信号量:一种特殊的变量,表现形式是一个整型S和一个队列(2)P操作:也成为“down()和wait()操作”,使S=S-1,若S<0,进程暂停执行并放入信号量的等待队 ...
分类:
其他好文 时间:
2017-01-11 07:50:43
阅读次数:
272
郑重声明,版权所有! 转载需说明。 FREERTOS堆栈大小的单位是word,不是byte. 根据处理器架构优化系统的任务优先级不能超过32,If the architecture optimized method is used then configMAX_PRIORITIES cannot b ...
分类:
其他好文 时间:
2017-01-06 21:53:40
阅读次数:
974
当出现竞态条件时候,即在同一个时刻只有一个线程可以进入临界区,需要使用同步。 常见的同步原语有两种:锁/互斥,信号量。 锁是最简单,最低级的机制。 首先看一个不使用锁时候的多线程示例: 输出结果1: Thread-1 starting at Tue Dec 20 23:12:03 2016Threa ...
分类:
编程语言 时间:
2016-12-21 02:01:11
阅读次数:
280