2026-10-20 17:09:24 +03:00
asm
2026-10-20 17:09:24 +03:00
asm
2026-10-20 17:09:24 +03:00
asm
2026-10-20 17:09:24 +03:00
2026-10-20 12:54:34 +03:00
asm
2026-10-20 17:09:24 +03:00
asm
2026-10-20 17:09:24 +03:00

Архитектура

Проект разделен на функциональные модули, восстанавливающие логику оригинальной C++ библиотеки:

  • ps2000_core.c: Управление жизненным циклом контекста, глобальное состояние, подсчет ссылок.
  • ps2000_ops.c: Диспетчер операций (реконструкция sub_237C0), таблица виртуальных методов.
  • ps2000_usb.c: Транспортный уровень на базе libusb-1.0.
  • ps2000_hw.c: Уровень абстракции оборудования (HAL), IO-команды, SPI, FPGA.
  • ps2000_math.c: Централизованная математика (SSE/SSE2 паттерны, быстрое округление через 2^52).
  • ps2000_osc.c: Осциллограф, расчет таймбаз, обработка данных.
  • ps2000_gen.c: Генератор сигналов (DDS/AWG), встроенные формы волн.
  • ps2000_cfg.c: Чтение EEPROM, калибровка, информация об устройстве.
  • ps2000_trig.c: Валидация и расчет позиции триггера.
  • ps2000_stream.c: Стриминг, кольцевой буфер, обработка raw-данных.
  • ps2000_thread.c: Обертка над pthreads (замена C++ IRunnable).
  • ps2000_fw.c: Загрузчик прошивок (протокол Cypress Anchor).
  • ps2000_init_tbl.c: Парсер бинарного скрипта инициализации регистров.
  • ps2000_log.c: Подсистема логирования с поддержкой callback.

Сборка

make
S
Description
ps2000 fork
Readme
2 MiB
0 Stars 0 Watchers 0 Forks
Languages
C 86.2%
Python 10.5%
Makefile 3.3%