随笔分类 -  freeRTOS

摘要:1.前言 本章主要是为刚接触FreeRTOS 的用户指出那些新手通常容易遇到的问题。这里把最主要的篇幅放在栈溢出以及栈溢出侦测上 2.printf-stdarg.c 当调用标准C 库函数时,栈空间使用量可能会急剧上升,特别是IO 与字符串处理函数,比如sprintf()。在FreeRTOS 下载包中 阅读全文
posted @ 2017-12-01 14:34 jasonactions 阅读(1427) 评论(0) 推荐(0) 编辑
摘要:1.前言 不同的嵌入式系统具有不同的内存配置和时间要求。所以单一的内存分配算法只可能适合部分应用程序。 FreeRTOS 将内存分配作为可移植层面(相对于基本的内核代码部分而言)。这使得不同的应用程序可以提供适合自身的具体实现。 本章期望让读者了解以下事情: FreeRTOS 在什么时候分配内存。 阅读全文
posted @ 2017-12-01 11:54 jasonactions 阅读(2197) 评论(0) 推荐(0) 编辑
摘要:1.前言 访问一个被多任务共享,或是被任务与中断共享的资源时,需要采用”互斥”技术以保证数据在任何时候都保持一致性。这样做的目的是要确保任务从开始访问资源就具有排它性,直至这个资源又恢复到完整状态 FreeRTOS 提供了多种特性用以实现互斥,但是最好的互斥方法(如果可能的话,任何时候都当如此)还是 阅读全文
posted @ 2017-12-01 10:21 jasonactions 阅读(1536) 评论(0) 推荐(0) 编辑
摘要:1.前言 多任务系统中存在一种潜在的风险。当一个任务在使用某个资源的过程中,即还没有完全结束对资源的访问时,便被切出运行态,使得资源处于非一致,不完整的状态 2.并发抢占导致错误的场景 (1)访问外设 如两个任务并发访问LCD (2)读-改-写操作 ARM7下的赋值操作被编译成多条汇编语言 (3)变 阅读全文
posted @ 2017-12-01 09:06 jasonactions 阅读(628) 评论(0) 推荐(0) 编辑
摘要:1.前言 最新的 FreeRTOS 移植中允许中断嵌套。中断嵌套需要在 FreeRTOSConfig.h 中设置configKERNEL_INTERRUPT_PRIORITY 和configMAX_SYSCALL_INTERRUPT_PRIORITY 2.控制中断嵌套的常量 3.建立全面的中断嵌套模 阅读全文
posted @ 2017-12-01 07:21 jasonactions 阅读(3346) 评论(0) 推荐(0) 编辑
摘要:1.前言 消息队列不仅可以用于事件通信,还可以用来传递数据 2.实例说明消息队列的执行过程 3.主要API xQueue 目标队列的句柄。这个句柄即是调用 xQueueCreate()创建该队列时的返回值。 pvItemToQueue 发送数据的指针。其指向将要复制到目标队列中的数据单元。由于在创建 阅读全文
posted @ 2017-11-30 22:35 jasonactions 阅读(4291) 评论(0) 推荐(0) 编辑
摘要:1.前言 在中断不频繁的系统中,使用二值信号量没有问题,但是中断频繁发生时,则会有中断丢失的问题。 因为中断发生时延迟任务执行,延迟任务执行的过程中,如果又来了两次中断,则只会处理第一次,第二次将会丢失。 为此引入多值信号量来处理这个问题。 2.二值信号量和多值信号量的原理图 二值信号量的处理过程如 阅读全文
posted @ 2017-11-15 11:54 jasonactions 阅读(1348) 评论(0) 推荐(0) 编辑
摘要:1.前言 嵌入式实时操作系统需要对整个系统环境产生的事件作出响应。可以采用中断方式也可以采用轮询方式来进行处理。如果采用中断方式,则希望ISR(中断服务例程)的处理时间越短越好。 注:必须说明的是,只有以”FromISR”或”FROM_ISR”结束的API 函数或宏才可以在中断服务例程中。 2. 延 阅读全文
posted @ 2017-06-26 19:46 jasonactions 阅读(4430) 评论(0) 推荐(0) 编辑
摘要:1.前言 freeRTOS中所有任务的通信和同步机制都是基于队列来实现。 2.队列的特点 图 队列的读写操作 队列的数据存储 (1)队列可以保存有限个具有确定长度的数据单元,队列可以保存的最大单元数目称为队列的深度; (2)队列创建时需要设定队列深度和每个单元的大小; (3)队列先进先出 多任务存取 阅读全文
posted @ 2017-06-25 17:56 jasonactions 阅读(6182) 评论(0) 推荐(3) 编辑
摘要:1.前言 FreeRTOS是小型多任务嵌入式操作系统,硬实时性。本章主要讲述任务相关特性及调度相关的知识。 2. 任务的总体特点 任务的状态 (1)任务有两个状态,运行态和非运行态 (2)任务由非运行态转入运行态为切入,相反为切出 设置优先级 (1)最高优先级在FreeRTOSConfig.h 中 阅读全文
posted @ 2017-06-24 15:12 jasonactions 阅读(13875) 评论(3) 推荐(2) 编辑

点击右上角即可分享
微信分享提示