Files
ps2000-my/Readme.md
T

27 lines
2.0 KiB
Markdown

# 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.
## Сборка
```bash
make