Перейти к содержанию

Лабораторная 11.18 — Runtime-развёртка со свежей сессией после повторной инициализации RX common

Цель

Проверить, меняет ли результат rx_valid_count запуск каждой итерации overlay в совершенно свежей сессии SSH (вместо повторного использования постоянных соединений) и перебрать несколько сочетаний start_offset и значения rx_common_ctrl в этом режиме свежей сессии.

Lab 11.16 и 11.17 переиспользовали соединения paramiko SSH между итерациями. Возможно, остаточное состояние IIO или SSH от предыдущей итерации «отравляет» следующую. Эта работа контролирует это, открывая свежее соединение SSH (и свежий iio.Context) в начале каждой итерации.

Конструкция развёртки

Скрипт перебирает настраиваемую сетку:

  • значения start_offset (по умолчанию: 0, 31, 62, 93, 127);
  • значения rx_common_ctrl (по умолчанию: 0x70000000, 0x70000001, 0x70000003).

Для каждой комбинации создаётся свежая сессия paramiko, перезагружается overlay, настраивается AD9361, записывается rx_common_ctrl, запускается пакет TX хоста и опрашиваются rx_valid_count / received_bits.

Каждая итерация заканчивается перезагрузкой платы обратно в стоковый shell перед следующей комбинацией, гарантируя чистое начальное состояние.

Файлы

Путь Назначение
blocks/block_11_integrated_sdr_project/python/lab_11_18_runtime_rx_common_reinit_fresh_session_sweep.py сеточная развёртка со свежей сессией, результаты в JSON

Запуск

python blocks/block_11_integrated_sdr_project/python/\
lab_11_18_runtime_rx_common_reinit_fresh_session_sweep.py \
  --bit-bin tmp/bridge_rx_only.wordswap.bit.bin \
  --start-offsets 0,31,62,93,127 \
  --rx-common-ctrl-values 0x70000000,0x70000001,0x70000003 \
  --json-out docs/assets/lab118_fresh_session_sweep_live.json

Полная развёртка 5×3 = 15 точек с перезагрузкой между итерациями занимает примерно 30–45 минут.

Ожидаемые результаты

Файл Содержимое
docs/assets/lab118_fresh_session_sweep_live.json результаты счётчиков по комбинациям
Сводка в консоли любая пара (start_offset, rx_common_ctrl) с rx_valid_count > 0

Как интерпретировать результат

Исход Интерпретация
Какая-то комбинация даёт rx_valid_count > 0 состояние соединения было фактором; используйте выигрышную комбинацию
Все комбинации дают rx_valid_count = 0 нехватка данных в железе или bitstream, а не в состоянии сессии хоста

Живой результат 2026-06-23

Все проверенные комбинации дали rx_valid_count = 0. Изоляция свежей сессией не изменила исход по сравнению с Lab 11.16 и 11.17. Теперь данные сильно указывают, что первопричина: внутри bitstream bridge_rx_only или конфигурации интерфейса AD9361 → PL, а не в программном состоянии хоста и не в выборе параметров start_offset / rx_common_ctrl.

Следующий диагностический шаг перешёл к внешнему RF-наблюдению (Lab 11.20–11.23), чтобы проверить, излучает ли тракт TX хотя бы корректно, пока bring-up RX продолжается параллельно.

Чек-лист отчёта

  • Указаны размеры сетки (значения start_offset × значения rx_common_ctrl).
  • Приложен JSON-файл развёртки.
  • Отмечена любая комбинация с rx_valid_count > 0.
  • Подтверждено, что каждая итерация начиналась с перезагрузки в стоковый shell.

Шаблон инженерного вывода

Развёртка со свежей сессией по ____ комбинациям (start_offset, rx_common_ctrl) завершена.
Каждая итерация начиналась с перезагрузки в стоковый shell. rx_valid_count > 0 наблюдался
для комбинаций: ____ (либо «нет»). Изоляция свежей сессией изменила / не изменила исход, потому что ______.