Files
ps2000-my/Readme.md
T

2.0 KiB

libps2000_re (Reverse Engineered)

Полная реконструкция драйвера libps2000.so для осциллографов PicoScope 2000 series на языке C.

Архитектура

Проект разделен на функциональные модули, восстанавливающие логику оригинальной 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