crazyflie:開發介紹

概述

一般嵌入式軟件開發分爲編譯、調試和下載幾個步驟。本文結合crazefie項目,說明開發流程。

準備源碼

由於官方倉庫中使用了git submodule,所以在克隆源碼時需使用--recursive標誌

git clone --recursive https://github.com/bitcraze/crazyflie-firmware.git

如果已經克隆了倉庫,但是沒有添加--recursive選項,需要手動添加子模塊

cd crazyflie-firmware
git submodule init
git submodule update

具體更新哪些項目可以查看.gitmodules文件。

注意:

  • 問題1:如果編譯時出現如下錯誤:make[1]: *** No rule to make target 'libdw1000.o', needed by 'cf2.elf'. Stop. Makefile:350: recipe for target 'build' failed
    解決辦法:上述錯誤原因是缺少libdw1000文件,可以查看./vendor/libdw1000文件夾是否爲空,如果爲空,說明子項目libdw1000克隆失敗。同理如果出現提示缺少其它文件的錯誤,查看vendor文件夾下相應的子項目是否爲空。嘗試輸入git submodule deinitgit submodule initgit submodule update
  • 問題2:
    error: RPC failed; curl 18 transfer closed with outstanding read data remaining
    error: RPC failed; curl 56 OpenSSL SSL_read: Connection was reset, errno 10054
    解決辦法:嘗試使用SSH協議代替HTTPS,修改如下:
    git clone --recursive git://github.com/bitcraze/crazyflie-firmware.git
    通過該方式可以提高下載速度。

環境搭建

官方提供三種環境搭建方式,分別使用虛擬機鏡像Crazyflie VM、Docker鏡像toolbelt和本機安裝相應的ARM工具鏈來搭建開發環境。

虛擬機鏡像

概述

本文采用 VirtualBox 虛擬機軟件,該軟件屬於自由軟件,方便安裝。

VirtualBox

下載bitcraze鏡像

導入鏡像

鏡像導入過程

啓動鏡像

注意:運行鏡像時可能會出現如下問題
錯誤1:Implementation of the USB 2.0 controller not found!
安裝VirtualBox Extension Pack即可解決
錯誤2:VT-x is not available
對於Win10電腦如果已經開啓了Hyper-V,需將其服務關閉;
1、控制面板 --> 程序和功能 --> 啓用或關閉windows功能
2、失效 H-yper-vWindows 沙盒(Sandbox) 選項,使能 虛擬機平臺Windows虛擬機監控程序平臺選項。
3、管理員打開 PowerShell客戶端
4、輸入bcdedit /set hypervisorlaunchtype off
5、重啓電腦
如果系統升級後無法打開鏡像,嘗試操作4。

Docker鏡像方式

安裝Docker

  1. Docker Hub下載
  2. 雙擊安裝文件,一直Next。
  3. 註冊Docker賬號

下載Docker鏡像

docker pull bitcraze/builder

下載過程如下所示,由於文件較大可能需要一段時間。

進入交互模式

  • 查看鏡像是否下載成功
docker images
  • 進入項目目錄
cd ./crazyflie-firmware
  • 進入交互式環境
docker run --rm -it -v ${PWD}:/module bitcraze/builder bash

該命令用法參考Docker 常用命令

本地工具鏈配置

待補充

編譯

命令 含義
all 快捷編譯方式,所有文件都編譯
compile 編譯生成 cflie.hex文件,但不更新version.c文件
build 更新 version.c 文件並編譯生成 cflie.elf/hex文件
clean_o 只清除目標文件,保留執行文件(.elf,.hex)
clean 清除所有的編譯文件
mrproper 清除每一個編譯文件和典型的編輯器備份文件
cload 如果crazyflie-clients-python與項目文件在同級目錄並且Crazyradio/Crazyradio PA被插入電腦,該命令將會嘗試通過無線bootloader燒寫固件
flash 使用 OpenOCD燒錄.elf 文件
halt 使用 OpenOCD 暫停目標芯片
reset 使用 OpenOCD 復位目標芯片
openocd 啓動 OpenOCD

調試

下載

發佈了48 篇原創文章 · 獲贊 25 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章