CMakeLists.txt: generate firmware.map via -Wl,-Map.
CI build job:
- Writes per-section size table to the Gitea job summary
(visible in the Actions UI after each run).
- Uploads firmware.hex and firmware.map as a downloadable artifact
named firmware-<sha>.
CI docs job:
- On push to main, force-pushes docs/html/ as an orphan commit to
the gh-pages branch. Gitea Pages must be enabled in site admin
for the HTML to be served; the branch is always available via the
repo file browser regardless.