PX4代码学习系列博客(2)——PX4与实时操作系统
来源:互联网 发布:淘宝760的lamy2000 编辑:程序博客网 时间:2024/06/05 18:53
px4飞控是基于nuttx实时操作系统的。
操作系统(OS)是什么?
具体的定义可以去看计算机专业的课本或者百度之,我这里讲我自己对操作系统的理解:
操作系统相当于在计算机硬件和人或者其它软件之间的一个翻译官,有了它,人和其他软件就不用“说”控制计算机硬件的“艰深”的“语言”。它展示给人的良好的图形界面,提供给其他软件的清晰的API。对于人或者其它软件下达的指令,它自己调度各种计算机硬件设备完成。这一方面方便了用户使用计算机,另一方面它提高了系统资源的使用效率。
操作系统应该具有的功能有:
任务调度:
windows系统可以同时运行多个程序,这是因为多个程序在轮流使用CPU,但是由于切换的速度很快,我们感觉多个程序是在同时运行的。任务调度其实是个程序,它决定哪个程序在什么时候使用CPU。
内存管理:
程序的运行需要内存,多个程序同时运行时内存怎么利用,各个程序利用的多少,利用的位置,利用完成后的释放等等,需要一个叫内存管理的程序来控制。
文件系统:
文件系统用来整理文件,就是windows的文件目录结构,当然不同系统略微有些差别。
驱动程序:
控制硬件设备的软件程序。
用户界面:
方便用户控制计算机。不是必须的。
实时操作系统(RTOS)是什么?
操作系统分为实时操作系统和非实时操作系统,我们常用的windows就是非实时操作系统。非实时操作系统的任务调度一般采用时间片转轮的方法,同时进行的几项任务轮流使用CPU,所以,非实时操作系统在有任务就绪之后不一定能马上执行,必须等待在它前面的任务挂起或者时间片结束后才能执行。这在一些实时性要求比较高的场合是不能使用的,比如飞控中控制电机的任务,如果它被其它任务堵塞了,那结果就是炸机。实时操作系统是利用中断的方法,当有高优先级的中断到来时,CPU马上移交给它使用。执行完成再返回刚才的任务。
常见的实时操作系统有:uCOS,VxWorks,RTLinux,Nuttx等。
Nuttx实时操作系统是什么?
Nuttx 是一个开源的实时嵌入式操作系统(Embedded RTOS),它很小巧,在8位到32位的微控制器环境中都可使用。px4飞控就是基于这个操作系统开发的。
官网的介绍文档(全英文):
http://www.nuttx.org/doku.php?id=documentation。
这个操作系统中文的资料比较少,可以看看csdn上zhumaill的博客
http://blog.csdn.net/zhumaill/article/details/24197637,有系列讲Nuttx操作系统的内容。
为什么要用Nuttx实时操作系统?
1.使用操作系统可以使应用程序代码结构结构清晰,编写难度降低。
2.提高代码的重用性,方便添加新功能和新设备。
3.飞行控制的实时要求。
4.Nuttx是比较小的实时操作系统,适合在微控制器中使用。
- PX4代码学习系列博客(2)——PX4与实时操作系统
- PX4代码学习系列博客(3)——px4固件目录结构和代码风格
- PX4代码学习系列博客(5)——在px4中添加自己的模块
- PX4代码学习系列博客(4)——uORB相关
- PX4代码学习系列博客(6)——offboard模式位置控制代码分析
- PX4代码学习系列博客(7)——lpe代码分析
- PX4代码学习系列博客(1)——开发环境配置
- px4原生源码学习-(2)--实时操作系统篇
- px4原生源码学习-(3)--Nuttx实时操作系统的使用
- px4原生源码学习-(4)--Nuttx 实时操作系统编程
- px4原生源码学习-(4)--Nuttx 实时操作系统编程
- px4原生源码学习二--实时操作系统篇
- px4原生源码学习三--Nuttx实时操作系统的使用
- px4原生源码学习四--Nuttx 实时操作系统编程
- PX4实时操作系统(nuttx)自学笔记
- px4学习
- px4::init_once();和px4::init(argc, argv, "px4");函数学习
- PX4源码学习二--PX4环境搭建
- 并查集
- springboot maven指定jar包的选择
- ubuntu17.04 使用 steam 玩游戏时字体无显示解决办法
- 图片间有空隙的解决方法
- HDU5806 NanoApe Loves Sequence Ⅱ【尺取法+乘法原理】
- PX4代码学习系列博客(2)——PX4与实时操作系统
- 逻辑运算符 或 与 非 位运算
- 滚动数组
- UVALive6336 HDU4450 Draw Something【水题】
- [MySQL] case问题
- 一点感悟
- linux 下查看共享内存的使用以及删除共享内存
- 移动端证件识别智能图文处理
- 【 数学基础】【素数线性筛法--欧拉筛法模板】【普通筛法的优化】