BetaFlight飞控AOCODARC-F7MINI固件编译
BetaFlight是一款非常出色的飞控航模开源软件,而且是基于GPL V3协议,所以相应的代码修改,必须开源出来。与PX4的BSD协议不一样,通常商业角度更多倾向于BSD协议。
本次编译主要是针对AOCODARC-F7MINI飞控板,采用最新的代码分支进行编译,以便进行功能验证。
1. 编译目标(AOCODARC-F7MINI)
- 控制器:STM32F722RET6
- 陀螺仪:MPU6500
- 气压计:BMP280
- 黑匣子:16MB
- PWM输出:8CH
- 通用串口:5CH
- 输入电源:3-6SLipo
- 输出电源:5V/2.5A, 9V/3A
- 重量:6g
- 外形尺寸:29mm x 29mm
- 安装孔位:20mm x 20mm
2. 编译步骤
Step 1 软件配置环境准备
这里基于Ubuntu准备相关的软件配置环境。
$ sudo apt-get update
$ sudo apt-get install git
$ sudo apt-get install gitk git-gui
$ uname -a
Linux daniel-ThinkPad-SL410 5.15.0-58-generic #64~20.04.1-Ubuntu SMP Fri Jan 6 16:42:31 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
Step 2 获取开源代码
$ git clone git@github.com:betaflight/betaflight.git
Cloning into 'betaflight'...
remote: Enumerating objects: 199408, done.
remote: Counting objects: 100% (59/59), done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 199408 (delta 13), reused 52 (delta 12), pack-reused 199349
Receiving objects: 100% (199408/199408), 379.34 MiB | 530.00 KiB/s, done.
Resolving deltas: 100% (138812/138812), done.
Updating files: 100% (3662/3662), done.
$ cd betaflight
$ git branch -a //当前是master主干分支
* master
remotes/origin/3.4.x-maintenance
remotes/origin/3.5.x-akk_vtx_fix
remotes/origin/3.5.x-maintenance
remotes/origin/4.0.x-maintenance
remotes/origin/4.1-maintenance
remotes/origin/4.2-maintenance
remotes/origin/4.3-maintenance
remotes/origin/HEAD -> origin/master
remotes/origin/akk_vtx_fix
remotes/origin/at32-development
remotes/origin/broken-usb-rescue
remotes/origin/fix_pull_request_template
remotes/origin/fix_timer_channel_count
remotes/origin/master
remotes/origin/v3.2.x-maintenance
remotes/origin/v3.3.x-akk_vtx_fix
remotes/origin/v3.3.x-maintenance
remotes/origin/v3.4.x-akk_vtx_fix
Step 3 构建命令介绍
在betaflight目录下,直接敲make help,脚本会显示命令所支持的参数。
这个还是非常C的工程,应为他采用了Makefile。不过作为用户就不要去研究里面的东东了。而且也没必要耗费大量的时间去构建所有目标板的固件,我们只需要确认并编译自己硬件的固件即可。
$ make help
Makefile for the betaflight firmware
Usage:
make [V=<verbosity>] [TARGET=<target>] [OPTIONS="<options>"]
Or:
make <target> [V=<verbosity>] [OPTIONS="<options>"]
Valid TARGET values are: SITL STM32F405 STM32F411 STM32F745 STM32F7X2 STM32G47X STM32H723 STM32H730 STM32H743 STM32H750
V : Set verbosity level based on the V= parameter
V=0 Low
V=1 High
compile_file takes two arguments: (1) optimisation description string and (2) optimisation compiler flag
all : Build all currently built targets
all_all : Build all targets (including legacy / unsupported)
clean : clean up temporary / machine-generated files
test_clean : clean up temporary / machine-generated files (tests)
<TARGET>_clean : clean up one specific target (alias for above)
clean_all : clean all valid targets
<TARGET>_flash : build and flash a target
tty_flash : flash firmware (.hex) onto flight controller via a serial port
dfu_flash : flash firmware (.bin) onto flight controller via a DFU mode
st-flash : flash firmware (.bin) onto flight controller
<TARGET>_zip : build target and zip it (useful for posting to GitHub)
<TARGET>_rev : build target and add revision to filename
unbrick : unbrick flight controller
cppcheck : run static analysis on C source code
version : print firmware version
help : print this help message and exit
targets : print a list of all valid target platforms (for consumption by scripts)
target-mcu : print the MCU type of the target
targets-by-mcu : make all targets that have a MCU_TYPE mcu
targets-f4 : make all F4 targets
targets-f7 : make all F7 targets
test : run the Betaflight test suite
junittest : run the Betaflight test suite, producing Junit XML result files.
test-representative: run a representative subset of the Betaflight test suite (i.e. run all tests, but run each expanded test only for one target)
test-all: run the Betaflight test suite including all per-target expanded tests
test_help : print the help message for the test suite (including a list of the available tests)
test_versions : print the compiler versions used for the test suite
test_% : run test 'test_%' from the test suite
arm_sdk_install : Install Arm SDK
arm_sdk_clean : Uninstall Arm SDK
Step 4 构建命令准备
编译之前首先需要安装编译工具。各地的网络情况不一样,所以下载会遇到失败,请耐性尝试。
$ make arm_sdk_install
mkdir -p tools
mkdir -p downloads
Warning: Illegal date format for -z, --time-cond (and not a file name).
Warning: Disabling time condition. See curl_getdate(3) for valid date syntax.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 252 100 252 0 0 205 0 0:00:01 0:00:01 --:--:-- 205
40 149M 40 60.4M 0 0 60132 0 0:43:32 0:17:34 0:25:58 0raspistill -o a.jpg -t 1000
curl: (56) OpenSSL SSL_read: Connection timed out, errno 110
make: *** [make/tools.mk:67: downloads/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2] Error 56
$ rm downloads/gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2
$ make arm_sdk_install
Warning: Illegal date format for -z, --time-cond (and not a file name).
Warning: Disabling time condition. See curl_getdate(3) for valid date syntax.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 252 100 252 0 0 43 0 0:00:05 0:00:05 --:--:-- 63
100 149M 100 149M 0 0 215k 0 0:11:51 0:11:51 --:--:-- 298k
注:有的时候会出现本地编译器版本太低的情况,需要执行上面的arm_sdk_install进行工具升级安装。
$ make targets
make/tools.mk:270: *** **ERROR** your arm-none-eabi-gcc is '10.2.1', but '10.3.1' is expected. Override with 'GCC_REQUIRED_VERSION' in make/local.mk or run 'make arm_sdk_install' to install the right version automatically in the tools folder of this repo. Stop.
Step 5 厂家目标板查询
当前手头硬件板子是否在BetaFlight的支持列表中,查询方式如下:
$ make targets
Valid targets: SITL STM32F405 STM32F411 STM32F745 STM32F7X2 STM32G47X STM32H723 STM32H730 STM32H743 STM32H750
Built targets: SITL STM32F405 STM32F411 STM32F745 STM32F7X2 STM32G47X STM32H723 STM32H730 STM32H743 STM32H750
Default target: STM32F405
鉴于产品规格:“控制器:STM32H722RET6”,所以在编译时需要选择“STM32F7X2”
Step 6 目标固件编译
BetaFlight在飞控代码上是基于MCU选型来区分目标代码,而相应的硬件配置通过unified-targets进行配置。
注:这是一种系统角度的软件代码设计思想,是非常好的设计思路,值得学习和借鉴!
$ make STM32F7X2
Building STM32F7X2
make[1]: Entering directory '/home/daniel/Work/betaflight'
make -j ./obj/betaflight_4.4.0_STM32F7X2.hex
make[2]: Entering directory '/home/daniel/Work/betaflight'
rm -f ./obj/main/STM32F7X2/.efhash_*
EF HASH -> ./obj/main/STM32F7X2/.efhash_d41d8cd98f00b204e9800998ecf8427e
%% startup_stm32f722xx.s
%% (optimised) ./src/main/startup/system_stm32f7xx.c
%% (speed optimised) ./src/main/drivers/accgyro/accgyro_mpu.c
%% (optimised) ./src/main/drivers/adc_stm32f7xx.c
%% (optimised) ./src/main/drivers/audio_stm32f7xx.c
%% (speed optimised) ./src/main/drivers/bus_i2c_hal.c
%% (size optimised) ./src/main/drivers/bus_i2c_hal_init.c
%% (size optimised) ./src/main/drivers/bus_i2c_timing.c
%% (optimised) ./src/main/drivers/dma_stm32f7xx.c
%% (size optimised) ./src/main/drivers/light_ws2811strip_hal.c
%% (size optimised) ./src/main/drivers/transponder_ir_io_hal.c
%% (speed optimised) ./src/main/drivers/bus_spi_ll.c
%% (optimised) ./src/main/drivers/persistent.c
%% (optimised) ./src/main/drivers/dshot_bitbang.c
%% (optimised) ./src/main/drivers/dshot_bitbang_decode.c
%% (optimised) ./src/main/drivers/dshot_bitbang_ll.c
%% (speed optimised) ./src/main/drivers/pwm_output_dshot_hal.c
%% (speed optimised) ./src/main/drivers/pwm_output_dshot_shared.c
%% (optimised) ./src/main/drivers/timer_stm32f7xx.c
%% (optimised) ./src/main/drivers/timer_hal.c
%% (optimised) ./src/main/drivers/system_stm32f7xx.c
%% (optimised) ./src/main/drivers/serial_uart_hal.c
%% (optimised) ./src/main/drivers/serial_uart_stm32f7xx.c
%% (optimised) ./src/main/drivers/sdio_f7xx.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_spi_lsm6dso_init.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_spi_icm20689.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_mpu6050.c
%% (speed optimised) ./src/main/drivers/accgyro/accgyro_spi_lsm6dso.c
%% (speed optimised) ./src/main/drivers/accgyro/accgyro_mpu3050.c
%% (optimised) ./src/main/drivers/accgyro/accgyro_spi_l3gd20.c
%% (optimised) ./src/main/drivers/accgyro/accgyro_spi_icm20649.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_fake.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_spi_icm426xx.c
%% (speed optimised) ./src/main/drivers/accgyro/accgyro_spi_bmi270.c
%% (optimised) ./src/main/drivers/accgyro/gyro_sync.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_spi_mpu6500.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_spi_mpu9250.c
%% (speed optimised) ./src/main/drivers/accgyro/accgyro_spi_bmi160.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_spi_mpu6000.c
%% (size optimised) ./src/main/drivers/accgyro/accgyro_mpu6500.c
%% (optimised) lib/main/BoschSensortec/BMI270-Sensor-API/bmi270_maximum_fifo.c
%% (size optimised) ./src/main/drivers/barometer/barometer_bmp085.c
%% (size optimised) ./src/main/drivers/barometer/barometer_ms5611.c
%% (size optimised) ./src/main/drivers/barometer/barometer_qmp6988.c
%% (size optimised) ./src/main/drivers/barometer/barometer_2smpb_02b.c
%% (size optimised) ./src/main/drivers/barometer/barometer_lps.c
%% (optimised) ./src/main/drivers/barometer/barometer_dps310.c
%% (size optimised) ./src/main/drivers/barometer/barometer_fake.c
%% (optimised) ./src/main/drivers/barometer/barometer_bmp388.c
%% (size optimised) ./src/main/drivers/barometer/barometer_bmp280.c
%% (optimised) ./src/main/drivers/compass/compass_mpu925x_ak8963.c
%% (size optimised) ./src/main/drivers/compass/compass_lis3mdl.c
%% (size optimised) ./src/main/drivers/compass/compass_ak8963.c
%% (size optimised) ./src/main/drivers/compass/compass_ak8975.c
%% (size optimised) ./src/main/drivers/compass/compass_hmc5883l.c
%% (size optimised) ./src/main/drivers/compass/compass_fake.c
%% (size optimised) ./src/main/drivers/compass/compass_qmc5883l.c
%% (speed optimised) ./src/main/drivers/max7456.c
%% (size optimised) ./src/main/drivers/vtx_rtc6705.c
%% (size optimised) ./src/main/drivers/vtx_rtc6705_soft_spi.c
%% (optimised) ./src/main/rx/cc2500_common.c
%% (optimised) ./src/main/rx/cc2500_frsky_shared.c
%% (optimised) ./src/main/rx/cc2500_frsky_d.c
%% (optimised) ./src/main/rx/cc2500_frsky_x.c
%% (optimised) ./src/main/rx/cc2500_sfhss.c
%% (optimised) ./src/main/rx/cc2500_redpine.c
%% (optimised) ./src/main/rx/a7105_flysky.c
%% (optimised) ./src/main/rx/cyrf6936_spektrum.c
%% (optimised) ./src/main/drivers/rx/expresslrs_driver.c
%% (optimised) ./src/main/rx/expresslrs.c
%% (optimised) ./src/main/rx/expresslrs_common.c
%% (optimised) ./src/main/rx/expresslrs_telemetry.c
%% (optimised) ./src/main/drivers/rx/rx_cc2500.c
%% (optimised) ./src/main/drivers/rx/rx_a7105.c
%% (optimised) ./src/main/drivers/rx/rx_cyrf6936.c
%% (optimised) ./src/main/drivers/rx/rx_sx127x.c
%% (optimised) ./src/main/drivers/rx/rx_sx1280.c
%% arm_bitreversal2.S
%% (optimised) ./src/main/drivers/flash.c
%% (optimised) ./src/main/drivers/flash_m25p16.c
%% (optimised) ./src/main/drivers/flash_w25n01g.c
%% (optimised) ./src/main/drivers/flash_w25q128fv.c
%% (optimised) ./src/main/drivers/flash_w25m.c
%% (optimised) ./src/main/io/flashfs.c
%% (optimised) ./src/main/drivers/usb_msc_common.c
%% (optimised) ./src/main/drivers/usb_msc_f7xx.c
%% (optimised) ./src/main/msc/usbd_storage.c
%% (optimised) ./src/main/msc/usbd_storage_sdio.c
%% (optimised) ./src/main/msc/usbd_storage_sd_spi.c
%% (optimised) ./src/main/msc/usbd_storage_emfat.c
%% (optimised) ./src/main/msc/emfat.c
%% (optimised) ./src/main/msc/emfat_file.c
%% (optimised) ./src/main/build/build_config.c
%% (optimised) ./src/main/build/debug.c
%% (optimised) ./src/main/build/debug_pin.c
%% (optimised) ./src/main/build/version.c
%% (optimised) ./src/main/target/STM32F7X2/target.c
%% (size optimised) ./src/main/main.c
%% (optimised) ./src/main/pg/rx_spi_cc2500.c
%% (optimised) ./src/main/pg/motor.c
%% (optimised) ./src/main/pg/rcdevice.c
%% (optimised) ./src/main/pg/pg.c
%% (optimised) ./src/main/pg/pin_pull_up_down.c
%% (optimised) ./src/main/pg/bus_i2c.c
%% (optimised) ./src/main/pg/bus_spi.c
%% (optimised) ./src/main/pg/vcd.c
%% (optimised) ./src/main/pg/dyn_notch.c
%% (optimised) ./src/main/pg/pinio.c
%% (optimised) ./src/main/pg/beeper_dev.c
%% (optimised) ./src/main/pg/rpm_filter.c
%% (optimised) ./src/main/pg/vtx_io.c
%% (optimised) ./src/main/pg/board.c
%% (optimised) ./src/main/pg/rx.c
%% (optimised) ./src/main/pg/scheduler.c
%% (optimised) ./src/main/pg/adc.c
%% (optimised) ./src/main/pg/dashboard.c
%% (optimised) ./src/main/pg/displayport_profiles.c
%% (optimised) ./src/main/pg/rx_spi.c
%% (optimised) ./src/main/pg/timerup.c
%% (optimised) ./src/main/pg/gps.c
%% (optimised) ./src/main/pg/vtx_table.c
%% (optimised) ./src/main/pg/gps_rescue.c
%% (optimised) ./src/main/pg/flash.c
%% (optimised) ./src/main/pg/rx_pwm.c
%% (optimised) ./src/main/pg/mco.c
%% (optimised) ./src/main/pg/beeper.c
%% (optimised) ./src/main/pg/usb.c
%% (optimised) ./src/main/pg/bus_quadspi.c
%% (optimised) ./src/main/pg/timerio.c
%% (optimised) ./src/main/pg/max7456.c
%% (optimised) ./src/main/pg/stats.c
%% (optimised) ./src/main/pg/rx_spi_expresslrs.c
%% (optimised) ./src/main/pg/piniobox.c
%% (optimised) ./src/main/pg/sdcard.c
%% (optimised) ./src/main/pg/serial_uart.c
%% (optimised) ./src/main/pg/gyrodev.c
%% (optimised) ./src/main/pg/msp.c
%% (optimised) ./src/main/pg/sdio.c
%% (speed optimised) ./src/main/common/maths.c
%% (optimised) ./src/main/common/bitarray.c
%% (optimised) ./src/main/common/strtol.c
%% (optimised) ./src/main/common/crc.c
%% (optimised) ./src/main/common/huffman.c
%% (optimised) ./src/main/common/uvarint.c
%% (optimised) ./src/main/common/time.c
%% (speed optimised) ./src/main/common/sdft.c
%% (speed optimised) ./src/main/common/typeconversion.c
%% (optimised) ./src/main/common/string_light.c
%% (optimised) ./src/main/common/huffman_table.c
%% (speed optimised) ./src/main/common/encoding.c
%% (optimised) ./src/main/common/printf_serial.c
%% (speed optimised) ./src/main/common/filter.c
%% (optimised) ./src/main/common/sensor_alignment.c
%% (optimised) ./src/main/common/explog_approx.c
%% (optimised) ./src/main/common/gps_conversion.c
%% (optimised) ./src/main/common/streambuf.c
%% (optimised) ./src/main/common/printf.c
%% (optimised) ./src/main/common/colorconversion.c
%% (size optimised) ./src/main/config/config_eeprom.c
%% (size optimised) ./src/main/config/simplified_tuning.c
%% (optimised) ./src/main/config/config.c
%% (size optimised) ./src/main/config/config_streamer.c
%% (size optimised) ./src/main/config/feature.c
%% (size optimised) ./src/main/cli/cli.c
%% (size optimised) ./src/main/cli/settings.c
%% (speed optimised) ./src/main/drivers/adc.c
%% (optimised) ./src/main/drivers/dshot.c
%% (optimised) ./src/main/drivers/dshot_dpwm.c
%% (optimised) ./src/main/drivers/dshot_command.c
%% (speed optimised) ./src/main/drivers/buf_writer.c
%% (speed optimised) ./src/main/drivers/bus.c
%% (size optimised) ./src/main/drivers/bus_i2c_config.c
%% (optimised) ./src/main/drivers/bus_i2c_busdev.c
%% (optimised) ./src/main/drivers/bus_i2c_soft.c
%% (speed optimised) ./src/main/drivers/bus_quadspi.c
%% (speed optimised) ./src/main/drivers/bus_spi.c
%% (size optimised) ./src/main/drivers/bus_spi_config.c
%% (size optimised) ./src/main/drivers/bus_spi_pinconfig.c
%% (optimised) ./src/main/drivers/buttons.c
%% (optimised) ./src/main/drivers/display.c
%% (optimised) ./src/main/drivers/display_canvas.c
%% (optimised) ./src/main/drivers/dma_common.c
%% (optimised) ./src/main/drivers/dma_reqmap.c
%% (speed optimised) ./src/main/drivers/exti.c
%% (speed optimised) ./src/main/drivers/io.c
%% (optimised) ./src/main/drivers/light_led.c
%% (optimised) ./src/main/drivers/mco.c
%% (optimised) ./src/main/drivers/motor.c
%% (optimised) ./src/main/drivers/pinio.c
%% (optimised) ./src/main/drivers/pin_pull_up_down.c
%% (optimised) ./src/main/drivers/resource.c
%% (speed optimised) ./src/main/drivers/rcc.c
%% (speed optimised) ./src/main/drivers/serial.c
%% (size optimised) ./src/main/drivers/serial_pinconfig.c
%% (speed optimised) ./src/main/drivers/serial_uart.c
%% (size optimised) ./src/main/drivers/serial_uart_pinconfig.c
%% (optimised) ./src/main/drivers/sound_beeper.c
%% (optimised) ./src/main/drivers/stack_check.c
%% (speed optimised) ./src/main/drivers/system.c
%% (optimised) ./src/main/drivers/timer_common.c
%% (optimised) ./src/main/drivers/transponder_ir_arcitimer.c
%% (optimised) ./src/main/drivers/transponder_ir_ilap.c
%% (optimised) ./src/main/drivers/transponder_ir_erlt.c
%% (size optimised) ./src/main/fc/board_info.c
%% (optimised) ./src/main/fc/dispatch.c
%% (optimised) ./src/main/fc/hardfaults.c
%% (speed optimised) ./src/main/fc/tasks.c
%% (speed optimised) ./src/main/fc/runtime_config.c
%% (optimised) ./src/main/fc/stats.c
%% (optimised) ./src/main/io/beeper.c
%% (optimised) ./src/main/io/piniobox.c
%% (size optimised) ./src/main/io/serial.c
%% (optimised) ./src/main/io/smartaudio_protocol.c
%% (optimised) ./src/main/io/statusindicator.c
%% (optimised) ./src/main/io/tramp_protocol.c
%% (size optimised) ./src/main/io/transponder_ir.c
%% (size optimised) ./src/main/io/usb_cdc_hid.c
%% (optimised) ./src/main/io/usb_msc.c
%% (optimised) ./src/main/msp/msp.c
%% (optimised) ./src/main/msp/msp_box.c
%% (size optimised) ./src/main/msp/msp_serial.c
%% (speed optimised) ./src/main/scheduler/scheduler.c
%% (optimised) ./src/main/sensors/adcinternal.c
%% (optimised) ./src/main/sensors/battery.c
%% (optimised) ./src/main/sensors/current.c
%% (optimised) ./src/main/sensors/voltage.c
%% (optimised) ./src/main/target/config_helper.c
%% (size optimised) ./src/main/fc/init.c
%% (optimised) ./src/main/fc/controlrate_profile.c
%% (optimised) ./src/main/drivers/camera_control.c
%% (optimised) ./src/main/drivers/pwm_esc_detect.c
%% (speed optimised) ./src/main/drivers/pwm_output.c
%% (optimised) ./src/main/drivers/rx/rx_spi.c
%% (optimised) ./src/main/drivers/rx/rx_xn297.c
%% (optimised) ./src/main/drivers/rx/rx_pwm.c
%% (optimised) ./src/main/drivers/serial_softserial.c
%% (speed optimised) ./src/main/fc/core.c
%% (speed optimised) ./src/main/fc/rc.c
%% (optimised) ./src/main/fc/rc_adjustments.c
%% (speed optimised) ./src/main/fc/rc_controls.c
%% (optimised) ./src/main/fc/rc_modes.c
%% (optimised) ./src/main/flight/position.c
%% (optimised) ./src/main/flight/failsafe.c
%% (optimised) ./src/main/flight/gps_rescue.c
%% (speed optimised) ./src/main/flight/dyn_notch_filter.c
%% (speed optimised) ./src/main/flight/imu.c
%% (optimised) ./src/main/flight/feedforward.c
%% (speed optimised) ./src/main/flight/mixer.c
%% (size optimised) ./src/main/flight/mixer_init.c
%% (optimised) ./src/main/flight/mixer_tricopter.c
%% (speed optimised) ./src/main/flight/pid.c
%% (size optimised) ./src/main/flight/pid_init.c
%% (speed optimised) ./src/main/flight/rpm_filter.c
%% (optimised) ./src/main/flight/servos.c
%% (optimised) ./src/main/flight/servos_tricopter.c
%% (size optimised) ./src/main/io/serial_4way.c
%% (size optimised) ./src/main/io/serial_4way_avrootloader.c
%% (size optimised) ./src/main/io/serial_4way_stk500v2.c
%% (speed optimised) ./src/main/rx/ibus.c
%% (optimised) ./src/main/rx/jetiexbus.c
%% (optimised) ./src/main/rx/msp.c
%% (optimised) ./src/main/rx/pwm.c
%% (speed optimised) ./src/main/rx/frsky_crc.c
%% (speed optimised) ./src/main/rx/rx.c
%% (size optimised) ./src/main/rx/rx_bind.c
%% (speed optimised) ./src/main/rx/rx_spi.c
%% (optimised) ./src/main/rx/rx_spi_common.c
%% (speed optimised) ./src/main/rx/crsf.c
%% (optimised) ./src/main/rx/ghst.c
%% (speed optimised) ./src/main/rx/sbus.c
%% (speed optimised) ./src/main/rx/sbus_channels.c
%% (speed optimised) ./src/main/rx/spektrum.c
%% (speed optimised) ./src/main/rx/srxl2.c
%% (size optimised) ./src/main/io/spektrum_vtx_control.c
%% (optimised) ./src/main/io/spektrum_rssi.c
%% (speed optimised) ./src/main/rx/sumd.c
%% (optimised) ./src/main/rx/sumh.c
%% (speed optimised) ./src/main/rx/xbus.c
%% (speed optimised) ./src/main/rx/fport.c
%% (optimised) ./src/main/rx/msp_override.c
%% (speed optimised) ./src/main/sensors/acceleration.c
%% (size optimised) ./src/main/sensors/acceleration_init.c
%% (speed optimised) ./src/main/sensors/boardalignment.c
%% (optimised) ./src/main/sensors/compass.c
%% (speed optimised) ./src/main/sensors/gyro.c
%% (size optimised) ./src/main/sensors/gyro_init.c
%% (optimised) ./src/main/sensors/initialisation.c
%% (optimised) ./src/main/blackbox/blackbox.c
%% (optimised) ./src/main/blackbox/blackbox_encoding.c
%% (optimised) ./src/main/blackbox/blackbox_io.c
%% (size optimised) ./src/main/cms/cms.c
%% (size optimised) ./src/main/cms/cms_menu_blackbox.c
%% (size optimised) ./src/main/cms/cms_menu_failsafe.c
%% (size optimised) ./src/main/cms/cms_menu_firmware.c
%% (size optimised) ./src/main/cms/cms_menu_gps_rescue.c
%% (size optimised) ./src/main/cms/cms_menu_imu.c
%% (size optimised) ./src/main/cms/cms_menu_ledstrip.c
%% (size optimised) ./src/main/cms/cms_menu_main.c
%% (size optimised) ./src/main/cms/cms_menu_misc.c
%% (size optimised) ./src/main/cms/cms_menu_osd.c
%% (size optimised) ./src/main/cms/cms_menu_power.c
%% (size optimised) ./src/main/cms/cms_menu_saveexit.c
%% (size optimised) ./src/main/cms/cms_menu_vtx_common.c
%% (size optimised) ./src/main/cms/cms_menu_vtx_rtc6705.c
%% (size optimised) ./src/main/cms/cms_menu_vtx_smartaudio.c
%% (size optimised) ./src/main/cms/cms_menu_vtx_tramp.c
%% (size optimised) ./src/main/cms/cms_menu_persistent_stats.c
%% (size optimised) ./src/main/drivers/display_ug2864hsweg01.c
%% (size optimised) ./src/main/drivers/light_ws2811strip.c
%% (optimised) ./src/main/drivers/rangefinder/rangefinder_hcsr04.c
%% (optimised) ./src/main/drivers/rangefinder/rangefinder_lidartf.c
%% (size optimised) ./src/main/drivers/serial_escserial.c
%% (size optimised) ./src/main/drivers/vtx_common.c
%% (optimised) ./src/main/drivers/vtx_table.c
%% (size optimised) ./src/main/io/dashboard.c
%% (optimised) ./src/main/io/displayport_frsky_osd.c
%% (optimised) ./src/main/io/displayport_max7456.c
%% (optimised) ./src/main/io/displayport_msp.c
%% (optimised) ./src/main/io/displayport_oled.c
%% (optimised) ./src/main/io/displayport_srxl.c
%% (optimised) ./src/main/io/displayport_crsf.c
%% (optimised) ./src/main/io/displayport_hott.c
%% (optimised) ./src/main/io/frsky_osd.c
%% (optimised) ./src/main/io/rcdevice_cam.c
%% (optimised) ./src/main/io/rcdevice.c
%% (optimised) ./src/main/io/gps.c
%% (optimised) ./src/main/io/ledstrip.c
%% (optimised) ./src/main/io/pidaudio.c
%% (size optimised) ./src/main/osd/osd.c
%% (size optimised) ./src/main/osd/osd_elements.c
%% (size optimised) ./src/main/osd/osd_warnings.c
%% (optimised) ./src/main/sensors/barometer.c
%% (optimised) ./src/main/sensors/rangefinder.c
%% (optimised) ./src/main/telemetry/telemetry.c
%% (optimised) ./src/main/telemetry/crsf.c
%% (optimised) ./src/main/telemetry/ghst.c
%% (optimised) ./src/main/telemetry/srxl.c
%% (optimised) ./src/main/telemetry/frsky_hub.c
%% (optimised) ./src/main/telemetry/hott.c
%% (optimised) ./src/main/telemetry/jetiexbus.c
%% (optimised) ./src/main/telemetry/smartport.c
%% (optimised) ./src/main/telemetry/ltm.c
%% (optimised) ./src/main/telemetry/mavlink.c
%% (optimised) ./src/main/telemetry/msp_shared.c
%% (optimised) ./src/main/telemetry/ibus.c
%% (optimised) ./src/main/telemetry/ibus_shared.c
%% (optimised) ./src/main/sensors/esc_sensor.c
%% (size optimised) ./src/main/io/vtx.c
%% (size optimised) ./src/main/io/vtx_rtc6705.c
%% (size optimised) ./src/main/io/vtx_smartaudio.c
%% (size optimised) ./src/main/io/vtx_tramp.c
%% (size optimised) ./src/main/io/vtx_control.c
%% (size optimised) ./src/main/io/vtx_msp.c
%% (size optimised) ./src/main/cms/cms_menu_vtx_msp.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_cortex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_rcc.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dac_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_adc.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_flash.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_spi_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pcd.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_utils.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_dma2d.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rtc_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_spi.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_gpio.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_usart.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pwr_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rcc_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_uart.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_dma.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dma.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_exti.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_usb.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_tim.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_pcd_ex.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_spi.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_gpio.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_dac.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_i2c.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_rtc.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_ll_tim.c
%% (optimised) ./lib/main/STM32F7/Drivers/STM32F7xx_HAL_Driver/Src/stm32f7xx_hal_adc_ex.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_data.c
%% (optimised) ./lib/main/STM32F7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_scsi.c
%% (optimised) ./src/main/drivers/sdcard.c
%% (optimised) ./src/main/drivers/sdcard_spi.c
%% (optimised) ./src/main/drivers/sdcard_standard.c
%% (optimised) ./src/main/io/asyncfatfs/asyncfatfs.c
%% (optimised) ./src/main/io/asyncfatfs/fat_standard.c
%% (optimised) ./src/main/drivers/sdcard_sdio_baremetal.c
%% (optimised) ./src/main/vcp_hal/usbd_desc.c
%% (optimised) ./src/main/vcp_hal/usbd_conf_stm32f7xx.c
%% (optimised) ./src/main/vcp_hal/usbd_cdc_hid.c
%% (optimised) ./src/main/vcp_hal/usbd_cdc_interface.c
%% (size optimised) ./src/main/drivers/serial_usb_vcp.c
%% (optimised) ./src/main/drivers/usb_io.c
%% (size optimised) lib/main/google/olc/olc.c
Linking STM32F7X2
Memory region Used Size Region Size %age Used
ITCM_RAM: 15440 B 16 KB 94.24%
ITCM_FLASH: 0 GB 16 KB 0.00%
ITCM_FLASH_CONFIG: 0 GB 16 KB 0.00%
ITCM_FLASH1: 0 GB 480 KB 0.00%
AXIM_FLASH: 2812 B 10 KB 27.46%
AXIM_FLASH_CUSTOM_DEFAULTS: 8 B 6 KB 0.13%
AXIM_FLASH_CONFIG: 0 GB 16 KB 0.00%
AXIM_FLASH1: 437141 B 480 KB 88.94%
AXIM_FLASH_CUSTOM_DEFAULTS_EXTENDED: 0 GB 0 GB
DTCM_RAM: 34168 B 64 KB 52.14%
SRAM1: 73880 B 176 KB 40.99%
SRAM2: 0 GB 16 KB 0.00%
MEMORY_B1: 0 GB 0 GB
text data bss dec hex filename
432557 7404 100652 540613 83fc5 ./obj/main/betaflight_STM32F7X2.elf
Creating HEX ./obj/betaflight_4.4.0_STM32F7X2.hex
make[2]: Leaving directory '/home/daniel/Work/betaflight'
make[1]: Leaving directory '/home/daniel/Work/betaflight'
Building STM32F7X2 succeeded.
此时已经生成./obj/betaflight_4.4.0_STM32F7X2.hex固件,可以采用configurator进行烧录。
Step 7 目标固件清理
有的时候可能调整了配置,甚至改动了代码,不采用增量式编译(防止有些改动没有起到效果)而希望全新编译固件。
$ make STM32F7X2_clean
make -j TARGET=STM32F7X2 clean
make[1]: Entering directory '/home/daniel/Work/betaflight'
Cleaning STM32F7X2
rm -f ./obj/betaflight_4.4.0_STM32F7X2.bin ./obj/betaflight_4.4.0_STM32F7X2_56373817f.hex ./obj/betaflight_4.4.0_STM32F7X2.hex ./obj/main/betaflight_STM32F7X2.elf ./obj/main/STM32F7X2/startup_stm32f722xx.o ./obj/main/STM32F7X2/startup/system_stm32f7xx.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_mpu.o ./obj/main/STM32F7X2/drivers/adc_stm32f7xx.o ./obj/main/STM32F7X2/drivers/audio_stm32f7xx.o ./obj/main/STM32F7X2/drivers/bus_i2c_hal.o ./obj/main/STM32F7X2/drivers/bus_i2c_hal_init.o ./obj/main/STM32F7X2/drivers/bus_i2c_timing.o ./obj/main/STM32F7X2/drivers/dma_stm32f7xx.o ./obj/main/STM32F7X2/drivers/light_ws2811strip_hal.o ./obj/main/STM32F7X2/drivers/transponder_ir_io_hal.o ./obj/main/STM32F7X2/drivers/bus_spi_ll.o ./obj/main/STM32F7X2/drivers/persistent.o ./obj/main/STM32F7X2/drivers/dshot_bitbang.o ./obj/main/STM32F7X2/drivers/dshot_bitbang_decode.o ./obj/main/STM32F7X2/drivers/dshot_bitbang_ll.o ./obj/main/STM32F7X2/drivers/pwm_output_dshot_hal.o ./obj/main/STM32F7X2/drivers/pwm_output_dshot_shared.o ./obj/main/STM32F7X2/drivers/timer_hal.o ./obj/main/STM32F7X2/drivers/timer_stm32f7xx.o ./obj/main/STM32F7X2/drivers/system_stm32f7xx.o ./obj/main/STM32F7X2/drivers/serial_uart_hal.o ./obj/main/STM32F7X2/drivers/serial_uart_stm32f7xx.o ./obj/main/STM32F7X2/drivers/sdio_f7xx.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_lsm6dso_init.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_icm20689.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_mpu6050.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_lsm6dso.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_mpu3050.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_l3gd20.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_icm20649.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_mpu.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_fake.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_icm426xx.o ./obj/main/STM32F7X2/drivers/accgyro/gyro_sync.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_bmi270.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_mpu6500.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_mpu9250.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_bmi160.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_spi_mpu6000.o ./obj/main/STM32F7X2/drivers/accgyro/accgyro_mpu6500.o ./obj/main/STM32F7X2/./lib/main/BoschSensortec/BMI270-Sensor-API/bmi270_maximum_fifo.o ./obj/main/STM32F7X2/drivers/barometer/barometer_bmp085.o ./obj/main/STM32F7X2/drivers/barometer/barometer_ms5611.o ./obj/main/STM32F7X2/drivers/barometer/barometer_qmp6988.o ./obj/main/STM32F7X2/drivers/barometer/barometer_2smpb_02b.o ./obj/main/STM32F7X2/drivers/barometer/barometer_lps.o ./obj/main/STM32F7X2/drivers/barometer/barometer_dps310.o ./obj/main/STM32F7X2/drivers/barometer/barometer_fake.o ./obj/main/STM32F7X2/drivers/barometer/barometer_bmp388.o ./obj/main/STM32F7X2/drivers/barometer/barometer_bmp280.o ./obj/main/STM32F7X2/drivers/compass/compass_mpu925x_ak8963.o ./obj/main/STM32F7X2/drivers/compass/compass_lis3mdl.o ./obj/main/STM32F7X2/drivers/compass/compass_ak8963.o ./obj/main/STM32F7X2/drivers/compass/compass_ak8975.o ./obj/main/STM32F7X2/drivers/compass/compass_hmc5883l.o ./obj/main/STM32F7X2/drivers/compass/compass_fake.o ./obj/main/STM32F7X2/drivers/compass/compass_qmc5883l.o ./obj/main/STM32F7X2/drivers/max7456.o ./obj/main/STM32F7X2/drivers/vtx_rtc6705.o ./obj/main/STM32F7X2/drivers/vtx_rtc6705_soft_spi.o ./obj/main/STM32F7X2/rx/cc2500_common.o ./obj/main/STM32F7X2/rx/cc2500_frsky_shared.o ./obj/main/STM32F7X2/rx/cc2500_frsky_d.o ./obj/main/STM32F7X2/rx/cc2500_frsky_x.o ./obj/main/STM32F7X2/rx/cc2500_sfhss.o ./obj/main/STM32F7X2/rx/cc2500_redpine.o ./obj/main/STM32F7X2/rx/a7105_flysky.o ./obj/main/STM32F7X2/rx/cyrf6936_spektrum.o ./obj/main/STM32F7X2/drivers/rx/expresslrs_driver.o ./obj/main/STM32F7X2/rx/expresslrs.o ./obj/main/STM32F7X2/rx/expresslrs_common.o ./obj/main/STM32F7X2/rx/expresslrs_telemetry.o ./obj/main/STM32F7X2/drivers/rx/rx_cc2500.o ./obj/main/STM32F7X2/drivers/rx/rx_a7105.o ./obj/main/STM32F7X2/drivers/rx/rx_cyrf6936.o ./obj/main/STM32F7X2/drivers/rx/rx_sx127x.o ./obj/main/STM32F7X2/drivers/rx/rx_sx1280.o ./obj/main/STM32F7X2/./lib/main/CMSIS/DSP/Source/TransformFunctions/arm_bitreversal2.o ./obj/main/STM32F7X2/drivers/flash.o ./obj/main/STM32F7X2/drivers/flash_m25p16.o ./obj/main/STM32F7X2/drivers/flash_w25n01g.o ./obj/main/STM32F7X2/drivers/flash_w25q128fv.o ./obj/main/STM32F7X2/drivers/flash_w25m.o ./obj/main/STM32F7X2/io/flashfs.o ./obj/main/STM32F7X2/drivers/usb_msc_common.o ./obj/main/STM32F7X2/drivers/usb_msc_f7xx.o ./obj/main/STM32F7X2/msc/usbd_storage.o ./obj/main/STM32F7X2/msc/usbd_storage_sdio.o ./obj/main/STM32F7X2/msc/usbd_storage_sd_spi.o ./obj/main/STM32F7X2/msc/usbd_storage_emfat.o ./obj/main/STM32F7X2/msc/emfat.o ./obj/main/STM32F7X2/msc/emfat_file.o ./obj/main/STM32F7X2/build/build_config.o ./obj/main/STM32F7X2/build/debug.o ./obj/main/STM32F7X2/build/debug_pin.o ./obj/main/STM32F7X2/build/version.o ./obj/main/STM32F7X2/target.o ./obj/main/STM32F7X2/main.o ./obj/main/STM32F7X2/pg/rx_spi_cc2500.o ./obj/main/STM32F7X2/pg/motor.o ./obj/main/STM32F7X2/pg/rcdevice.o ./obj/main/STM32F7X2/pg/pg.o ./obj/main/STM32F7X2/pg/pin_pull_up_down.o ./obj/main/STM32F7X2/pg/bus_i2c.o ./obj/main/STM32F7X2/pg/bus_spi.o ./obj/main/STM32F7X2/pg/vcd.o ./obj/main/STM32F7X2/pg/dyn_notch.o ./obj/main/STM32F7X2/pg/pinio.o ./obj/main/STM32F7X2/pg/beeper_dev.o ./obj/main/STM32F7X2/pg/rpm_filter.o ./obj/main/STM32F7X2/pg/vtx_io.o ./obj/main/STM32F7X2/pg/board.o ./obj/main/STM32F7X2/pg/rx.o ./obj/main/STM32F7X2/pg/scheduler.o ./obj/main/STM32F7X2/pg/adc.o ./obj/main/STM32F7X2/pg/dashboard.o ./obj/main/STM32F7X2/pg/displayport_profiles.o ./obj/main/STM32F7X2/pg/rx_spi.o ./obj/main/STM32F7X2/pg/timerup.o ./obj/main/STM32F7X2/pg/gps.o ./obj/main/STM32F7X2/pg/vtx_table.o ./obj/main/STM32F7X2/pg/gps_rescue.o ./obj/main/STM32F7X2/pg/flash.o ./obj/main/STM32F7X2/pg/rx_pwm.o ./obj/main/STM32F7X2/pg/mco.o ./obj/main/STM32F7X2/pg/beeper.o ./obj/main/STM32F7X2/pg/usb.o ./obj/main/STM32F7X2/pg/bus_quadspi.o ./obj/main/STM32F7X2/pg/timerio.o ./obj/main/STM32F7X2/pg/max7456.o ./obj/main/STM32F7X2/pg/stats.o ./obj/main/STM32F7X2/pg/rx_spi_expresslrs.o ./obj/main/STM32F7X2/pg/piniobox.o ./obj/main/STM32F7X2/pg/sdcard.o ./obj/main/STM32F7X2/pg/serial_uart.o ./obj/main/STM32F7X2/pg/gyrodev.o ./obj/main/STM32F7X2/pg/msp.o ./obj/main/STM32F7X2/pg/sdio.o ./obj/main/STM32F7X2/common/maths.o ./obj/main/STM32F7X2/common/bitarray.o ./obj/main/STM32F7X2/common/strtol.o ./obj/main/STM32F7X2/common/crc.o ./obj/main/STM32F7X2/common/huffman.o ./obj/main/STM32F7X2/common/uvarint.o ./obj/main/STM32F7X2/common/time.o ./obj/main/STM32F7X2/common/sdft.o ./obj/main/STM32F7X2/common/typeconversion.o ./obj/main/STM32F7X2/common/string_light.o ./obj/main/STM32F7X2/common/huffman_table.o ./obj/main/STM32F7X2/common/encoding.o ./obj/main/STM32F7X2/common/printf_serial.o ./obj/main/STM32F7X2/common/filter.o ./obj/main/STM32F7X2/common/sensor_alignment.o ./obj/main/STM32F7X2/common/explog_approx.o ./obj/main/STM32F7X2/common/gps_conversion.o ./obj/main/STM32F7X2/common/streambuf.o ./obj/main/STM32F7X2/common/printf.o ./obj/main/STM32F7X2/common/colorconversion.o ./obj/main/STM32F7X2/config/config_eeprom.o ./obj/main/STM32F7X2/config/simplified_tuning.o ./obj/main/STM32F7X2/config/config.o ./obj/main/STM32F7X2/config/config_streamer.o ./obj/main/STM32F7X2/config/feature.o ./obj/main/STM32F7X2/cli/cli.o ./obj/main/STM32F7X2/cli/settings.o ./obj/main/STM32F7X2/config/config.o ./obj/main/STM32F7X2/drivers/adc.o ./obj/main/STM32F7X2/drivers/dshot.o ./obj/main/STM32F7X2/drivers/dshot_dpwm.o ./obj/main/STM32F7X2/drivers/dshot_command.o ./obj/main/STM32F7X2/drivers/buf_writer.o ./obj/main/STM32F7X2/drivers/bus.o ./obj/main/STM32F7X2/drivers/bus_i2c_config.o ./obj/main/STM32F7X2/drivers/bus_i2c_busdev.o ./obj/main/STM32F7X2/drivers/bus_i2c_soft.o ./obj/main/STM32F7X2/drivers/bus_quadspi.o ./obj/main/STM32F7X2/drivers/bus_spi.o ./obj/main/STM32F7X2/drivers/bus_spi_config.o ./obj/main/STM32F7X2/drivers/bus_spi_pinconfig.o ./obj/main/STM32F7X2/drivers/buttons.o ./obj/main/STM32F7X2/drivers/display.o ./obj/main/STM32F7X2/drivers/display_canvas.o ./obj/main/STM32F7X2/drivers/dma_common.o ./obj/main/STM32F7X2/drivers/dma_reqmap.o ./obj/main/STM32F7X2/drivers/exti.o ./obj/main/STM32F7X2/drivers/io.o ./obj/main/STM32F7X2/drivers/light_led.o ./obj/main/STM32F7X2/drivers/mco.o ./obj/main/STM32F7X2/drivers/motor.o ./obj/main/STM32F7X2/drivers/pinio.o ./obj/main/STM32F7X2/drivers/pin_pull_up_down.o ./obj/main/STM32F7X2/drivers/resource.o ./obj/main/STM32F7X2/drivers/rcc.o ./obj/main/STM32F7X2/drivers/serial.o ./obj/main/STM32F7X2/drivers/serial_pinconfig.o ./obj/main/STM32F7X2/drivers/serial_uart.o ./obj/main/STM32F7X2/drivers/serial_uart_pinconfig.o ./obj/main/STM32F7X2/drivers/sound_beeper.o ./obj/main/STM32F7X2/drivers/stack_check.o ./obj/main/STM32F7X2/drivers/system.o ./obj/main/STM32F7X2/drivers/timer_common.o ./obj/main/STM32F7X2/drivers/transponder_ir_arcitimer.o ./obj/main/STM32F7X2/drivers/transponder_ir_ilap.o ./obj/main/STM32F7X2/drivers/transponder_ir_erlt.o ./obj/main/STM32F7X2/fc/board_info.o ./obj/main/STM32F7X2/fc/dispatch.o ./obj/main/STM32F7X2/fc/hardfaults.o ./obj/main/STM32F7X2/fc/tasks.o ./obj/main/STM32F7X2/fc/runtime_config.o ./obj/main/STM32F7X2/fc/stats.o ./obj/main/STM32F7X2/io/beeper.o ./obj/main/STM32F7X2/io/piniobox.o ./obj/main/STM32F7X2/io/serial.o ./obj/main/STM32F7X2/io/smartaudio_protocol.o ./obj/main/STM32F7X2/io/statusindicator.o ./obj/main/STM32F7X2/io/tramp_protocol.o ./obj/main/STM32F7X2/io/transponder_ir.o ./obj/main/STM32F7X2/io/usb_cdc_hid.o ./obj/main/STM32F7X2/io/usb_msc.o ./obj/main/STM32F7X2/msp/msp.o ./obj/main/STM32F7X2/msp/msp_box.o ./obj/main/STM32F7X2/msp/msp_serial.o ./obj/main/STM32F7X2/scheduler/scheduler.o ./obj/main/STM32F7X2/sensors/adcinternal.o ./obj/main/STM32F7X2/sensors/battery.o ./obj/main/STM32F7X2/sensors/current.o ./obj/main/STM32F7X2/sensors/voltage.o ./obj/main/STM32F7X2/target/config_helper.o ./obj/main/STM32F7X2/fc/init.o ./obj/main/STM32F7X2/fc/controlrate_profile.o ./obj/main/STM32F7X2/drivers/camera_control.o ./obj/main/STM32F7X2/drivers/accgyro/gyro_sync.o ./obj/main/STM32F7X2/drivers/pwm_esc_detect.o ./obj/main/STM32F7X2/drivers/pwm_output.o ./obj/main/STM32F7X2/drivers/rx/rx_spi.o ./obj/main/STM32F7X2/drivers/rx/rx_xn297.o ./obj/main/STM32F7X2/drivers/rx/rx_pwm.o ./obj/main/STM32F7X2/drivers/serial_softserial.o ./obj/main/STM32F7X2/fc/core.o ./obj/main/STM32F7X2/fc/rc.o ./obj/main/STM32F7X2/fc/rc_adjustments.o ./obj/main/STM32F7X2/fc/rc_controls.o ./obj/main/STM32F7X2/fc/rc_modes.o ./obj/main/STM32F7X2/flight/position.o ./obj/main/STM32F7X2/flight/failsafe.o ./obj/main/STM32F7X2/flight/gps_rescue.o ./obj/main/STM32F7X2/flight/dyn_notch_filter.o ./obj/main/STM32F7X2/flight/imu.o ./obj/main/STM32F7X2/flight/feedforward.o ./obj/main/STM32F7X2/flight/mixer.o ./obj/main/STM32F7X2/flight/mixer_init.o ./obj/main/STM32F7X2/flight/mixer_tricopter.o ./obj/main/STM32F7X2/flight/pid.o ./obj/main/STM32F7X2/flight/pid_init.o ./obj/main/STM32F7X2/flight/rpm_filter.o ./obj/main/STM32F7X2/flight/servos.o ./obj/main/STM32F7X2/flight/servos_tricopter.o ./obj/main/STM32F7X2/io/serial_4way.o ./obj/main/STM32F7X2/io/serial_4way_avrootloader.o ./obj/main/STM32F7X2/io/serial_4way_stk500v2.o ./obj/main/STM32F7X2/rx/ibus.o ./obj/main/STM32F7X2/rx/jetiexbus.o ./obj/main/STM32F7X2/rx/msp.o ./obj/main/STM32F7X2/rx/pwm.o ./obj/main/STM32F7X2/rx/frsky_crc.o ./obj/main/STM32F7X2/rx/rx.o ./obj/main/STM32F7X2/rx/rx_bind.o ./obj/main/STM32F7X2/rx/rx_spi.o ./obj/main/STM32F7X2/rx/rx_spi_common.o ./obj/main/STM32F7X2/rx/crsf.o ./obj/main/STM32F7X2/rx/ghst.o ./obj/main/STM32F7X2/rx/sbus.o ./obj/main/STM32F7X2/rx/sbus_channels.o ./obj/main/STM32F7X2/rx/spektrum.o ./obj/main/STM32F7X2/rx/srxl2.o ./obj/main/STM32F7X2/io/spektrum_vtx_control.o ./obj/main/STM32F7X2/io/spektrum_rssi.o ./obj/main/STM32F7X2/rx/sumd.o ./obj/main/STM32F7X2/rx/sumh.o ./obj/main/STM32F7X2/rx/xbus.o ./obj/main/STM32F7X2/rx/fport.o ./obj/main/STM32F7X2/rx/msp_override.o ./obj/main/STM32F7X2/sensors/acceleration.o ./obj/main/STM32F7X2/sensors/acceleration_init.o ./obj/main/STM32F7X2/sensors/boardalignment.o ./obj/main/STM32F7X2/sensors/compass.o ./obj/main/STM32F7X2/sensors/gyro.o ./obj/main/STM32F7X2/sensors/gyro_init.o ./obj/main/STM32F7X2/sensors/initialisation.o ./obj/main/STM32F7X2/blackbox/blackbox.o ./obj/main/STM32F7X2/blackbox/blackbox_encoding.o ./obj/main/STM32F7X2/blackbox/blackbox_io.o ./obj/main/STM32F7X2/cms/cms.o ./obj/main/STM32F7X2/cms/cms_menu_blackbox.o ./obj/main/STM32F7X2/cms/cms_menu_failsafe.o ./obj/main/STM32F7X2/cms/cms_menu_firmware.o ./obj/main/STM32F7X2/cms/cms_menu_gps_rescue.o ./obj/main/STM32F7X2/cms/cms_menu_imu.o ./obj/main/STM32F7X2/cms/cms_menu_ledstrip.o ./obj/main/STM32F7X2/cms/cms_menu_main.o ./obj/main/STM32F7X2/cms/cms_menu_misc.o ./obj/main/STM32F7X2/cms/cms_menu_osd.o ./obj/main/STM32F7X2/cms/cms_menu_power.o ./obj/main/STM32F7X2/cms/cms_menu_saveexit.o ./obj/main/STM32F7X2/cms/cms_menu_vtx_common.o ./obj/main/STM32F7X2/cms/cms_menu_vtx_rtc6705.o ./obj/main/STM32F7X2/cms/cms_menu_vtx_smartaudio.o ./obj/main/STM32F7X2/cms/cms_menu_vtx_tramp.o ./obj/main/STM32F7X2/cms/cms_menu_persistent_stats.o ./obj/main/STM32F7X2/drivers/display_ug2864hsweg01.o ./obj/main/STM32F7X2/drivers/light_ws2811strip.o ./obj/main/STM32F7X2/drivers/rangefinder/rangefinder_hcsr04.o ./obj/main/STM32F7X2/drivers/rangefinder/rangefinder_lidartf.o ./obj/main/STM32F7X2/drivers/serial_escserial.o ./obj/main/STM32F7X2/drivers/vtx_common.o ./obj/main/STM32F7X2/drivers/vtx_table.o ./obj/main/STM32F7X2/io/dashboard.o ./obj/main/STM32F7X2/io/displayport_frsky_osd.o ./obj/main/STM32F7X2/io/displayport_max7456.o ./obj/main/STM32F7X2/io/displayport_msp.o ./obj/main/STM32F7X2/io/displayport_oled.o ./obj/main/STM32F7X2/io/displayport_srxl.o ./obj/main/STM32F7X2/io/displayport_crsf.o ./obj/main/STM32F7X2/io/displayport_hott.o ./obj/main/STM32F7X2/io/frsky_osd.o ./obj/main/STM32F7X2/io/rcdevice_cam.o ./obj/main/STM32F7X2/io/rcdevice.o ./obj/main/STM32F7X2/io/gps.o ./obj/main/STM32F7X2/io/ledstrip.o ./obj/main/STM32F7X2/io/pidaudio.o ./obj/main/STM32F7X2/osd/osd.o ./obj/main/STM32F7X2/osd/osd_elements.o ./obj/main/STM32F7X2/osd/osd_warnings.o ./obj/main/STM32F7X2/sensors/barometer.o ./obj/main/STM32F7X2/sensors/rangefinder.o ./obj/main/STM32F7X2/telemetry/telemetry.o ./obj/main/STM32F7X2/telemetry/crsf.o ./obj/main/STM32F7X2/telemetry/ghst.o ./obj/main/STM32F7X2/telemetry/srxl.o ./obj/main/STM32F7X2/telemetry/frsky_hub.o ./obj/main/STM32F7X2/telemetry/hott.o ./obj/main/STM32F7X2/telemetry/jetiexbus.o ./obj/main/STM32F7X2/telemetry/smartport.o ./obj/main/STM32F7X2/telemetry/ltm.o ./obj/main/STM32F7X2/telemetry/mavlink.o ./obj/main/STM32F7X2/telemetry/msp_shared.o ./obj/main/STM32F7X2/telemetry/ibus.o ./obj/main/STM32F7X2/telemetry/ibus_shared.o ./obj/main/STM32F7X2/sensors/esc_sensor.o ./obj/main/STM32F7X2/io/vtx.o ./obj/main/STM32F7X2/io/vtx_rtc6705.o ./obj/main/STM32F7X2/io/vtx_smartaudio.o ./obj/main/STM32F7X2/io/vtx_tramp.o ./obj/main/STM32F7X2/io/vtx_control.o ./obj/main/STM32F7X2/io/vtx_msp.o ./obj/main/STM32F7X2/cms/cms_menu_vtx_msp.o ./obj/main/STM32F7X2/stm32f7xx_hal_cortex.o ./obj/main/STM32F7X2/stm32f7xx_ll_rcc.o ./obj/main/STM32F7X2/stm32f7xx_hal_uart_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_dac_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal.o ./obj/main/STM32F7X2/stm32f7xx_hal_adc.o ./obj/main/STM32F7X2/stm32f7xx_hal_pwr.o ./obj/main/STM32F7X2/stm32f7xx_hal_flash_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_flash.o ./obj/main/STM32F7X2/stm32f7xx_hal_spi_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_tim_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_pcd.o ./obj/main/STM32F7X2/stm32f7xx_hal_dma_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_rcc.o ./obj/main/STM32F7X2/stm32f7xx_ll_utils.o ./obj/main/STM32F7X2/stm32f7xx_ll_dma2d.o ./obj/main/STM32F7X2/stm32f7xx_hal_rtc_ex.o ./obj/main/STM32F7X2/stm32f7xx_ll_spi.o ./obj/main/STM32F7X2/stm32f7xx_ll_gpio.o ./obj/main/STM32F7X2/stm32f7xx_hal_i2c_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_usart.o ./obj/main/STM32F7X2/stm32f7xx_hal_pwr_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_rcc_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_uart.o ./obj/main/STM32F7X2/stm32f7xx_ll_dma.o ./obj/main/STM32F7X2/stm32f7xx_hal_dma.o ./obj/main/STM32F7X2/stm32f7xx_hal_exti.o ./obj/main/STM32F7X2/stm32f7xx_ll_usb.o ./obj/main/STM32F7X2/stm32f7xx_hal_tim.o ./obj/main/STM32F7X2/stm32f7xx_hal_pcd_ex.o ./obj/main/STM32F7X2/stm32f7xx_hal_spi.o ./obj/main/STM32F7X2/stm32f7xx_hal_gpio.o ./obj/main/STM32F7X2/stm32f7xx_hal_dac.o ./obj/main/STM32F7X2/stm32f7xx_hal_i2c.o ./obj/main/STM32F7X2/stm32f7xx_hal_rtc.o ./obj/main/STM32F7X2/stm32f7xx_ll_tim.o ./obj/main/STM32F7X2/stm32f7xx_hal_adc_ex.o ./obj/main/STM32F7X2/usbd_core.o ./obj/main/STM32F7X2/usbd_ctlreq.o ./obj/main/STM32F7X2/usbd_ioreq.o ./obj/main/STM32F7X2/usbd_cdc.o ./obj/main/STM32F7X2/usbd_hid.o ./obj/main/STM32F7X2/usbd_msc.o ./obj/main/STM32F7X2/usbd_msc_bot.o ./obj/main/STM32F7X2/usbd_msc_data.o ./obj/main/STM32F7X2/usbd_msc_scsi.o ./obj/main/STM32F7X2/drivers/sdcard.o ./obj/main/STM32F7X2/drivers/sdcard_spi.o ./obj/main/STM32F7X2/drivers/sdcard_standard.o ./obj/main/STM32F7X2/io/asyncfatfs/asyncfatfs.o ./obj/main/STM32F7X2/io/asyncfatfs/fat_standard.o ./obj/main/STM32F7X2/drivers/usb_msc_common.o ./obj/main/STM32F7X2/drivers/usb_msc_f7xx.o ./obj/main/STM32F7X2/msc/usbd_storage.o ./obj/main/STM32F7X2/msc/usbd_storage_sdio.o ./obj/main/STM32F7X2/msc/usbd_storage_sd_spi.o ./obj/main/STM32F7X2/msc/usbd_storage_emfat.o ./obj/main/STM32F7X2/msc/emfat.o ./obj/main/STM32F7X2/msc/emfat_file.o ./obj/main/STM32F7X2/drivers/sdcard.o ./obj/main/STM32F7X2/drivers/sdcard_sdio_baremetal.o ./obj/main/STM32F7X2/drivers/sdcard_standard.o ./obj/main/STM32F7X2/io/asyncfatfs/asyncfatfs.o ./obj/main/STM32F7X2/io/asyncfatfs/fat_standard.o ./obj/main/STM32F7X2/drivers/usb_msc_common.o ./obj/main/STM32F7X2/drivers/usb_msc_f7xx.o ./obj/main/STM32F7X2/msc/usbd_storage.o ./obj/main/STM32F7X2/msc/usbd_storage_sdio.o ./obj/main/STM32F7X2/msc/usbd_storage_sd_spi.o ./obj/main/STM32F7X2/msc/usbd_storage_emfat.o ./obj/main/STM32F7X2/msc/emfat.o ./obj/main/STM32F7X2/msc/emfat_file.o ./obj/main/STM32F7X2/vcp_hal/usbd_desc.o ./obj/main/STM32F7X2/vcp_hal/usbd_conf_stm32f7xx.o ./obj/main/STM32F7X2/vcp_hal/usbd_cdc_hid.o ./obj/main/STM32F7X2/vcp_hal/usbd_cdc_interface.o ./obj/main/STM32F7X2/drivers/serial_usb_vcp.o ./obj/main/STM32F7X2/drivers/usb_io.o ./obj/main/STM32F7X2/./lib/main/google/olc/olc.o ./obj/main/betaflight_STM32F7X2.map ./obj/main/betaflight_STM32F7X2.lst ./obj/betaflight_4.4.0_STM32F7X2.dfu
rm -rf ./obj/main/STM32F7X2
Cleaning STM32F7X2 succeeded.
make[1]: Leaving directory '/home/daniel/Work/betaflight'
当clean结束后,再进行固件编译。