您的位置:首页 > 编程语言

PX4代码学习系列博客(2)——PX4与实时操作系统

2017-08-19 04:09 447 查看
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是比较小的实时操作系统,适合在微控制器中使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  操作系统 nuttx px4