betaflight 代码结构

.

betaflight 代码结构如下表所示

betaflight 体系结构







应用层
CMS
osd调参
Flight
fail safe
gps rescue
PID
Mixer




抽象基础功能
config
飞控配置信息读写

以内置flash 模拟eeprom
FC
飞控核心控制事件循环
MSC
usb-storage、fat 等文件系统交互
MSP
管理协议
OSD
字幕叠加
telemetry
遥测回传相关

RX
接收机相关交互
a7105、cc2500、frsk、crsf等协议
以及rx 与飞控的rx_spi集成等
sensors
加速计、adc、电池、气压、compass等传感器抽象
blackbox
黑匣子记录




common
通用工具
scheduler
定时器(软)
IO
对飞控的“输入输出”,如视频、crsf、bb响、flash、gps、舵机、图传等的输入输出抽象



硬件配置、接口抽象化


pg 
parameter group
设备配置加载映射为内存的结构体
抽象映射各硬件的操作,详见 doc/ ParameterGroups.md



抽象硬件


driver 
抽象具体硬件的初始化、交互,需要继续整理一下抽象,目前看主要是io.h io.c 这个抽象定义



MCU相关

vcp
USB 虚拟串口相关
target 
定义mcu与主要外设的针脚定义
startup
各种mcu初始化设置,设置核心频率等



硬件层
STM32 F1、F3、F4、F7、H7
mcu
加速度
MPU6000、6500
ICM2xxxxx
SPI 
罗盘
HMC5883L
i2c
大气压计
BMP280
i2c
OSD叠加
MAX7456E
SPI
bb响
PWM

UART 接口
GPS、RX、VTX等
ESC

4路PWM 
一般跑Dshot 协议
OLED灯带



这次针对BF 的移植,主要对于target、Driver、link、make 等进行修改,重点在于driver文件夹, 由于原始BF主要使用STM32 系列,从F1 到H7 都有移植,所以原始的代码已经十分复杂,AT32 的外设结构与STM32G4 比较类似,所以主要以G4 相关HAL库为蓝本进行修改移植。

你可能感兴趣的:(嵌入式,单片机,stm32,嵌入式硬件)