原文地址:
Pixhawk源码笔记二:APM线程
作者:
WalkAnt
Pixhawk源码笔记一:APM代码基本结构,参见:
http://blog.sina.com.cn/s/blog_402c071e0102v59r.html
这里,我们对 APM 线程进行讲解。如有问题,可以交流30175224@qq.com。新浪@WalkAnt,转载本博客文章,请注明出处,以便更大范围的交流,谢谢。
第三部分 APM线程
详细参考:http://dev.ardupilot.com/wiki/learning-ardupilot-threading/
对于APM1、APM2硬件板,不支持多线程,所以只能通过简单的定时器加回调函数来实现。类似PX4和Linux硬件板支持Posix标准的多线程。线程一般是指基于多任务操作系统的并行任务,我们首先要明白的几个概念如下:
1、 定时回调
2、 HAL专属线程
3、 驱动专属线程
4、 APM驱动与板级驱动
5、 板级专属线程、任务
6、 AP_Scheduler任务调度系统
7、 信号灯(任务队列互锁用)
8、 lockless data structures
如果你对操作系统运行机制比较了解,那就很好理解了。
1、定时回调The timer callbacks
&nbs