Freertos是一个硬实时内核,支持众多的微处理器架构,我们能够从它的官网(www.freertos.ort)下载它的sourcecode,同一时候也能够看出它支持了几十种的微处理器架构,这些就不罗嗦了.之所以选择研究这个,是应为窥探RTOS内核的内幕一直每个做底层软件开发者的心愿,选择过好几种RTOS但他们有的是须要收费,有的不太成熟也不够系统,有的尽管比較成熟可是系统太大不太适合研究.而freertos就不同了,它除了包括RTOS所须要的主要的东西之外最大的特点就是开源+简单而且支…
内核控制的一些功能须要移植层提供,为了方便移植.这些API函数用宏来实现,比方上下文切换.进入和退出临界区.禁止和使能可屏蔽中断.内核控制函数还包含启动和停止调度器.挂起和恢复调度器以及用于低功耗模式的调整系统节拍函数. 1.强制上下文切换宏 taskYIELD:用于强制上下文切换的宏. 在中断服务程序中的等价版本号为portYIELD_FROM_ISR.这也是个宏,事实上现取决于移植层. 用于上下文切换的实际代码由移植层提供.对于Cortex-M3硬件.这个宏会引起PendSV中断. 2.进入…
在开始具体的学习之前,你应该先了解freeRTOS的编程标准.这能够方便你在接下来的阅读中快速的了解一些内容 的基本信息,并方便记忆.此外,良好的编程风格也是工作效率的保障. 你可以在https://www.freertos.org/FreeRTOS-Coding-Standard-and-Style-Guide.html中找到英文的原文信息. 尽管此前有人翻译过这份文档,但发布时间在很早以前,一些标准已经发生了改变.这里按照此前翻译的思路根据官方文档进行了更新和修订. 编程标准(Coding…
FreeRTOS系列第1篇---为什么选择FreeRTOS? 1.为什么学习RTOS? 作为基于ARM7.Cortex-M3硬件开发的嵌入式工程师,我一直反对使用RTOS.不仅因为不恰当的使用RTOS会给项目带来额外的稳定性风险,更重要的是我认为绝大多数基于ARM7.Cortex-M3硬件的项目,还没复杂到使用RTOS的地步,使用状态机就足够了. 对于现代的微处理器,特别是资源相对丰富ARM7.Cortex-M3硬件来说,RTOS占用的硬件资源已经越来越可以忽略.所以在当今环境下,我们无需担心R…
源:FreeRTOS 使用指南 繁星电子开发团队制作 作为一个轻量级的操作系统,FreeRTOS 提供的功能包括:任务管理.时间管理.信号量.消息队列.内存管理.记录功能等,可基本满足较小系统的需要.FreeRTOS 内核支持优先级调度算法,每个任务可根据重要程度的不同被赋予一定的优先级,CPU 总是让处于就绪态的.优先级最高的任务先运行.FreeRT0S 内核同时支持轮换调度算法,系统允许不同的任务使用相同的优先级,在没有更高优先级任务就绪的情况下,同一优先级的任务共享CPU 的使用时间. F…
源:FreeRTOS初步认识 用了半天时间对FreeRTOS有了一个初步的认识,大概总结一下,其中混杂了系统实现和实际应用方面的问题. 现只是以应用为目的,实现方面待以后进一步研究. 1.FreeRTOS提供的功能包括:任务管理.时间管理.信号量.消息队列.内存管理.与平台有关的文件包含在portable文件夹中,主要是port.c, portmacro.h两个文件.平台无关的文件主要是:list.c(基本链表结构), queue.c(包括消息队列,信号量的实现), croutine.c,tas…
Linux内核剖析 之 内核同步 主要内容 1.内核请求何时以交错(interleave)的方式执行以及交错程度如何. 2.内核所实现的基本同步机制. 3.通常情况下如何使用内核提供的同步机制. 内核如何为不同的请求服务 哪些服务? ====>>> 为了更好地理解内核是如何执行的,我们把内核看做必须满足两种请求的侍者:一种请求来自顾客,另一种请求来自数量有限的几个不同的老板.对于不同的请求,侍者采用如下的策略: 1.老板提出请求时,如果侍者空闲,则侍者开始为老板服务. 2.如果老板提出请…
FreeRTOS内核是高度可定制的,使用配置文件FreeRTOSConfig.h进行定制.每个FreeRTOS应用都必须包含这个头文件,用户根据实际应用来裁剪定制FreeRTOS内核.这个配置文件是针对用户程序的,而非内核,因此配置文件一般放在应用程序目录下,不要放在RTOS内核源码目录下. 在下载的FreeRTOS文件包中,每个演示例程都有一个FreeRTOSConfig.h文件.有些例程的配置文件是比较旧的版本,可能不会包含所有有效选项.如果没有在配置文件中指定某个选项,那么RTOS内核会使…
一个操作系统如果只是具备了高优先级任务能够“立即”获得处理器并得到执行的特点,那么它仍然不算是实时操作系统.因为这个查找最高优先级线程的过程决定了调度时间是否具有确定性,例如一个包含n个就绪任务的系统中,如果仅仅从头找到尾,那么这个时间将直接和n相关,而下一个就绪线程抉择时间的长短将会极大的影响系统的实时性.当所有就绪线程都链接在它们对应的优先级队列中时,抉择过程就将演变为在优先级数组中寻找具有最高优先级线程的非空链表. RT-Thread内核中采用了基于位图(bitmap)的优先级算法(时间复…
本篇博客就来细数这几个RTOS的特点.   以下内容均来自官方网站或者官方手册Feature的Google翻译的加了我的一些调整,没有任何主观成分. 1. FreeRTOS   FreeRTOS是专为小型嵌入式系统设计的可扩展的实时内核. 亮点包括: 微小的封装形式. 免费的RTOS调度程序 免费嵌入式软件源代码. 免版税. 抢占式,协作式和混合配置选项,可选时间分片. SafeRTOS衍生产品对代码完整性提供了高度的信心. 包括一个为低功耗应用设计的tickless模式. 可以使用动态或静态分…