cleanflight 基于baseflight, 是支持多悬翼和固定翼飞控程序
MultiWii 的代码违反很多软件工程原则,baseflight 也是,而cleanfligh 力图改善软件质量,提高可维护性。包括
1)通过完善的测试实现更可靠的code,
2)更好的可维护性
3)更容易加入新特性
4)软件模块化更好,更易复用
cleanflight 支持Naze, CC3D 等,下面介绍 Ubuntu下如何编译
详细见:https://github.com/cleanflight/cleanflight/blob/master/docs/development/Building%20in%20Ubuntu.md
1)安装git 和toolchain
编译 ardupilot 已经介绍过了,在 http://blog.csdn.net/span76/article/details/49782015
2)下载源代码
git clone https://github.com/cleanflight/cleanflight.git
3)编译
cd cleanflight
make TARGET=NAZE
大概1分钟,就得到了 cleanflight_NAZE.hex, 把这个 firmware上传到nave就可以用了
arm-none-eabi-size ./obj/main/cleanflight_NAZE.elf
text data bss dec hex filename
121156 208 14120 135484 2113c ./obj/main/cleanflight_NAZE.elf
arm-none-eabi-objcopy -O ihex --set-start 0x8000000 obj/main/cleanflight_NAZE.elf obj/cleanflight_NAZE.hex
同理,用
make TARGET=CC3D
得到 cleanflight_CC3D.hex
arm-none-eabi-size ./obj/main/cleanflight_CC3D.elf
text data bss dec hex filename
123180 376 13104 136660 215d4 ./obj/main/cleanflight_CC3D.elf
arm-none-eabi-objcopy -O ihex --set-start 0x8000000 obj/main/cleanflight_CC3D.elf obj/cleanflight_CC3D.hex
目前支持的TARGET( 也就是支持的飞控板了) 如下
ALIENWIIF1 ALIENWIIF3 CC3D CHEBUZZF3 CJMCU COLIBRI_RACE EUSTM32F103RC MOTOLAB NAZE NAZE32PRO OLIMEXINO PORT103R RMDO SPARKY SPRACINGF3 STM32F3DISCOVERY