freertos
透查本质
在学习操作系统的时候,应该从本质出发。
疑问:
- 操作系统的出现时机(背景),解决的问题?
- 操作系统是如何保证安全的?
- 操作系统是如何管理硬件资源的?
- 操作系统是如何被推广的?
- 操作系统的兼容性,跨平台性怎么样?
- debug能力怎么样?
- 是否方便易用,是否容易上手?
回答:
- 资源受限设备的复杂性增加,仅仅靠while(1)无法软件解耦。有实时性的要求。
- 给cpu分为特权模式和用户模式,特权模式可以访问所有资源,用户模式只能访问部分资源。任务有自己的栈空间,任务切换时,保存和恢复上下文。
- 中断管理,cpu时间片管理,内存管理。
- 极小的占用,开源免费,标准接口。
- 支持多种架构的芯片,支持多种编译工具链。
- 自带一些调试工具,追踪功能,内存检测。
- 支持多任务,任务间通信,同步,互斥。
有啥说啥
这样设计有什么好处,为什么? 有没有必要这样设计? 有没有其他设计方案? 根据场景倒推设计思路。
常见名词
- MPU :Memory Protection Unit(内存保护单元)
- CRITICAL:临界
- SysTick:内置的系统定时器
- SVC:System Service Call系统调用(用于产生系统函数的调用请求)
- PendSV:Pend System Service Call 可悬起的系统调用(可以像普通的中断一样被抢占挂起的,具有缓期执行的特点)
- ISR:Interrupt Service Routine中断服务例程
- IRQ:Interrupt Request 中断请求
- idle task:空闲任务,操作系统在没有其他任务需要运行时执行的默认任务。
