## Номер выпуска Меняйте `FIRMWARE_VERSION_MAJOR`, `FIRMWARE_VERSION_MINOR` и `FIRMWARE_VERSION_PATCH` в `firmware_version.h` в корне проекта CCS. Например, `0U`, `1U`, `2U` задают версию 0.1.2. Сохраните файл и выполните Rebuild. После обновления настроек закройте/откройте проект и выполните Clean/Rebuild. Debug и Release запускают `prepare_identity.py`: он читает номер из заголовка и передаёт его общему генератору. `firmware_identity.json` содержит только product/target; номер выпуска в нём редактировать не нужно. `${BuildDirectory}/generated/firmware_identity.h` и JSON-паспорт создаются автоматически; вручную их не меняйте. Диапазоны: major/minor 0..255, patch 0..999. Неверный номер останавливает генерацию. # Результаты сборки Версия 0.1.1 возвращает паспорт прошивки и блочное чтение EEPROM поверх подтверждённой на плате базы `c6c9128`. COM_1 остаётся на 115200; исходники `main.c`, `RS485.c`, `RS485.h` и настройки PLL не менялись относительно этой базы. Не используйте 250000/256000 для проверки этой сборки. FIFO остаётся включённым, как в рабочей базе; диагностический вариант без FIFO здесь не используется. Блочное чтение, проверка размера и host-тесты проверяются программно; после загрузки сначала проверьте чтение версии 0.1.1, затем 256 байт EEPROM. Debug post-build CCS12 также копирует проверенный BIN и сопутствующие `.manifest.json`/`.sha256` в `../newProject/SETGUI/..periph_28335/firmware/periph28335/bal`. Папка создаётся автоматически; имя BIN с Git commit сохраняется. Копирование выполняет `copy_bin_to_setgui.ps1` после успешной проверки образа и создания паспорта. Пути определяются относительно репозитория, не cwd CCS. Для ручного копирования: `./copy_bin_to_setgui.ps1 -Path ./Bin/<имя>.bin`. Версия работающей прошивки, SHA-256 BIN и паспорт сборки описаны в [инструкции для 167](../Doc/FIRMWARE_IDENTITY.md). Перед компиляцией запускается `preBuildStep.bat`; требуются Python 3.10+ и Git в PATH CCS. Debug post-build создаёт рядом с BIN файлы `.manifest.json` и `.sha256`. Для сборки требуется общий UMP-протокол из соседнего репозитория: `../newProject/SETGUI/third_party/templates/c/set-protocol` (от корня этого репозитория). Пути к заголовкам заданы в `.cproject` для Debug и Release; `Source/Internal/shared_ump.c` подключён в `.project` и компилирует общую реализацию протокола и порт TMS320F28335. При другом расположении зависимости обновите оба пути Include Options в нужной конфигурации CCS. После сборки Debug в `Bin` создаётся файл `UKSSTMS320F28335_.bin`, где `` — короткий хеш текущего коммита Git (не менее 8 символов). HEX сохраняет прежнее имя. BIN создаётся скриптом `build_bin.bat`; Git должен быть доступен в `PATH` процесса CCS. Если определить коммит не удалось, сборка завершается ошибкой. При наличии незакоммиченных правок хеш обозначает HEAD и не описывает эти правки. ## GAS для новой EEPROM При EEPROM_M95M02=1 доступен профиль GAS 167/v1 через Modbus и служебный CAN УМП. Карта, проверки и измеренные размеры: [GAS_167_M95M02.md](../Doc/GAS_167_M95M02.md). В сборке AT25256B GAS исключён; её загрузочный BIN не увеличивается. После обновления проекта выполнить Clean/Rebuild: новый gas167.c зарегистрирован в .project.