所有位置的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 I2Chttp://www.cnblogs.com/zwb800/p/5016835.html
ardupilot正逐渐替换make到waf编译工具
/Tools/ardupilotwaf/boards.py 板设置