APM.ardupilot 源码笔记2

来源:互联网 发布:亦强软件 酷骑 编辑:程序博客网 时间:2024/04/29 20:48

源码:Apm.ardupilot 各个版本

本例:以 3.1.0_rc1 为例分析

APM硬件: 版本2.0以上

By: devel

 


哎呀,一不小心忙的忘了写这个了。。。今天有空,赶快补上。。。。。。

1.源代码放置结构

图中显示了源代码的结构,我主要讨论的是图中箭头所指的ArduCopter和libraries.其中ArduCopter是旋翼飞行器的代码,libraries包含了所有需要的库函数头文件等。

打开libraries,可以看到好多的库文件:

而打开Arducopter文件夹,里面是旋翼飞行器的整个源代码:

 

要讨论的就是这两个文件夹,其余的暂且不管。

 

2.IDE的进击:

打开之前提到的软件也就是:打开后长成这个样子:

之前提到过,红色区域内的Ardupilot是其区别于一般Arduino IDE的标志。

为了之后的看代码和编译代码顺利进行,首先要配置一下编译器(其实也可以用其他的软件来看代码或者编译,如vs,但是需要安装一些插件,配置工作也会多一点,效果最终的确要好些,但是这个简单并且简洁,所以先用这个(-_-!)…)

接下来是IDE的设置,很简单,如下:

1)

菜单栏FileàPreferences:然后如下图:

(注意:改好地址后要重新启动IDE才可以改变)

按照图中步骤,终于是呼唤出来源代码。。。:

 

说到右上角的下拉切换tab,这个改过的Arduino IDE有一点小bug:它到不了底-_-(也就是说,最后几个tab看不到。。。),但是,alt+ctrl+ß或者alt+ctrl+à这两个快捷键可以左右切换tab,于是乎就解决了这个问题,如果用其他的IDE自然没有这个问题了。。。。

好了,一切就绪:可以分析代码了^_^!!!

3.攻坚战拉锯战的开始:源代码

左图是IDE中下拉后可以看到的tab,还有一些下拉不下去的是右边红线下面的那些文件(.pde/.c/.h类型的)。

作为一个标准的Arduino 编程环境些的程序最为显著的就是它的,那么它们在哪里。。。

就在ArduCopter这个tab里面;

(其实,整个源代码的英文注释已经够详细了,仔细去研究应该差不多,但是太多了!!!为了减少日后自己/别人再看时的负担,挑出一些自己研究的多一点的地方总结一下,能少一坑则少一坑!!!)

今天先简单的看下setup()和loop()的代码结构:

Setup()里面一堆的初始化函数,至于他们的作用,日后详细道来。

说起loop()里面的东西,话就多了。。先简单的提下:初看一下,loop()里面有个fast_loop(),在fast_loop()函数里面主要进行一些需要比较快的任务,但是,并不是只有一个fast_loop(),在setup()函数之前我们可以看到一张时间表

左边的红框框圈出来其他的一些xxx_loop();频率各不相同;整个看起来就是一个小操作系统了,其实代码真正有内涵的东西是他的那些,非常值得借鉴学习!!

0 0