ucos iii学习笔记——为什么选择ucos iii
2017-09-05 15:39
441 查看
首先我们得先讨论前后台系统和RTOS(Real Time OS)的区别。前后台系统,也即是我们所说的裸机程序,它的结构通常包括一个死循环和若干个中断服务程序,直接上图,我们有一个直观认识:
假如Task2是一个延时任务,当程序执行到Task2时,CPU只能干等,这样就浪费了CPU资源。进一步说,当在延时阶段,某种特发情况需要Task4响应,此时系统无法得到实时响应,只能一直按顺序执行下去,直到运行到Task4才能得到响应,可见前后台系统的实时响应性较差。
那么RTOS呢?我们先看图,了解它的运行机制
在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。
RTOS的内核负责管理所有的任务,内核决定了运行哪个任务,何时停止当前任务切换到其他任务,这个是内核的多任务管理能力。这就意味着,假设运行某任务里面的延时语句时,该任务就会被挂起,CPU根据内核机制运行另一个任务,这就充分利用了CPU资源。多任务管理给人的感觉就好像芯片有多个CPU,多任务管理实现了CPU资源的最大化利用,多任务管理有助于实现程序的模块化开发,能够实现复杂的实时应用。
说了这么多,那我们为何选择使用ucos iii这个实时操作系统呢?因为ucos iii是一个开源、可裁剪、绝大部分由C语言编写、可读性强!更重要的一点是网上有很多关于ucos iii/ucos ii的资源,不像其他操作系统相对较少的学习资源。作为嵌入式初学者,ucos iii是一个很好的入门学习对象!
假如Task2是一个延时任务,当程序执行到Task2时,CPU只能干等,这样就浪费了CPU资源。进一步说,当在延时阶段,某种特发情况需要Task4响应,此时系统无法得到实时响应,只能一直按顺序执行下去,直到运行到Task4才能得到响应,可见前后台系统的实时响应性较差。
那么RTOS呢?我们先看图,了解它的运行机制
在实时操作系统中,我们可以把要实现的功能划分为多个任务,每个任务负责实现其中的一部分,每个任务都是一个很简单的程序,通常是一个死循环。
RTOS的内核负责管理所有的任务,内核决定了运行哪个任务,何时停止当前任务切换到其他任务,这个是内核的多任务管理能力。这就意味着,假设运行某任务里面的延时语句时,该任务就会被挂起,CPU根据内核机制运行另一个任务,这就充分利用了CPU资源。多任务管理给人的感觉就好像芯片有多个CPU,多任务管理实现了CPU资源的最大化利用,多任务管理有助于实现程序的模块化开发,能够实现复杂的实时应用。
说了这么多,那我们为何选择使用ucos iii这个实时操作系统呢?因为ucos iii是一个开源、可裁剪、绝大部分由C语言编写、可读性强!更重要的一点是网上有很多关于ucos iii/ucos ii的资源,不像其他操作系统相对较少的学习资源。作为嵌入式初学者,ucos iii是一个很好的入门学习对象!
相关文章推荐
- ucos iii学习笔记——为什么选择ucos iii
- ucOS学习笔记(1)——为什么需要操作系统
- UCOS_III学习笔记(一)
- UCOS_III(原子战舰STM32)学习笔记二
- uCOSIII学习笔记之OSCtrSW( )
- 【linux c】嵌入式开发为什么选择c语言浅述_学习笔记_006
- uCos-iii 学习笔记开篇
- UCOS_III学习笔记(二)
- UCOS-III学习笔记(个人总结)
- uCOS-III学习笔记
- uCOSIII学习笔记之任务堆栈的初始化
- UCOS_III(原子战舰STM32)学习笔记一
- uCOS-III学习笔记
- Nginx学习笔记-为什么选择Nginx
- UCOS_III(原子战舰STM32)学习笔记三
- UCOSIII学习笔记之任务管理(一)
- 学习笔记:为什么10年前我学习的是ASP脚本而没有选择PHP程序语言?(图)
- GTK+图形化应用程序开发学习笔记(十六)—文件选择构件
- Node.js入门学习笔记-IDE选择/配置之WebStorm(windows)
- jQuery 学习笔记 选择元素