49 lines
2.6 KiB
Markdown
49 lines
2.6 KiB
Markdown
# Инструкция по сборке
|
||
|
||
## Общее описание
|
||
Этот файл CMakeLists.txt настраивает сборку проекта `jlv135_cli` на языке C, с возможностью кросс-компиляции для прошивки JLV135.
|
||
|
||
## Основные параметры
|
||
1. **Минимальная версия CMake**: 3.0
|
||
2. **Язык проекта**: C
|
||
3. **Имя проекта**: `jlv135_cli`
|
||
|
||
## Опции сборки
|
||
- `BUILD_FOR_JLV135` (по умолчанию ON) - включает настройки для кросс-компиляции под JLV135
|
||
|
||
## Настройки кросс-компиляции
|
||
1. **Система**: Linux
|
||
2. **Компилятор**: `arm-uclinuxfdpiceabi-gcc`
|
||
3. **Утилита strip**: `arm-uclinuxfdpiceabi-strip`
|
||
4. **Флаги компиляции**:
|
||
- `-Os` - оптимизация по размеру
|
||
- `-fdata-sections -ffunction-sections` - размещение каждой функции/данных в отдельной секции
|
||
- `-mno-unaligned-access` - запрет невыровненного доступа к памяти
|
||
5. **Флаги линковки**: `-Wl,--gc-sections` - удаление неиспользуемых секций
|
||
|
||
## Структура проекта
|
||
1. **Исходные файлы**:
|
||
- `src/jl_modbus/jl_modbus_config.c`
|
||
- `src/jl_modbus/jl_config.c`
|
||
- `src/jlv135_cli/main.c`
|
||
2. **Заголовочные файлы**: включаются из директории `inc`
|
||
|
||
## Библиотеки
|
||
- Проект линкуется с библиотекой `pthread`
|
||
|
||
## Дополнительные действия при сборке
|
||
- В режиме `Release` выполняется удаление debug-символов с помощью `strip`
|
||
|
||
## Использование
|
||
1. Создайте директорию для сборки: `mkdir build && cd build`
|
||
2. Запустите CMake:
|
||
- Для сборки под JLV135 (по умолчанию): `cmake ..`
|
||
- Для сборки без кросс-компиляции: `cmake -DBUILD_FOR_JLV135=OFF ..`
|
||
3. Соберите проект: `cmake --build .`
|
||
4. (Опционально) Укажите тип сборки:
|
||
- `cmake -DCMAKE_BUILD_TYPE=Release ..`
|
||
- `cmake -DCMAKE_BUILD_TYPE=Debug ..`
|
||
|
||
## Примечания
|
||
- Для кросс-компиляции должны быть установлены соответствующие инструменты (arm-uclinuxfdpiceabi-gcc)
|
||
- Настройки оптимизации и удаления debug-символов применяются только при сборке для JLV135 |