Weitere ähnliche Inhalte
Ähnlich wie Free rtos简介 (20)
Free rtos简介
- 2. What is FreeRTOS
• 多任务的嵌入式RTOS。
• 开源免费,可用于商业产品,无任何IP风险。
• 始于2003年。12年历史。
• 由Real Time Engineers ltd. 开发和维护。
• 占有率仅次于Android和Ubuntu。深度嵌入
式领域市场占有率最高的RTOS。
• 简单。核心只有3个c文件。
- 7. Feature : Tickless Idle Mode
• 一个常见的降低功耗的做法是使用Idle task。
• Idle task运行在最低执行权限,调用用户定义的hook函数,
可以使processor进入低功耗模式。
• FreeRTOS提供了Tickless Idle Mode停止tick中断,防止
processor不停的退出/进入低功耗模式。
• 退出Tickless Idle Mode时,仍能调整tick count value为正确
的值。
- 9. Feature :Binary Semaphores,mutex
• 二元信号量用于互斥和同步。
• 允许设定block time。
• Binary Semaphores + 优先级实现 = mutex
如果 task A试图获得一个mutex因而阻塞,此mutex当前的
持有者task B的优先级低于A,那么B的优先级被暂时提升到
与A相同。 此举是为了保证高优先级task被block的时间尽可
能短。
- 10. Feature: Software Timer
函数在指定时间之后运行。 FreeRTOS的timer实现:
• 可选的,不属于core kernel。
• 由一个timer service(或daemon) task实现。
• 许多api的实现是通过标准的queue向timer task发送命令。
• 不消耗processor时间,除非timer已到期。
• 不在tick interupt中增加任何负载。
• 支持one-shot和auto-reload两种timer。
- 13. Feature : 内存管理
• 多种内存管理策略
• 定制heap实现,同时使用2种堆实现
• MPU支持。 Cortex-M3 FreeRTOS-MPU port.
• 检测stack overflow
- 15. Feature : hook
• Idle Hook
• Tick Hook
• Malloc Failed Hook
• Stack Overflow Hook
Hinweis der Redaktion
- stack和RTOS objects放在快速内部ram,应用数据放在外部慢速ram.
保护kernel自己不被task破坏。 保护外部设备不被task无意的修改。 Stack overflow检测。
Stack overflow检测会增加上下文切换的负载,所以只用于开发和测试环境。
当task被换出processor的时候,stack中包含task的context。此时kernel检查stack pointer在valid space内。否则调用stack overflow hook。