Clone
4
Changelog
ua1zbe edited this page 2026-04-12 01:15:14 +03:00
This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

История изменений

v1.0 Beta — 12.04.2026

Первая публичная бета-версия.

Новое

  • VFO режим — прямой ввод частоты с цифровой клавиатуры
  • POCSAG декодер — поддержка 512/1200 бод, BCH(31,21) коррекция до 2 ошибок
  • Спектр-анализатор — полноэкранный режим на базе egzumer spectrum
  • FM Радио — базовый приём с отображением частоты
  • RSSI индикатор — отображение в dBm в верхнем правом углу
  • Boot Splash — кастомная заставка: UA1ZBE / POCSAG pager / дата сборки
  • Диспетчер режимов — переключение: VFO ↔ POCSAG ↔ Spectrum ↔ FM
  • Zero malloc — все буферы статические, нет динамической памяти

Известные ограничения

Проблема Приоритет Статус
POCSAG: недостаточно сэмплов (10мс вместо 125мкс) 🔴 Критично 📋 Запланировано
Нет отображения текста POCSAG сообщений 🟡 Средний 📋 Запланировано
Дублирование APP_TimeSlice в mode.c 🟢 Низкий 📋 Запланировано
Flash на пределе (94.3%) 🟡 Средний Принято

Технические детали

Параметр Значение
Flash 57,912 / 61,440 байт (94.3%)
RAM 3,568 / 16,384 байт (21.8%)
Компилятор arm-none-eabi-gcc 9.2.1
Оптимизация -Os -flto=auto
Стандарт -std=gnu11
Предупреждения -Wall -Wextra -Werror (0 предупреждений)

Архитектура

main.c → MODE_Init() → MODE_TimeSlice10ms()
                              ├── MODE_VFO → APP_TimeSlice10ms() + RSSI_Draw()
                              ├── MODE_POCSAG → POCSAG_FeedSample() + pocsag_draw()
                              ├── MODE_SPECTRUM → MODE_Switch(MODE_VFO)
                              └── MODE_FM → FM_Start()

Созданные файлы

Файл Описание Размер
Makefile Конфигурация сборки 9,838 Б
main.c Точка входа 4,217 Б
syscalls.c Заглушка _sbrk 358 Б
app/boot_splash.c Заставка при старте 1,504 Б
app/display_rssi.c RSSI индикатор 3,601 Б
app/mode.c Диспетчер режимов 7,763 Б
app/pocsag/pocsag.c POCSAG декодер 15,201 Б
app/pocsag/bch31.c BCH коррекция 7,101 Б
DOCUMENTATION.md Полная документация 8,428 Б

Исправленные ошибки сборки

  1. [[fallthrough]]__attribute__((fallthrough))
  2. static_assert C99 → -std=gnu11
  3. uint8_t >= 576uint16_t
  4. dBmCorrTable undeclared → extern const int8_t dBmCorrTable[7]
  5. sizeof incomplete type → #include "app/dtmf.h"
  6. 40+ undefined reference → возврат зависимых модулей
  7. _sbrk undefined → syscalls.c

Планы на будущее

v1.1 (планируется)

  • Исправление POCSAG сэмплинга (80 сэмплов × 125мкс)
  • Отображение текста POCSAG сообщений
  • Фиксированная частота POCSAG по умолчанию
  • Звуковой сигнал при новом сообщении

v1.2 (планируется)

  • Разделение APP_TimeSlice (убрать дублирование)
  • Настройка POCSAG частоты через ввод с клавиатуры
  • Журнал принятых POCSAG сообщений
  • Увеличение буфера сообщений до 16

v2.0 (планы)

  • Переключение VFO/MR режимы
  • Сканирование POCSAG по диапазону частот
  • Экспорт сообщений через UART
  • Оптимизация размера (убрать unused код)