PASS panel runtime: levels/hold/bounce/ADC rejection/fault/gap/wrap/all65536 ADC values
PASS: stable none/plus/minus/both, debounce transitions, invalid ADC immediate rejection, gap requalification, clock wrap, exhaustive uint16 classification
PASS: four-level bounds, power edge, >5s single learning request, unavailable-resource rejection without retry, fault/busy no autorestart, hold wrap, explicit qualified-duty table
PASS: target fan output lock rejects every power-on and nonzero-duty request.
PASS: fan policy, tach stall trip, startup grace, shutdown retries and unconfirmed-off reporting.
PASS delayed SCL fall: no SDA transition before observed low
PASS wire I2C:2176 address/length waveforms, all256 byte patterns,18 ACK failures, stuck lines/timer/deadline/wrap
PASS actual GPIO binding: onlyPA6/PA7 open-drain modes changed; TIM14 clock/config guard; stalled register counter exits
PASS display: all256 percentages, freshness/wrap/qualification, four status frames; independent GDDRAM model and80 transfer failures
PASS negative control: A110 lacks physical fall guard
PASS wire I2C:2176 address/length waveforms, all256 byte patterns,18 ACK failures, stuck lines/timer/deadline/wrap
PASS read wire model:2176 address/length cases,256 payload patterns,3 NACK positions,final NACK,stretch/fall/wrap/deadline/stall,failed buffer clear
Memory region         Used Size  Region Size  %age Used
           FLASH:        8464 B        32 KB     25.83%
             RAM:        2560 B         8 KB     31.25%
   text	   data	    bss	    dec	    hex	filename
   8428	     36	   2524	  10988	   2aec	/Users/guman/Documents/Codex/2026-09-27/https-www-amazon-com-electric-drill/work/tri-product-continuation-2026-10-10.nosync/vacuum_pressure_read_A113/firmware/固件/vacuum_target/build/vacuum_control_g030f6.elf
{
  "status": "LINKED_IMAGE_STATIC_CHECK_PASS",
  "target": "STM32G030F6P6 / Cortex-M0+",
  "toolchain": "arm-none-eabi-gcc (GCC) 16.2.0",
  "flash_binary_bytes": 8464,
  "initial_sp": "0x20002000",
  "reset_vector": "0x080000cd",
  "linked_runtime_symbols": [
    "vacuum_fan_manager_init",
    "vacuum_fan_manager_step",
    "vacuum_output_lock_allows_power",
    "vacuum_output_lock_allows_duty",
    "vacuum_board_set_fan_power",
    "vacuum_board_set_fan_duty",
    "vacuum_board_init",
    "vacuum_board_sample",
    "vacuum_board_force_fan_disabled",
    "vacuum_vbus_count_to_mv",
    "vacuum_current_count_to_ma",
    "vpr_init",
    "vpr_step",
    "pk_step",
    "vui_step",
    "vacuum_board_read_panel",
    "vd_render",
    "vd_begin",
    "vd_service",
    "display_bus_init",
    "display_bus_write",
    "si_write",
    "display_bus_read_register",
    "si_read_register"
  ],
  "fan_policy_called_from_main": true,
  "panel_adc_and_runtime_bound_from_main": true,
  "panel_sample_interval_ms": 10,
  "display_runtime_bound_from_main": true,
  "display_gpio_pins": "PA6 SCL / PA7 SDA / open drain",
  "display_timer": "TIM14 nominal1MHz",
  "display_service_schedule_ms": 5,
  "display_frame_interval_ms": 500,
  "physical_display_validation": false,
  "pressure_read_called_from_main": true,
  "pressure_candidate_address": "0x58",
  "pressure_register_start": "0x04",
  "pressure_nominal_poll_interval_ms": 250,
  "pressure_measurement_qualified": false,
  "panel_debug_record_bytes": 44,
  "learning_resources_ready": false,
  "fan_power_and_pwm_callbacks_hard_locked_off": true,
  "entry_symbol": "main",
  "sha256_bin": "0e5e2d19c91b0b29391ae7c4bb6572eb54c86da31c7cf665100926965e76c439",
  "sha256_elf": "3db9636a0fc97dfd013255c568ea264bda9e1fa4830b4fdb9f53541a27df7de8",
  "physical_hardware_validation": false,
  "sensor_and_timer_runtime_enabled": true,
  "fan_power_output_enabled": false,
  "physical_gpio_levels_verified": false,
  "blower_profile_validated": false,
  "product_function_complete": false
}
