Загрузить файлы в «/»
This commit is contained in:
1 parent
42f47ae121
commit
161767b921
2 files changed
+230
No files matched your search
@@ -0,0 +1,27 @@
|
||||
# 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
|
||||
Reference in new issue
Block a user