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上傳到naze就可以用了
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