朱工的专栏

专注/深入/分享

排序:
默认
按更新时间
按访问量

FreeRTOS历史版本更新记录

前言:本文会不定期更新,一方面FreeRTOS发布新版本时会第一时间跟进;另一方面,会慢慢补上V8.0之后的版本更新内容。FreeRTOSV9.0.0与FreeRTOS V9.0.0rc2更新记录:        FreeRTOSV9.0.0发行于2016.05.25,推荐官方网站下载。考虑到官方...

2016-05-28 16:57:41

阅读数:13548

评论数:6

FreeRTOS系列第20篇---FreeRTOS信号量API函数

FreeRTOS的信号量包括二进制信号量、计数信号量、互斥信号量(以后简称互斥量)和递归互斥信号量(以后简称递归互斥量)。我们可以把互斥量和递归互斥量看成特殊的信号量。      信号量API函数实际上都是宏,它使用现有的队列机制。这些宏定义在semphr.h文件中。如果使用信号量或者互斥量,需要...

2016-03-18 10:07:40

阅读数:17050

评论数:12

FreeRTOS系列第19篇---FreeRTOS信号量

1.信号量简介      FreeRTOS的信号量包括二进制信号量、计数信号量、互斥信号量(以后简称互斥量)和递归互斥信号量(以后简称递归互斥量)。      我们可以把互斥量和递归互斥量看成特殊的信号量。互斥量和信号量在用法上不同:信号量用于同步,任务间或者任务和中断间同步;互斥量用于互锁,用于...

2016-03-09 15:21:36

阅读数:15808

评论数:4

FreeRTOS系列第18篇---FreeRTOS队列API函数

FreeRTOS为操作队列提供了非常丰富的API函数,包括队列的创建、删除,灵活的入队方式和出队、带中断保护的入队和出队等等。下面就来详细讲述这些API函数。1.获取队列入队信息数目1.1函数描述      UBaseType_t uxQueueMessagesWaiting( QueueHand...

2016-03-04 11:00:34

阅读数:19659

评论数:5

FreeRTOS系列第17篇---FreeRTOS队列

1.FreeRTOS队列      队列是主要的任务间通讯方式。可以在任务与任务间、中断和任务间传送信息。大多数情况下,队列用于具有线程保护的FIFO(先进先出)缓冲区:新数据放在队列的后面。当然,数据也可以放在队列的前面,在下一篇讲队列API函数时,会涉及到数据的存放位置。图1-1:读写队列  ...

2016-02-25 11:05:22

阅读数:13868

评论数:0

FreeRTOS系列第16篇---可视化追踪调试

使用RTOS编程,为每个任务分配多大的堆栈空间就成了一项技术活:分配多了浪费系统资源,分配少了又恐怕会发生堆栈溢出。由于中断和抢占式调度器的存在,我们要估算出一个任务需要多少堆栈是非常困难的,今天我们就介绍一种方法,来获取每个任务的剩余堆栈空间。本文以NXP LPC177x_8x系列微控制器为例。...

2016-02-22 16:25:50

阅读数:17111

评论数:2

FreeRTOS系列第15篇---使用任务通知实现命令行解释器

虽然这是介绍FreeRTOS系列的文章,但这篇文章偏重于命令行解释器的实现。这一方面是因为任务通知使用起来非常简单,另一方面也因为对于嵌入式程序来说,使用命令行解释器来辅助程序调试是非常有用的。程序调试是一门技术,基本上我们需要两种调试手段,一种是可以单步仿真的硬件调试器,另外一种是可以长期监视程...

2016-02-12 09:27:02

阅读数:11586

评论数:14

FreeRTOS系列第14篇---FreeRTOS任务通知

每个RTOS任务都有一个32位的通知值,任务创建时,这个值被初始化为0。RTOS任务通知相当于直接向任务发送一个事件,接收到通知的任务可以解除阻塞状态,前提是这个阻塞事件是因等待通知而引起的。发送通知的同时,也可以可选的改变接收任务的通知值。      可以通过下列方法向接收任务更新通知:不覆盖接...

2016-01-25 11:08:54

阅读数:21473

评论数:2

FreeRTOS系列第13篇---FreeRTOS内核控制

内核控制的一些功能需要移植层提供,为了方便移植,这些API函数用宏来实现,比如上下文切换、进入和退出临界区、禁止和使能可屏蔽中断。内核控制函数还包括启动和停止调度器、挂起和恢复调度器以及用于低功耗模式的调整系统节拍函数。1.强制上下文切换宏      taskYIELD:用于强制上下文切换的宏。在...

2016-01-21 10:00:44

阅读数:12631

评论数:1

FreeRTOS系列第12篇---FreeRTOS任务应用函数

任务应用函数是一组辅助类函数,一般用于调试信息输出、获取任务句柄、获取任务状态、操作任务标签值等等。1.获取任务系统状态1.1函数描述 UBaseType_t uxTaskGetSystemState( TaskStatus_t * c...

2016-01-11 17:15:59

阅读数:21777

评论数:6

FreeRTOS系列第11篇---FreeRTOS任务控制

FreeRTOS任务控制API函数主要实现任务延时、任务挂起、解除任务挂起、任务优先级获取和设置等功能。1.相对延时1.1函数描述      void vTaskDelay( portTickTypexTicksToDelay )      调用vTaskDelay()函数后,任务会进入阻塞状态,...

2016-01-04 10:53:42

阅读数:25207

评论数:4

FreeRTOS系列第10篇---FreeRTOS任务创建和删除

在FreeRTOS移植到Cortex-M3硬件平台的文章中,我们已经见过任务创建API,但那篇文章的重点在于如何移植FreeRTOS,本文将重点放在任务的创建和删除API函数上面。      任务创建和删除API函数位于文件task.c中,需要包含task.h头文件。1.任务创建1.1函数描述 ...

2015-12-21 14:43:04

阅读数:22981

评论数:14

FreeRTOS系列第9篇---FreeRTOS任务概述

1. 任务和协程(Co-routines)      应用程序可以使用任务也可以使用协程,或者两者混合使用,但是任务和协程使用不同的API函数,因此在任务和协程之间不能使用同一个队列或信号量传递数据。      通常情况下,协程仅用在资源非常少的微处理器中,特别是RAM非常稀缺的情况下。目前协程很...

2015-12-15 11:25:34

阅读数:17596

评论数:0

FreeRTOS系列第8篇---FreeRTOS内存管理

FreeRTOS提供了几个内存堆管理方案,有复杂的也有简单的。其中最简单的管理策略也能满足很多应用的要求,比如对安全要求高的应用,这些应用根本不允许动态内存分配的。      FreeRTOS也允许你自己实现内存堆管理,甚至允许你同时使用两种内存堆管理方案。同时实现两种内存堆允许任务堆栈和其它RT...

2015-12-10 13:41:24

阅读数:22582

评论数:2

FreeRTOS系列第7篇---Cortex-M内核使用FreeRTOS特别注意事项

在阅读本文之前,有两个定义在FreeRTOSConfig.h中的宏,你必须先明白它们是什么意思,《FreeRTOS内核配置说明》一文中,讲解了这两个宏: configKERNEL_INTERRUPT_PRIORITYconfigMAX_SYSCALL_INTERRUPT_PRIORITY  ...

2015-12-02 08:38:28

阅读数:18329

评论数:15

FreeRTOS系列第6篇---FreeRTOS内核配置说明

       FreeRTOS内核是高度可定制的,使用配置文件FreeRTOSConfig.h进行定制。每个FreeRTOS应用都必须包含这个头文件,用户根据实际应用来裁剪定制FreeRTOS内核。这个配置文件是针对用户程序的,而非内核,因此配置文件一般放在应用程序目录下,不要放在RTOS内核源码...

2015-12-01 21:14:21

阅读数:34514

评论数:21

FreeRTOS系列第5篇---FreeRTOS在Cortex-M3上的移植

1. FreeRTOS下载包的文件结构       在FreeRTOS官方网站可以下载到最新版的FreeRTOS包,我这里使用的是V8.2.3版本。       下载包内的总文件数量多的令人生畏,但文件结构却很简洁。《FreeRTOS入门指南》一文的第3节详细描述了下载包文件结构,我们这里只是简单...

2015-11-27 16:38:46

阅读数:30712

评论数:30

FreeRTOS系列第4篇---FreeRTOS编码标准及风格指南

1.编码标准       FreeRTOS的核心源代码遵从MISRA编码标准指南。这个标准篇幅稍长,你可以在MISRA官方网站花少量钱买到,这里不再复制任何标准。       FreeRTOS源代码不符合MISRA标准的项目如下所示: 有两个API函数有多个返回点。MISRA编码标准强制规定:...

2015-11-26 16:38:26

阅读数:19544

评论数:1

FreeRTOS系列第3篇---FreeRTOS移植指南

FreeRTOS下载包中已经包含很多演示例程- 每一个例程都是针对于: 特定的微控制器;特定的开发工具(编译器、调试器等等);特定的硬件平台(样机或评估板)。       可以在官方网站首页左侧的树形菜单 'Supported Devices' 中找到这些例程介绍。        可惜的是...

2015-11-21 08:51:29

阅读数:25397

评论数:5

FreeRTOS系列第2篇---FreeRTOS入门指南

FreeRTOS可以被移植到很多不同架构的处理器和编译器。每一个RTOS移植都附带一个已经配置好的演示例程,可以方便快速启动开发。更好的是,每个演示例程都附带一个说明网页,提供如何定位RTOS演示工程源代码、如何编译演示例程、如何配置硬件平台的全部信息。       演示例程说明网页还提供基本的R...

2015-11-13 16:06:02

阅读数:43115

评论数:5

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