make编译
所有位置的Makefile 引用的都是/mk/apm.mk
target.mk 设置CONFIG_HAL_BOARD 例如linux就是HAL_BOARD_LINUX
environ.mk 设置HAL_BOARD_SUBTYPE 子类型 例如HAL_BOARD_SUBTYPE_LINUX_NAVIO
接着编译AP_HAL库 AP_HAL_Board.h会判断板子来配置cpu 存储 传感器
另外还有些驱动如uart 、spi定义在AP_HAL_Linux\HAL_Linux_Class.cpp
传感器库各基类的实现会判断传感器 例如AP_Baro.cpp (Compass命名不规范)
编译注意事项:
编译需GCC 4.8 升级教程 https://somewideopenspace.wordpress.com/2014/02/28/gcc-4-8-on-raspberry-pi-wheezy/
按上文改完后还要改arm-linux-gnueabihf-
启用 Raspbian上的SPI I2C http://www.cnblogs.com/zwb800/p/5016835.html
Waf编译
ardupilot正逐渐替换make到waf编译工具
/Tools/ardupilotwaf/boards.py 板设置