這份代碼是更新了很多次才成為現在的模樣,里面的一些寫法,追溯起來可以追到之前的一些歷史的問題,這篇文章呢,先把庫里面的代碼結構說明白,先看庫,然后再看邏輯。
我之后會把我精簡的代碼上傳:
現在的目錄應該是這樣的
在里面的目錄里面也可以找到mk的編譯文件
SITL(software in the loop)軟件在環仿真,后面的是一些依賴的芯片,可以看到最次的都是F4的芯片了。
在lib里面是依賴的一些關于外部的庫,第一個庫就是博世
方形的樣子
一個簡單的數據參數
該庫用于支持Bosch BMI270 陀螺儀傳感器。BMI270 是一款小型、低功耗、低噪聲慣性測量單元,設計用于需要高精度、實時傳感器數據的移動應用,如增強現實或室內導航。目前飛控里面使用這個傳感器的也是一些較為高檔的型號。
drivers/accgyro/accgyro_spi_bmi270.c
這里就定位一下代碼里面實際的位置
庫下載位置:
https://github.com/BoschSensortec/BMI270-Sensor-API
版本:2.63.1
作為 Betaflight 的一部分編譯的唯一文件是 bmi270_maximum_fifo.c。
該文件包含初始化期間必須上傳的設備。
上面這個文件的頭就是這樣的,可以看到是和驅動強相關的
Dyad 是一個基于 C 語言的異步網絡庫,旨在輕量級、可移植和易用。它既可用于創建小型獨立服務器,也可用于為現有的項目提供網絡支持。
很少的實現文件
Open Location Code 是一種技術,它提供了一種將位置編碼為比緯度和經度更易于使用的形式的方法。生成的代碼稱為加號,因為它們的區別屬性是它們包含一個“+”字符。
該技術旨在生成可用于替代街道地址的代碼,特別是在建筑物沒有編號或街道沒有命名的地方。
加號代表一個區域,而不是一個點。隨著數字添加到代碼中,區域縮小,因此長代碼比短代碼更精確。
相似的代碼比不同的代碼更靠近。
位置可以轉換為代碼,代碼可以完全離線轉換回位置。
無需查找數據表或需要在線服務。該算法是公開的,可以不受限制地使用。
Google的一種地圖編碼技術
歡迎來找我
這個是遙測的庫,很出名,之后寫
關于測試是軟件編寫的最后一個階段,到底能不能使用在此會有結果
這個是其中的一個測試的程序
在源碼里面也有4個人目錄,鏈接文件,主的項目文件,還有測試的使用的文件夾,以及大家共同依賴的文件。
可以看到這個編譯的ld文件是很多的,這個也沒有啥好說的
main文件是我嘴關注的地方,在下面是具體不同的文件目錄
build 版本號,斷言,調試,編譯等相關配置
cms OSD、燈帶等內容管理
config 配置管理
fc 飛控功能,包括初始化、任務、設置等
main.c 主程序入口
msp Multiwii Serial Protocol
navigation 導航相關
scheduler 調度程序
uav_interconnect
vcp 虛擬串口(Virtual COM Port)功能
vcpf4 F4的虛擬串口功能
blackbox 飛機的黑匣子,記錄飛行日志
common 通用工具類
drivers 不同傳感器、IO、總線等的驅動程序
flight 飛行相關程序,包括失控、風速評估、混合、PID等
io 輸入輸出程序
platform.h F3、F4、F7等相關的宏定義
rx 接收機相關程序
sensors 傳感器程序
target 不同的飛控板編譯不同的程序
telemetry 天線
vcp_hal 虛擬串口的硬件抽象層
以上這些就是大概的對目錄的一個解釋。
這個是啟動文件
刪除的匯編的樣子
虛擬串口
這個就是黑盒的一個疊加層的樣子
這個是黑盒記錄器,把飛機上面的數據保存下來
https://github.com/cleanflight/blackbox-tools
解碼工具
這個是使能黑盒記錄器的宏
可以儲存的介質
這個是相當于一個優先級
黑盒的配置的結構體
速率
模式
這個就是編譯文件目錄
這個是cil的文件夾,就是我們的串口連接,就是后面上傳的配置啥的
這個是條件編譯,可以使用debug的功能
通過連續跳轉,定位到最終的實現是這里
這個實現我看不懂了
隨便看一個寫的什么
在具體的C實現里面,可以大量的文件都在這里匯集
設置同步
基于串口的RX協議
使用SPI接口的RX接收機
還有燈光的調色方式
common是就像工具箱一樣的結構,這個好看
坐標軸的定義
飛起來的方向定義
穿越機是和硬件強相關的,這里肯定有大量的硬件驅動
在里面是按照一些定義的方式來寫的
這個是電機的協議
正經飛控的實現是這么多,算法層面的東西
這是算法運算完,如何驅動硬件
RX協議
任務驅動
這個里面是已經注冊的飛控(也不是注冊)
里面是大量的硬件IO的map
還有各種的遙測協議
還有很多的我都搞不明白是干啥的,繼續研究。
-
傳感器
+關注
關注
2548文章
50681瀏覽量
752021 -
芯片
+關注
關注
453文章
50410瀏覽量
421849 -
代碼
+關注
關注
30文章
4748瀏覽量
68357
原文標題:BF固件:代碼分布結構
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論