精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SITL代碼分布結構

云深之無跡 ? 來源:云深之無跡 ? 作者:云深之無跡 ? 2022-08-31 10:36 ? 次閱讀

這份代碼是更新了很多次才成為現在的模樣,里面的一些寫法,追溯起來可以追到之前的一些歷史的問題,這篇文章呢,先把庫里面的代碼結構說明白,先看庫,然后再看邏輯。

我之后會把我精簡的代碼上傳:

1cd24476-2867-11ed-ba43-dac502259ad0.png

現在的目錄應該是這樣的

1cf041b0-2867-11ed-ba43-dac502259ad0.png

在里面的目錄里面也可以找到mk的編譯文件

1d16d898-2867-11ed-ba43-dac502259ad0.png

SITL(software in the loop)軟件在環仿真,后面的是一些依賴的芯片,可以看到最次的都是F4的芯片了。

1d33f7b6-2867-11ed-ba43-dac502259ad0.png

在lib里面是依賴的一些關于外部的庫,第一個庫就是博世

方形的樣子

1d965fdc-2867-11ed-ba43-dac502259ad0.png

一個簡單的數據參數

該庫用于支持Bosch BMI270 陀螺儀傳感器。BMI270 是一款小型、低功耗、低噪聲慣性測量單元,設計用于需要高精度、實時傳感器數據的移動應用,如增強現實或室內導航。目前飛控里面使用這個傳感器的也是一些較為高檔的型號。

drivers/accgyro/accgyro_spi_bmi270.c

1dae4b74-2867-11ed-ba43-dac502259ad0.png

這里就定位一下代碼里面實際的位置

下載位置:

 https://github.com/BoschSensortec/BMI270-Sensor-API

版本:2.63.1

作為 Betaflight 的一部分編譯的唯一文件是 bmi270_maximum_fifo.c。

該文件包含初始化期間必須上傳的設備。

1dd08004-2867-11ed-ba43-dac502259ad0.png

上面這個文件的頭就是這樣的,可以看到是和驅動強相關的

Dyad 是一個基于 C 語言的異步網絡庫,旨在輕量級、可移植和易用。它既可用于創建小型獨立服務器,也可用于為現有的項目提供網絡支持。

1df95d26-2867-11ed-ba43-dac502259ad0.png

很少的實現文件

Open Location Code 是一種技術,它提供了一種將位置編碼為比緯度和經度更易于使用的形式的方法。生成的代碼稱為加號,因為它們的區別屬性是它們包含一個“+”字符。

該技術旨在生成可用于替代街道地址的代碼,特別是在建筑物沒有編號或街道沒有命名的地方。

加號代表一個區域,而不是一個點。隨著數字添加到代碼中,區域縮小,因此長代碼比短代碼更精確。

相似的代碼比不同的代碼更靠近。

位置可以轉換為代碼,代碼可以完全離線轉換回位置。

無需查找數據表或需要在線服務。該算法是公開的,可以不受限制地使用。

Google的一種地圖編碼技術

歡迎來找我

1eb1b556-2867-11ed-ba43-dac502259ad0.png

這個是遙測的庫,很出名,之后寫

1eccaafa-2867-11ed-ba43-dac502259ad0.png

關于測試是軟件編寫的最后一個階段,到底能不能使用在此會有結果

1ef9b2b6-2867-11ed-ba43-dac502259ad0.png

這個是其中的一個測試的程序

1f1a557a-2867-11ed-ba43-dac502259ad0.png

在源碼里面也有4個人目錄,鏈接文件,主的項目文件,還有測試的使用的文件夾,以及大家共同依賴的文件。

1f2f96b0-2867-11ed-ba43-dac502259ad0.png

可以看到這個編譯的ld文件是很多的,這個也沒有啥好說的

1f50b886-2867-11ed-ba43-dac502259ad0.png

main文件是我嘴關注的地方,在下面是具體不同的文件目錄

build 版本號,斷言,調試,編譯等相關配置

cms OSD、燈帶等內容管理

config 配置管理

fc 飛控功能,包括初始化、任務、設置等

main.c 主程序入口

msp Multiwii Serial Protocol

navigation 導航相關

scheduler 調度程序

startup 匯編初始化硬件

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 虛擬串口的硬件抽象層

以上這些就是大概的對目錄的一個解釋。

1f746452-2867-11ed-ba43-dac502259ad0.png

這個是啟動文件

1f9d998a-2867-11ed-ba43-dac502259ad0.png

刪除的匯編的樣子

1fc01c9e-2867-11ed-ba43-dac502259ad0.png

虛擬串口

1fdae538-2867-11ed-ba43-dac502259ad0.png

這個就是黑盒的一個疊加層的樣子

201ba398-2867-11ed-ba43-dac502259ad0.png

這個是黑盒記錄器,把飛機上面的數據保存下來

https://github.com/cleanflight/blackbox-tools

解碼工具

20337018-2867-11ed-ba43-dac502259ad0.png

這個是使能黑盒記錄器的宏

20560c40-2867-11ed-ba43-dac502259ad0.png

可以儲存的介質

2076ee38-2867-11ed-ba43-dac502259ad0.png

這個是相當于一個優先級

209cf182-2867-11ed-ba43-dac502259ad0.png

黑盒的配置的結構體

20bcbe4a-2867-11ed-ba43-dac502259ad0.png

速率

20db4dce-2867-11ed-ba43-dac502259ad0.png

模式

20f0faca-2867-11ed-ba43-dac502259ad0.png

這個就是編譯文件目錄

2124f258-2867-11ed-ba43-dac502259ad0.png

這個是cil的文件夾,就是我們的串口連接,就是后面上傳的配置啥的

21422de6-2867-11ed-ba43-dac502259ad0.png

這個是條件編譯,可以使用debug的功能

2167f742-2867-11ed-ba43-dac502259ad0.png

通過連續跳轉,定位到最終的實現是這里

217edf52-2867-11ed-ba43-dac502259ad0.png

這個實現我看不懂了

2195db3a-2867-11ed-ba43-dac502259ad0.png

隨便看一個寫的什么

21af2662-2867-11ed-ba43-dac502259ad0.png

在具體的C實現里面,可以大量的文件都在這里匯集

21cc5d54-2867-11ed-ba43-dac502259ad0.png

設置同步

21f73498-2867-11ed-ba43-dac502259ad0.png

基于串口的RX協議

220b520c-2867-11ed-ba43-dac502259ad0.png

使用SPI接口的RX接收機

222e7840-2867-11ed-ba43-dac502259ad0.png

還有燈光的調色方式

224ceeec-2867-11ed-ba43-dac502259ad0.png

common是就像工具箱一樣的結構,這個好看

226763b2-2867-11ed-ba43-dac502259ad0.png

坐標軸的定義

22918886-2867-11ed-ba43-dac502259ad0.png

飛起來的方向定義

22a40b78-2867-11ed-ba43-dac502259ad0.png

穿越機是和硬件強相關的,這里肯定有大量的硬件驅動

22be32c8-2867-11ed-ba43-dac502259ad0.png

在里面是按照一些定義的方式來寫的

22e84ffe-2867-11ed-ba43-dac502259ad0.png

這個是電機的協議

23159df6-2867-11ed-ba43-dac502259ad0.png

正經飛控的實現是這么多,算法層面的東西

2335ac4a-2867-11ed-ba43-dac502259ad0.png

這是算法運算完,如何驅動硬件

23549326-2867-11ed-ba43-dac502259ad0.png

RX協議

2373176a-2867-11ed-ba43-dac502259ad0.png

任務驅動

238e706e-2867-11ed-ba43-dac502259ad0.png

這個里面是已經注冊的飛控(也不是注冊)

23aa730e-2867-11ed-ba43-dac502259ad0.png

里面是大量的硬件IO的map

23db6cf2-2867-11ed-ba43-dac502259ad0.png

還有各種的遙測協議

還有很多的我都搞不明白是干啥的,繼續研究。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2548

    文章

    50681

    瀏覽量

    752021
  • 芯片
    +關注

    關注

    453

    文章

    50410

    瀏覽量

    421849
  • 代碼
    +關注

    關注

    30

    文章

    4748

    瀏覽量

    68357

原文標題:BF固件:代碼分布結構

文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    代碼結構分析

    1 代碼結構分析概述 在編寫代碼時,要求要結構清晰、接口簡單。如果代碼結構過于復雜,會帶來很多問
    的頭像 發表于 05-12 22:23 ?3618次閱讀
    <b class='flag-5'>代碼</b><b class='flag-5'>結構</b>分析

    llama.cpp代碼結構&amp;調用流程分析

    llama.cpp 的代碼結構比較直觀,如下所示,為整體代碼結構中的比較核心的部分的代碼結構
    的頭像 發表于 11-07 09:23 ?2051次閱讀
    llama.cpp<b class='flag-5'>代碼</b><b class='flag-5'>結構</b>&amp;調用流程分析

    何為分布式二極管結構

    請問數字電子技術第六版里介紹cmos反相器的輸入保護電路中應用了雙極型二極管是什么類型的二極管,只聽過雙極型晶體管,沒有搜到有雙極型二極管這個概念。還有分布式二極管結構是指D2是一個場效應管,可以
    發表于 04-16 15:51

    怎樣去設計分布式電容共面波導結構式移相器?

    BST材料的特性是什么?怎樣去設計分布式電容共面波導結構式移相器?
    發表于 06-08 06:55

    嵌入式系統中內存的分布情況

    前言硬件程序調試比較看重內存的分布情況,可以通過編譯輸出文件來分析運行時的數據結構如有疑問,歡迎指正,謝謝內存分布代碼段 (Text segment):存放程序執行
    發表于 10-27 10:22

    分布式專家系統結構設計

    分布式專家系統是分布式技術與人工智能相結合的產物,它的主要研究內容是分布式問題求解。文章提出了一種分布式專家系統的結構,系統由管理節點和執行
    發表于 12-31 16:55 ?16次下載

    分布反饋(DFB)半導體激光器的結構和原理是什么?

    分布反饋(DFB)半導體激光器的結構和原理是什么? 1.結構及工作機理 DFB激光器的激光振蕩不是靠F—P腔來實現,而是依靠沿縱向等間隔分
    發表于 04-02 15:46 ?3.9w次閱讀

    分布式離散余弦變換的硬件結構

    在本文中,我們介紹了一種基于分布式算法的2D DCT 結構,該結構中,我們充分利用 了三角函數的周期性與對偶性,并利用簡單ALU 實現加減法的分時復用,從而比已有的分 布式DCT 結構
    發表于 04-06 16:49 ?22次下載

    弧形軌道結構下電流分布特性的仿真研究

    弧形軌道結構下電流分布特性的仿真研究_王盟
    發表于 01-04 16:45 ?0次下載

    FreeRTOS源代碼結構與基本目錄

    下載的FreeRTOS包含每種處理器體系的源代碼以及范例程序。把所有體系的源代碼打包可以方便分發,但是文件的數量可能會讓人感到畏懼。幸好目錄結構非常簡單,并且FreeRTOS的實時內核只包含在3個源文件中(如果使用co-rout
    發表于 11-18 02:02 ?4013次閱讀

    基于POI分布的空間索引結構TDG

    基于POI分布的空間索引結構TDG
    發表于 06-25 15:56 ?10次下載

    淺析Zephyr應用的代碼結構中的自定義驅動

    本篇是《《Zephyr應用的代碼結構》》系列的終篇和下面兩篇文章一起可以構建出一個有app獨立管理的zephyr項目 Zephyr應用的代碼結構--West提貨單: zephyr和ze
    的頭像 發表于 08-18 09:08 ?4739次閱讀

    高通量芯片流體分布結構

    高通量芯片流體層分為梯度分布和樹狀分布兩種結構。如圖1a所示,梯度分布由連續相通道、分散相通道、一個公共出口通道以及在水平方向上排布的多個MFDG組成。圖1b所示樹狀
    的頭像 發表于 07-10 15:02 ?1748次閱讀

    電機內部結構磁場分布速覽

    電機在運行過程中,其內部結構中的磁場分布,既復雜,也清晰。
    的頭像 發表于 05-02 14:57 ?5949次閱讀
    電機內部<b class='flag-5'>結構</b>磁場<b class='flag-5'>分布</b>速覽

    【鴻蒙】OpenHarmony 4.0藍牙代碼結構簡析

    OpenHarmony 4.0藍牙代碼結構簡析前言 OpenHarmony 4.0上藍牙倉和目錄結構進行一次較大整改,本文基于4.0以上版本對藍牙代碼進行分析,便于讀者快速了解和學習
    的頭像 發表于 02-26 16:08 ?1494次閱讀
    【鴻蒙】OpenHarmony 4.0藍牙<b class='flag-5'>代碼</b><b class='flag-5'>結構</b>簡析