Drop ambiguous firmware/cyd; PlatformIO env and export paths are size-explicit (cyd_28r / cyd_35r).
69 lines
2.2 KiB
PowerShell
69 lines
2.2 KiB
PowerShell
# Export firmware bins from PlatformIO build.
|
|
# 2.8": .\firmware\export_from_build.ps1 -Env cyd_28r -> firmware/cyd_28r
|
|
# 3.5": .\firmware\export_from_build.ps1 -Env cyd_35r -> firmware/cyd_35r
|
|
# No bare "cyd" directory — board size is always in the name.
|
|
|
|
param(
|
|
[switch]$SkipBuild,
|
|
[ValidateSet("cyd_28r", "cyd_35r")]
|
|
[string]$Env = "cyd_28r"
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$root = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Path)
|
|
Set-Location $root
|
|
|
|
$env:Path = "C:\Users\dsx2016\AppData\Local\Programs\Python\Python312\Scripts;" + $env:Path
|
|
|
|
if (-not $SkipBuild) {
|
|
pio run -e $Env
|
|
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
|
}
|
|
|
|
$src = Join-Path $root (".pio\build\" + $Env)
|
|
if ($Env -eq "cyd_35r") {
|
|
$dstName = "cyd_35r"
|
|
$boardLine = "board: ESP32-3248S035 (ST7796)"
|
|
} else {
|
|
$dstName = "cyd_28r"
|
|
$boardLine = "board: ESP32-2432S028R (ILI9341)"
|
|
}
|
|
$dst = Join-Path $root ("firmware\" + $dstName)
|
|
New-Item -ItemType Directory -Force -Path $dst | Out-Null
|
|
|
|
foreach ($f in @("bootloader.bin", "partitions.bin", "firmware.bin")) {
|
|
$p = Join-Path $src $f
|
|
if (-not (Test-Path $p)) { Write-Error "Missing build artifact: $p — build with: pio run -e $Env" }
|
|
Copy-Item $p $dst -Force
|
|
}
|
|
|
|
$bootApp = Join-Path $env:USERPROFILE ".platformio\packages\framework-arduinoespressif32\tools\partitions\boot_app0.bin"
|
|
if (-not (Test-Path $bootApp)) {
|
|
Write-Error "boot_app0.bin not found under PlatformIO packages"
|
|
}
|
|
Copy-Item $bootApp (Join-Path $dst "boot_app0.bin") -Force
|
|
|
|
$git = ""
|
|
try { $git = (git -C $root rev-parse --short HEAD).Trim() } catch { $git = "unknown" }
|
|
$date = Get-Date -Format "yyyy-MM-dd"
|
|
$hashes = Get-ChildItem (Join-Path $dst "*.bin") | Get-FileHash -Algorithm SHA256
|
|
$lines = @(
|
|
"name: CYD serverinfotest ($dstName)",
|
|
"git: $git",
|
|
"date: $date",
|
|
$boardLine,
|
|
"flash_size: 4MB",
|
|
"offsets:",
|
|
" 0x1000 bootloader.bin",
|
|
" 0x8000 partitions.bin",
|
|
" 0xe000 boot_app0.bin",
|
|
" 0x10000 firmware.bin",
|
|
"sha256:"
|
|
)
|
|
foreach ($h in $hashes) {
|
|
$lines += (" {0,-15} {1}" -f (Split-Path $h.Path -Leaf), $h.Hash)
|
|
}
|
|
$lines | Set-Content -Encoding utf8 (Join-Path $dst "VERSION.txt")
|
|
|
|
Write-Host "Exported -> $dst (env=$Env git=$git)"
|