# Инструкция по сборке ## Общее описание Этот файл 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