Files
uv-k5-ua1zbe-firmware/external/CMSIS_5/CMSIS/RTOS2/RTX/Library/build.py
ua1zbe a1206d6fd4 UA1ZBE Custom Firmware v1.0
Features:
- VFO mode with direct frequency input
- POCSAG decoder (512/1200 baud) with BCH(31,21) correction
- Full-screen Spectrum analyzer
- FM Radio receiver
- RSSI signal indicator overlay
- Custom boot splash (UA1ZBE / POCSAG pager / build date)

Architecture:
- app/mode.c — mode dispatcher (VFO/POCSAG/Spectrum/FM)
- app/boot_splash.c — 2-second boot splash
- app/pocsag/ — POCSAG decoder + BCH correction
- app/display_rssi.c — RSSI indicator
- main.c — entry point with custom init
- syscalls.c — bare-metal _sbrk stub

Build: arm-none-eabi-gcc -Os -flto -Wall -Werror -Wextra
Size: 57.9KB Flash / 3.6KB RAM

Controls:
- 0-9: Direct frequency input (VFO)
- SK2: POCSAG mode
- SK1: Spectrum analyzer
- 0: FM Radio
- EXIT: Return to VFO
- F/*: Toggle 512/1200 baud (in POCSAG)
2026-04-12 00:44:05 +03:00

51 lines
1.2 KiB
Python

#!/usr/bin/python3
# -*- coding: utf-8 -*-
from enum import Enum
from matrix_runner import main, matrix_axis, matrix_action, matrix_command
@matrix_axis("device", "d", "Device(s) to be considered.")
class Device(Enum):
CM0 = ('CM0', 'CM0_LE')
CM3 = ('CM3', 'CM3_LE')
CM4F = ('CM4F', 'CM4F_LE')
V8MB = ('V8MB', 'ARMv8MBL_LE')
V8MBN = ('V8MBN', 'ARMv8MBL_NS_LE')
V8MM = ('V8MM', 'ARMv8MML_LE')
V8MMF = ('V8MMF', 'ARMv8MML_SP_LE')
V8MMFN = ('V8MMFN', 'ARMv8MML_SP_NS_LE')
V8MMN = ('V8MMN', 'ARMv8MML_NS_LE')
@matrix_axis("compiler", "c", "Compiler(s) to be considered.")
class CompilerAxis(Enum):
AC6 = ('AC6', 'ArmCompiler6', 'armclang')
GCC = ('GCC',)
@property
def project(self):
return {
CompilerAxis.AC6: "ARM/MDK/RTX_CM.uvprojx",
CompilerAxis.GCC: "GCC/MDK/RTX_CM.uvprojx"
}[self]
@matrix_action
def build(config, results):
"""Build the selected configurations."""
yield uvision(config)
@matrix_command()
def uvision(config):
return ['uvision.com',
'-r', config.compiler.project,
'-t', config.device[1],
'-j0']
if __name__ == "__main__":
main()