编译BetaFlight飞控AOCODARC-F7MINI固件的步骤详解

BetaFlight飞控AOCODARC-F7MINI固件编译

  • 1. 编译目标(AOCODARC-F7MINI)
  • 2. 编译步骤
  • Step 1 软件配置环境准备
  • Step 2 获取开源代码
  • Step 3 构建命令介绍
  • Step 4 构建命令准备
  • Step 5 厂家目标板查询
  • Step 6 目标固件编译
  • Step 7 目标固件清理
  • 3. 参考资料
  • 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结束后,再进行固件编译。

    3. 参考资料

    【1】Github BetaFlight

    物联沃分享整理
    物联沃-IOTWORD物联网 » 编译BetaFlight飞控AOCODARC-F7MINI固件的步骤详解

    发表评论