最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

betaflight 代碼結(jié)構(gòu)

2022-09-12 19:51 作者:二木山人  | 我要投稿

betaflight 的代碼結(jié)構(gòu)主要如下, 整體上我們移植需要關(guān)注的是 src/main/drivers 文件夾下的驅(qū)動(dòng),其他文件夾各自用途標(biāo)注

+---docs????????-- bf 的文檔文件夾,包括如何設(shè)置、搭建編譯環(huán)境等,如果英語不太差建議多讀
+---lib????????-- MCU 以及引用的一些外部lib 文件,mcu 的驅(qū)動(dòng)庫比如HAL、at32 的bsp放這里

|?? +---main
|?? |?? +---AT32F43x
|?? |?? +---BoschSensortec
|?? |?? |?? \---BMI270-Sensor-API
|?? |?? +---CMSIS? --- ARM 核心的驅(qū)動(dòng),必須要
|?? |?? +---dyad
|?? |?? +---google?? --google的glc序列化協(xié)議
|?? |?? \---MAVLink? --mavlink 數(shù)傳協(xié)議
|?? \---test????????????-- 自動(dòng)化單元測試用例
+---make???????????? -- makefile 的主要文件夾, 包括target引入、特定MCU 的編譯鏈接配置等, at32 需要新建一個(gè) makefile文件
|?? \---mcu
+---src????????--主要源代碼文件夾
|?? +---link????-- gcc 的ld 文件夾,主要聲明程序的內(nèi)存、flash布局,需要根據(jù)mcu 仔細(xì)調(diào)整, 聲明內(nèi)存起始、flash起始、程序的 bss、ess 等段聲明,bf 的配置數(shù)據(jù)管理體系 PG (flash 模擬eeprom )重點(diǎn)在這里。F4的重啟到bootloader 也是在這里

+---main
|?? |?? +---blackbox? ????黑匣子代碼
|?? |?? +---build???????????? 構(gòu)建的一些設(shè)置
|?? |?? +---cli????????????????bf 地面站的cli 功能實(shí)現(xiàn)
|?? |?? +---cms???????????? OSD 設(shè)置菜單的實(shí)現(xiàn)
|?? |?? +---common??????? 通用配置文件
|?? |?? +---config????????????讀寫config 的配置
|?? |?? +---drivers????????????驅(qū)動(dòng)層 ,mcu和傳感器的驅(qū)動(dòng)代碼,移植的代碼主要在這里
|?? |?? |?? +---accgyro????????加速度計(jì)與陀螺儀,基本不需要修改
|?? |?? |?? +---accgyro_legacy?? “史前”古老的加速度計(jì)和陀螺儀
|?? |?? |?? +---barometer????????氣壓計(jì)驅(qū)動(dòng)
|?? |?? |?? +---compass????????????羅盤驅(qū)動(dòng)
|?? |?? |?? +---rangefinder????????遙控測試用的
|?? |?? |?? \---rx???????????? 所有接收機(jī)的驅(qū)動(dòng),包括elrs、cc2500 、sbus 等,大部分不需要移植,ppm 、elrs 用到timer 需要修改
|?? |?? +---fc??????????????? init、飛控核心代碼無需移植

|?? |?? +---flight????????????飛行狀態(tài)代碼,無需移植
|?? |?? +---io????????????????對(duì)于輸入輸出的抽象代碼,不需要修改
|?? |?? |?? \---asyncfatfs
|?? |?? +---msc????????????U盤模式,需要移植
|?? |?? +---msp????????????bf configuator 和bf 串口配置通信的協(xié)議,無需移植
|?? |?? +---osd????????????OSD 的抽象層無需修改
|?? |?? +---pg?????????????? 配置信息讀寫庫,無需修改
|?? |?? +---rx????????????????接收機(jī)上層代碼,無需修改
|?? |?? +---scheduler????核心調(diào)度器,無需修改
|?? |?? +---sensors????????傳感器抽象代碼,無需修改
|?? |?? +---startup????????? mcu 啟動(dòng)初始化代碼,需要根據(jù)mcu配置 startup.s ,修改初始化靜態(tài)變量、預(yù)加載內(nèi)存變量等部分
|?? |?? +---target????????????硬件目標(biāo)配置信息,需要根據(jù)板子自己定義
|?? |?? |?? +---AT32F437DEV? 本次移植用的開發(fā)板target.h target.c target.mk 文佳
|?? +---test????????--單元測試代碼
|?? |?? \---unit
|?? |?????? \---timer_definition_unittest.include
|?? |?????????? +---drivers
|?? |?????????? \---pg
|?? \---utils????????????--工具代碼無需修改
\---unified_targets????????--統(tǒng)一化的固件配置信息,無需修改
??? \---configs



整體上代碼的結(jié)構(gòu),可以看下

可以看到bf 代碼呈沙漏型,中間的driver文件夾對(duì)上下層進(jìn)行了抽象隔離,也便于bf 向各個(gè)mcu移植。 不過總體來說stm32 系列mcu 的結(jié)構(gòu)變化不是很大,除了F7、H7 內(nèi)存、DMA有部分的差異之外, 代碼中夾雜著宏定義來實(shí)現(xiàn)1套代碼不同target 打包。


betaflight 代碼結(jié)構(gòu)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
安丘市| 瑞金市| 建始县| 麻栗坡县| 临洮县| 瑞昌市| 安丘市| 三都| 凤台县| 潮安县| 高陵县| 沙河市| 奉新县| 上思县| 长汀县| 阿合奇县| 洪雅县| 游戏| 兰西县| 大城县| 南溪县| 修文县| 巨鹿县| 山东省| 甘肃省| 叙永县| 衡阳市| 绵阳市| 凯里市| 临高县| 承德市| 洛扎县| 天峻县| 南通市| 牟定县| 靖宇县| 合水县| 连城县| 仪征市| 类乌齐县| 庆云县|