FreeRTOS基本概念】的更多相关文章

1.在FreeRTOS中,使用的数据类型虽然都是标准C里面的数据类型,但是针对不同的处理器,对标准C的数据类型又进行了重新定义. 2.链表由节点组成,节点与节点之间首尾相连,节点包含用于指向后一个节点的指针.节点都是自定义类型的数据结构,可以使单个数据.数组.指针数据和自定义的结构体数据类型. 3.双向链表与单向量表的区别就是其节点中有两个指针,分别指向前后两个节点. 4.临界段是在执行时不能被中断的代码段.在FreeRTOS中,临界段最常出现的地方就是对全局变量的操作. 5.时间片:就是同一个…
目录 前言 概念 双堆栈指针 要点 Cortex-M3寄存器介绍 寄存器图 简要介绍 知识 出入栈 入栈(压栈) 出栈 重点知识 异常的响应序列* 入栈 取向量 更新寄存器 小结知识* FreeRTOS任务切换源码分析 话语 参考 前言 本笔记基于 stm32+FreeRTOS. 概念 双堆栈指针 Cortex-M3 和 M4内核具有双堆栈指针.MSP 和 PSP MSP:主堆栈指针 PSP:进程栈指针 要点 用户程序.中断和中断嵌套都是用 MSP. M3 内核所有寄存器压栈时有64B. M4…
目录 前言 10.1 消息队列概念 10.2 消息队列的数据传输机制 10.3 消息队列的阻塞访问机制 10.4 消息队列使用场景 10.5 消息队列控制块 10.5.1 队列控制块源码 10.5.2 队列控制块成员剖析 10.5.3 cRxLock 和 cTxLock 10.5.4 队列控制块数据结构图 10.6 创建消息队列 10.6.1 创建消息队列API说明 10.6.2 创建消息队列简要步骤 10.6.3 创建消息队列源码 10.6.4 消息队列数据结构图 10.7 发送消息 10.7…
目录 前言 12.1 实现事件机制的预备知识 12.1.1 守护任务 12.1.2 事件的不确定性 12.1.3 事件组的报文 12.2 事件概念 12.3 事件用途参考 12.4 事件实现原理简述 12.5 事件实现需要克服的问题 12.5.1 避免在用户的应用程序中创建竞争条件 12.5.2 避免不确定性 12.6 事件控制块 12.7 创建事件 12.8 事件置位 12.9 事件置位中断版 12.10 等待事件 12.11 清除事件 12.12 删除事件 前言 默认以32bit事件类型和任…
RTOS系统的核心就是任务管理: 任务的特性 在RTOS中每个任务都有自己的运行环境,不依赖于系统中其他的任务或者调度器,任何一个时间点只能有一个任务运行,具体运行哪个任务是由任务调度器来决定的,而任务调度器的职责就是确保当一个任务开始执行的时候其上下文环境,比如寄存器的值.堆栈中的内容等等,要和任务上次退出时相同,这样当任务再次执行的时候就可以从堆栈中取出上下文环境,任务恢复运行: 所以任务的特性总结如下: 简单且没有使用限制: 支持抢占.支持任务优先级: 每个任务都拥有独立的堆栈,从而导致R…
一.建立工程步骤如下: 二.详细步骤流程如下: 1.新建工程文件夹,然后在里面建立如下几个文件: 2.使用keil5建立工程: a.建立工程: b.添加内核文件: 3.建立文件分组: 4.创建main函数: 5.配置仿真时钟: 6.添加路径文件: 三.操作系统概念: 1.裸机系统,它分为轮询系统和前后台系统: a.轮询系统:它是在裸机编程的时候,先初始化好相关的硬件,然后让主程序在一个死循环里面不断循环,顺序的作各种事情 格式如下: void main(void) { init(); ) { t…
在FreeRTOS中,线程的术语又可以被称之为任务,或许这样更加合适,本文将介绍任务的创建/删除,任务参数的使用,以及任务优先级: 1 软实时和硬实时 硬实时系统的任务运行正确性与响应时限是紧密相关的,一旦超过时限将导致严重的后果,比如导弹控制系统.高铁自动驾驶系统等,都是需要严格的响应时限的. 软实时系统中,虽然也存在时限指标,但是如果输出响应超过时限,一般不会造成严重后果,比如Windows桌面任务,DVD播放机的视频播放. 大多数嵌入式系统不仅能满足硬实时要求,也能满足软实时要求. 软实时…
在FreeRTOS中和UIP中,都使用到了一种C语言实现的多任务计数,专业的定义叫做协程(coroutine),顾名思义,这是一种协作的例程, 跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧. 意思就是说协程不需要每次调用的时候都为任务准备一次空间,我们知道像ucos这种操作系统,它内置的多任务是需要在中断过程中切换堆栈的,开销较大,而协程的功能就是在尽量降低开销的情况下,实现能够保存函数上下文快速切换的办法,用操作系统的概念来说,一千个…
大多数主机或桌面系统(比如Linux,Mac或Windows)都有一个正常的用例,你可以在早上启动操作系统,然后在晚上关闭它,然后你就离开机器.嵌入式系统是不同的:他们没有参加,他们应该“永远”运行.并非每个嵌入式系统都需要运行操作系统(或者在那个世界中:实时操作系统或RTOS),但这同样适用于:在RTOS启动后,并不意味着它将关闭并重新启动.在某种程度上,他们根本不支持“关闭”和“重启”功能.如果收集覆盖率信息,这将非常有用: 来自FreeRTOS应用程序的覆盖信息 对于FreeRTOS:如果…
2012-02-25 21:43:40 为提升自己对实时操作系统(RTOS)的认识,我学习了freeRTOS. 理解了OS任务的状态.优先级的概念.信号量的概念.互斥的概念.队列.内存管理.这都是和RTOS相关的.在不带操作系统的代码中是找不到这些信息的.做了如下截图.作为提示性小结. 信号量截图 任务调度截图 任务状态截图…