mirror of
https://github.com/meshtastic/firmware.git
synced 2026-09-20 13:32:56 -04:00
develop has been over the 746 000 line since #11826 (748 088 on the
CI runner at 3468af94a), so the size-budget-gate fails on every PR that
does not itself shed 2 KB, and the queue behind it cannot land. 6 KB
covers the current overage plus the pending NodeDB/NodeInfo work
(+584) and one or two of the mid-sized branches, while staying 47 KB
inside the 0xEA000 warm-region guard that is the real wall (image ends
at 0xDCA38 today). Raised deliberately, per the file's own rule.
25 lines
1.1 KiB
JSON
25 lines
1.1 KiB
JSON
{
|
|
"_comment": [
|
|
"Per-environment static-size budgets, enforced by the size-budget-gate CI job",
|
|
"via: bin/size_report.py <sizes.json> --budgets bin/ram_budgets.json --enforce-budgets",
|
|
"Only environments listed here are gated, and only for the metrics they list.",
|
|
"",
|
|
"ram_bytes = static RAM (.data + .bss from the ELF, emitted into the .mt.json",
|
|
"manifest by bin/platformio-custom.py). On nRF52840 the heap arena is the linker",
|
|
"gap after .bss, so every byte of static RAM growth shrinks the usable heap 1:1;",
|
|
"that is how the 2.8.0 heap regression shipped without CI noticing.",
|
|
"",
|
|
"flash_bytes = size of the main firmware image (.bin). The rak4631 app region is",
|
|
"0x27000..0xEA000 = 798,720 bytes, and the image must also stay clear of the",
|
|
"warm-store record-ring guard (extra_scripts/nrf52_warm_region.py).",
|
|
"",
|
|
"Budgets are raised DELIBERATELY, never automatically: if your change needs more",
|
|
"headroom, bump the limit here in the same PR and justify the increase in the PR",
|
|
"description."
|
|
],
|
|
"rak4631": {
|
|
"ram_bytes": 108000,
|
|
"flash_bytes": 752000
|
|
}
|
|
}
|