Assembly description has been moved to a separate file
This commit is contained in:
49
build.md
Normal file
49
build.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# Инструкция по сборке
|
||||
|
||||
## Общее описание
|
||||
Этот файл 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
|
||||
Reference in New Issue
Block a user