介绍
一个完整的px4的应用程序(或者叫任务)分为前台部分和后台部分,前台部分是跑在shell任务中的,比如helloworld那个程序就只有前台部分,敲入指令即可在ssh中运行,前台部分一般是用来测试或者启动后台任务。
px4的后台任务主要油两种,一种叫任务(Tasks),一种叫工作队列(Work queue tasks)。两者的主要区别是任务拥有独立的栈空间和进程优先级,而工作队列是跑在一个统一的进程里的多个线程,共享优先级、栈空间。
优缺点对比
任务:优点是可以保证优先级的切换;可以进行阻塞操作;
工作队列:优点是消耗更少的RAM和cpu(因为避免了任务切换);时基实时性好,支持定时任务,适合周期性的传感器数据读取;
时基实时性,比如一个任务需要在t1,t2,t3,t4时刻进行操作,有的任务希望保证t2-t1,t3-t2,t4-t3这种相对时间间隔的准确性,这种场景任务更适合;而有的任务希望保证t2-t1,t3-t1,t4-t1这种相对于初始时刻的绝对时间的准确性,这种场景下工作队列更适合。
任务(Tasks)
任务的特点:
- 拥有独立的栈空间;
- 低优先级的任务会