Доработка документации
This commit is contained in:
31
README.md
31
README.md
@@ -82,18 +82,31 @@ sudo apt install -y build-essential autoconf automake libtool git wget \
|
|||||||
gcc-arm-linux-gnueabihf
|
gcc-arm-linux-gnueabihf
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4.2 Зависимости (один раз, ~15 мин)
|
### 4.2 Зависимости (один раз, ~20 мин)
|
||||||
|
|
||||||
`scripts/build_deps.sh` собирает в `$HOME/xarm` статические armhf-библиотеки:
|
`scripts/build_deps.sh` собирает в `$HOME/xarm` статические armhf-библиотеки.
|
||||||
|
**Порядок важен**: liquid зависит от FFTW и libfec, поэтому они собираются до него.
|
||||||
|
|
||||||
1. **FFTW 3.3.10**: `--enable-single --enable-neon --enable-static`
|
1. **FFTW 3.3.10**: `--enable-single --enable-neon --enable-static`
|
||||||
2. **liquid-dsp 1.8.0**: с `CPPFLAGS=-I$HOME/xarm/include
|
2. **libfec** (jgaeddert): Reed-Solomon для liquid. liquid **не реализует RS
|
||||||
|
сам** — оборачивает libfec. Без неё `fec_create(LIQUID_FEC_RS_M8)` вернёт
|
||||||
|
NULL и `-c rs8` молча пойдёт БЕЗ FEC. Собирать строго ДО liquid.
|
||||||
|
3. **liquid-dsp 1.8.0**: с `CPPFLAGS=-I$HOME/xarm/include
|
||||||
LDFLAGS=-L$HOME/xarm/lib` и обходом autoconf-кросс-проблемы:
|
LDFLAGS=-L$HOME/xarm/lib` и обходом autoconf-кросс-проблемы:
|
||||||
`ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes`
|
`ac_cv_func_malloc_0_nonnull=yes ac_cv_func_realloc_0_nonnull=yes`
|
||||||
|
4. **libiio v0.25**: только local backend (network/usb/xml/iiod отключены).
|
||||||
|
5. **libad9361-iio**: FIR-фильтр для sample rate < 2.083 MSPS
|
||||||
|
(`ad9361_set_bb_rate`). Без него AD9361 отвергает 1.92 MSPS (EINVAL).
|
||||||
|
|
||||||
После сборки liquid **обязательно** проверить, что FFTW подхвачен:
|
После сборки liquid **обязательно** проверить, что подхвачены и FFTW, и libfec:
|
||||||
`grep HAVE_LIBFFTW3F config.log` → должно быть `1`. Без FFTW liquid молча
|
`grep -E "HAVE_LIBFFTW3F 1|HAVE_LIBFEC 1" config.log` → обе строки. Без FFTW
|
||||||
падает на встроенный FFT и цифры бюджета CPU невалидны.
|
liquid молча падает на встроенный FFT (бюджет CPU невалиден); без libfec нет RS.
|
||||||
|
|
||||||
|
⚠️ При обновлении зависимостей liquid надо пересобирать через `make clean`:
|
||||||
|
его makefile не отслеживает зависимость от `config.h`, и `configure`+`make`
|
||||||
|
без очистки лишь переустановят старую `libliquid.a` (без FEC). Проверка перед
|
||||||
|
деплоем: `arm-linux-gnueabihf-nm $XARM/lib/libliquid.a | grep -c init_rs_char`
|
||||||
|
→ ненулевое = RS-символы libfec действительно связаны.
|
||||||
|
|
||||||
### 4.3 Ключевые решения по сборке
|
### 4.3 Ключевые решения по сборке
|
||||||
|
|
||||||
@@ -107,9 +120,13 @@ sudo apt install -y build-essential autoconf automake libtool git wget \
|
|||||||
```bash
|
```bash
|
||||||
arm-linux-gnueabihf-gcc -O3 -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard \
|
arm-linux-gnueabihf-gcc -O3 -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard \
|
||||||
-ffast-math -static src/receiver.c src/common.c -o receiver \
|
-ffast-math -static src/receiver.c src/common.c -o receiver \
|
||||||
-I$HOME/xarm/include -L$HOME/xarm/lib -lliquid -lfftw3f -lm
|
-I$HOME/xarm/include -L$HOME/xarm/lib \
|
||||||
|
-lad9361 -liio -lliquid -lfec -lfftw3f -lm
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Порядок библиотек критичен при статической линковке: зависимый идёт раньше
|
||||||
|
(`-lad9361` перед `-liio`, `-lliquid` перед `-lfec`).
|
||||||
|
|
||||||
### 4.4 Деплой
|
### 4.4 Деплой
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Reference in New Issue
Block a user