首先对于pxhawk的伺服控制主要会包括下面这些文件:
启动文件:在init.d下面的rcS、rc.interface和下面的一些机型的配置文件,在mixers文件夹下的配置文件
C与c++代码文件:fmu.cpp、px4fmu_pwm_servo.c、drv_pwm_servo.c、pwm.c、mixer.cpp、以及在src/modules/systemlib下面的库文件夹mixer与pwm_limit下的文件
下图是代码的顺序图:
在上面的顺序图中有部分过程有所省略比如:图中的5是先调用了一个例如4011_dji_f450的机型文件设置了部分参数并又在4011_dji_f450中有调用了4001_quad_x,再有4001_quad_x调用mixer.cpp在其中加载了在mixers文件夹下的quad_x.main.mix,调用了fmu的ioctl接口。
还有在fmu中还有一些其他的订阅等,以及一些更详细的细节,这里只为简洁清晰表达伺服控制程序的处理的主要流程。