Skip to content

Conversation

alexcekay
Copy link
Member

Solved Problem

We are running out of FLASH, one of the reasons is that the generic v6x target contains Auterion specific features that are not needed by other users.

Solution

  • Move Auterion specific features to an own Auterion target

Changelog Entry

For release notes:

Feature Add Auterion v6x board

Copy link

github-actions bot commented Oct 8, 2025

🔎 FLASH Analysis

px4_fmu-v5x [Total VM Diff: 200 byte (0.01 %)]
    FILE SIZE        VM SIZE    
--------------  -------------- 
+0.0%    +184  +0.0%    +184    .text
  +0.0%     +56  +0.0%     +56    g_cromfs_image
  +4.7%     +20  +4.7%     +20    param_reset_specific
  +0.1%     +16  +0.1%     +16    px4::parameters
   +12%     +16   +12%     +16    px4::wq_configurations::lp_default
 -99.7%     +12 -99.7%     +12    [5 Others]
  +5.9%      +4  +5.9%      +4    ConstLayer::containedAsBitset()
   +33%      +4   +33%      +4    ConstLayer::contains()
   +17%      +4   +17%      +4    ConstLayer::get()
  +2.6%      +4  +2.6%      +4    param_find_internal()
   +25%      +4   +25%      +4    param_for_index
  +4.8%      +4  +4.8%      +4    param_for_used_index
  +1.8%      +4  +1.8%      +4    param_foreach
  +3.7%      +4  +3.7%      +4    param_get_used_index
  +1.3%      +4  +1.3%      +4    param_hash_check
  +2.1%      +4  +2.1%      +4    param_import_callback()
  +1.3%      +4  +1.3%      +4    param_load
  +0.9%      +4  +0.9%      +4    param_reset_excludes
  +1.2%      +4  +1.2%      +4    param_reset_internal()
  +7.7%      +4  +7.7%      +4    param_set_used
   +20%      +4   +20%      +4    param_type
  +8.3%      +4  +8.3%      +4    param_used
+0.1%     +16  +0.1%     +16    .ramfunc
  +1.7%      +4  +1.7%      +4    param_get
  +1.4%      +4  +1.4%      +4    param_get_default_value
   +33%      +4   +33%      +4    param_get_index
  +9.1%      +4  +9.1%      +4    param_get_system_default_value
+0.0%     +55  [ = ]       0    .debug_abbrev
+0.0%     +20  [ = ]       0    .debug_frame
+0.0% +3.10Ki  [ = ]       0    .debug_info
+0.0%     +93  [ = ]       0    .debug_line
   +17%      +1  [ = ]       0    [Unmapped]
  +0.0%     +92  [ = ]       0    [section .debug_line]
+0.0%     +90  [ = ]       0    .debug_loclists
+0.0%     +13  [ = ]       0    .debug_rnglists
+0.0%     +49  [ = ]       0    .debug_str
-2.2%    -200  [ = ]       0    [Unmapped]
+0.0% +3.41Ki  +0.0%    +200    TOTAL

px4_fmu-v6x [Total VM Diff: -8096 byte (-0.39 %)]
    FILE SIZE        VM SIZE    
--------------  -------------- 
-0.6% -11.6Ki  [ = ]       0    .debug_abbrev
-0.6% -1.06Ki  [ = ]       0    .debug_aranges
-0.6% -2.96Ki  [ = ]       0    .debug_frame
-0.4%  -108Ki  [ = ]       0    .debug_info
-0.4% -21.8Ki  [ = ]       0    .debug_line
   +20%      +1  [ = ]       0    [Unmapped]
  -0.4% -21.8Ki  [ = ]       0    [section .debug_line]
-0.3% -11.2Ki  [ = ]       0    .debug_loclists
-0.4% -2.10Ki  [ = ]       0    .debug_rnglists
  +100%      +1  [ = ]       0    [Unmapped]
  -0.4% -2.10Ki  [ = ]       0    [section .debug_rnglists]
-0.3% -9.52Ki  [ = ]       0    .debug_str
-1.3%      -3  [ = ]       0    .shstrtab
-0.6% -4.13Ki  [ = ]       0    .strtab
   +62%     +15  [ = ]       0    (anonymous namespace)::gLED
  [DEL]     -30  [ = ]       0    ADC::close_gpio_devices()
  [DEL]     -29  [ = ]       0    ADC::open_gpio_devices()
  [DEL]     -27  [ = ]       0    ADC::read_gpio_value()
  [DEL]     -10  [ = ]       0    CSWTCH.64
  [DEL]     -10  [ = ]       0    CSWTCH.68
  [DEL]     -10  [ = ]       0    DEVID
  -2.1%     -35  [ = ]       0    I2CSPIDriver<>::Run()
  -2.3%    -177  [ = ]       0    I2CSPIDriver<>::~I2CSPIDriver()
  [DEL]     -14  [ = ]       0    MCP23009
  [DEL]     -76  [ = ]       0    MCP23009::MCP23009()
  [DEL]     -23  [ = ]       0    MCP23009::RunImpl()
  [DEL]     -37  [ = ]       0    MCP23009::configure()
  [DEL]     -72  [ = ]       0    MCP23009::exit_and_cleanup()
  [DEL]     -22  [ = ]       0    MCP23009::init()
  [DEL]     -25  [ = ]       0    MCP23009::init_uorb()
  [DEL]     -50  [ = ]       0    MCP23009::instantiate()
  [DEL]     -64  [ = ]       0    MCP23009::print_status()
  [DEL]     -28  [ = ]       0    MCP23009::print_usage()
  [DEL]     -21  [ = ]       0    MCP23009::probe()
 -106.1% -3.41Ki  [ = ]       0    [65 Others]
-0.7% -4.27Ki  [ = ]       0    .symtab
  [DEL]     -32  [ = ]       0    ADC::close_gpio_devices()
   +33%     +16  [ = ]       0    ADC::init()
  [DEL]     -48  [ = ]       0    ADC::open_gpio_devices()
  [DEL]     -16  [ = ]       0    ADC::read_gpio_value()
 -66.7%     -32  [ = ]       0    ADC::update_adc_report()
  [DEL]     -32  [ = ]       0    CSWTCH.64
  [DEL]     -32  [ = ]       0    CSWTCH.68
  [DEL]     -48  [ = ]       0    DEVID
  -3.2%     -32  [ = ]       0    I2CSPIDriver<>::Run()
  -2.3%    -144  [ = ]       0    I2CSPIDriver<>::~I2CSPIDriver()
  [DEL]     -48  [ = ]       0    MCP23009
  [DEL]     -64  [ = ]       0    MCP23009::MCP23009()
  [DEL]     -32  [ = ]       0    MCP23009::RunImpl()
  [DEL]     -16  [ = ]       0    MCP23009::configure()
  [DEL]     -64  [ = ]       0    MCP23009::exit_and_cleanup()
  [DEL]     -64  [ = ]       0    MCP23009::init()
  [DEL]     -48  [ = ]       0    MCP23009::init_uorb()
  [DEL]     -48  [ = ]       0    MCP23009::instantiate()
  [DEL]     -64  [ = ]       0    MCP23009::print_status()
  [DEL]     -48  [ = ]       0    MCP23009::print_usage()
 -108.2% -3.39Ki  [ = ]       0    [73 Others]
-12.3%    -640  [ = ]       0    [Unmapped]
-2.1%      -8  -2.1%      -8    .init_section
[ = ]       0  -0.1%     -96    .bss
  [ = ]       0  +5.0%      +4    g_bbsram
  [ = ]       0  [DEL]      -4    DEVID
  [ = ]       0  -4.8%      -5    [section .bss]
  [ = ]       0  -2.0%      -8    ModuleBase<>::_object
  [ = ]       0  [DEL]      -8    toGpioConfig
  [ = ]       0  [DEL]      -8    toGpioOut
  [ = ]       0  [DEL]      -8    toGpioRequest
  [ = ]       0 -91.7%     -11    _bidirectional
  [ = ]       0  [DEL]     -48    fromGpioIn
-8.5%    -448  -8.5%    -448    .data
  +133%      +4  +133%      +4    MavlinkMissionManager::_mission_dataman_id
  -2.0%      -4  -2.0%      -4    ModuleBase<>::_task_id
  [DEL]    -448  [DEL]    -448    _gpio
-0.4% -7.37Ki  -0.4% -7.37Ki    .text
  [DEL]    -152  [DEL]    -152    PowerMonitorSelectorAuterion::eeprom_read_block()
  [DEL]    -152  [DEL]    -152    PowerMonitorSelectorAuterion::try_eeprom_start()
  [DEL]    -152  [DEL]    -152    mcp23009_register_gpios()
  [DEL]    -164  [DEL]    -164    PowerMonitorSelectorAuterion::PowerMonitorSelectorAuterion()
  -2.0%    -168  -2.0%    -168    ModuleBase<>::stop_command()
  [DEL]    -168  [DEL]    -168    PowerMonitorSelectorAuterion::ina226_probe()
  [DEL]    -168  [DEL]    -168    PowerMonitorSelectorAuterion::start_pm()
  [DEL]    -172  [DEL]    -172    MCP23009::print_usage()
  [DEL]    -172  [DEL]    -172    _GLOBAL__sub_I__Z23mcp23009_register_gpioshhi
  [DEL]    -176  [DEL]    -176    MCP23009
  [DEL]    -180  [DEL]    -180    MCP23009::~MCP23009()
  [DEL]    -194  [DEL]    -194    MCP23009::RunImpl()
  [DEL]    -220  [DEL]    -220    PowerMonitorSelectorAuterion::eeprom_read()
 -36.0%    -268 -36.0%    -268    gpio_main
  -2.1%    -288  -2.1%    -288    ModuleBase<>::main()
  [DEL]    -312  [DEL]    -312    gpio_ioctl
  [DEL]    -332  [DEL]    -332    MCP23009::MCP23009()
  [DEL]    -336  [DEL]    -336    mcp23009_main
  -0.3%    -408  -0.3%    -408    [section .text]
  -0.4%    -572  -0.4%    -572    g_cromfs_image
 -108.4% -2.72Ki -108.4% -2.72Ki    [76 Others]
-0.4%  -185Ki  -0.4% -7.91Ki    TOTAL

Updated: 2025-10-14T16:49:05

dagar
dagar previously approved these changes Oct 8, 2025
Copy link
Member

@dagar dagar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I strongly agree with this change, we should make it easier to maintain all these very similar boards rather than runtime detection.

@AlexKlimaj
Copy link
Member

This was part of the reason I made my own ARK target in the past. So much easier to maintain than one binary.

dakejahl
dakejahl previously approved these changes Oct 8, 2025
mrpollo
mrpollo previously approved these changes Oct 8, 2025
Copy link
Contributor

@mrpollo mrpollo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's missing here?

@alexcekay alexcekay dismissed stale reviews from mrpollo and dakejahl via 26eb690 October 9, 2025 16:20
@niklaut
Copy link
Contributor

niklaut commented Oct 10, 2025

Note to self: The bootloader pin is USB VBUS, I need to check why the bootloader actually still works now that I disabled USBDEV.

niklaut
niklaut previously approved these changes Oct 13, 2025
Copy link
Contributor

@niklaut niklaut left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested the bootloader changes without USB and using only the BOARD_FORCE_BL_PIN like on FMUv6s.

dakejahl
dakejahl previously approved these changes Oct 13, 2025
@dakejahl
Copy link
Contributor

Let's get this merged so we can free up some flash and fix our CI

niklaut
niklaut previously approved these changes Oct 14, 2025
@alexcekay alexcekay marked this pull request as ready for review October 14, 2025 16:42
@alexcekay alexcekay requested a review from niklaut October 14, 2025 16:42
@alexcekay alexcekay merged commit 376f52f into main Oct 14, 2025
69 of 71 checks passed
@alexcekay alexcekay deleted the pr-auterion-v6x branch October 14, 2025 17:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants