Сохранить русские комментарии и настройки проекта в UTF-8

Добавить пояснения к исходникам, заголовкам TI, настройкам CCS и существующим проверкам. Зафиксировать правила кодировки, обзор модулей и аудит комментариев.
This commit is contained in:
2026-10-12 12:24:48 +03:00
parent 378e06a281
commit f741741cf8
137 changed files with 21576 additions and 2134 deletions
+49 -45
View File
@@ -1,55 +1,59 @@
## Номер выпуска
# Сборка Бальзам-167
Меняйте `FIRMWARE_VERSION_MAJOR`, `FIRMWARE_VERSION_MINOR` и
`FIRMWARE_VERSION_PATCH` в `firmware_version.h` в корне проекта CCS.
Например, `0U`, `1U`, `2U` задают версию 0.1.2. Сохраните файл и
выполните Rebuild. После обновления настроек закройте/откройте проект и
выполните Clean/Rebuild.
Проект CCS использует TMS320F28335, модель памяти large и ABI COFF.
Исходники и русские комментарии сохранены в UTF-8 без BOM. Кодировка проекта
задана в .settings/org.eclipse.core.resources.prefs, правило редактора — в
../.editorconfig. Подробная проверка покрытия: [COMMENT_AUDIT.md](../Doc/COMMENT_AUDIT.md).
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.
Текущий номер 1.1.2 задаётся в firmware_version.h: major/minor 0..255,
patch 0..999. Меняйте только три числовых определения версии и выполняйте
Clean/Rebuild. firmware_identity.json хранит product/target.
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`.
Debug и Release вызывают prepare_identity.py. Он читает номер версии и передаёт
его общему генератору паспорта. generated/firmware_identity.h и JSON создаются
в каталоге сборки; вручную их редактировать не нужно. Паспорт включает исходный
коммит, признак незакоммиченных изменений и время UTC. Порядок проверки
приведён в [FIRMWARE_IDENTITY.md](../Doc/FIRMWARE_IDENTITY.md).
Версия работающей прошивки, SHA-256 BIN и паспорт сборки описаны в
[инструкции для 167](../Doc/FIRMWARE_IDENTITY.md). Перед компиляцией запускается
`preBuildStep.bat`; требуются Python 3.10+ и Git в PATH CCS. Debug post-build
создаёт рядом с BIN файлы `.manifest.json` и `.sha256`.
## Зависимости и настройки CCS
Для сборки требуется общий UMP-протокол из соседнего репозитория:
`../newProject/SETGUI/third_party/templates/c/set-protocol` (от корня этого
репозитория). Пути к заголовкам заданы в `.cproject` для Debug и Release;
`Source/Internal/shared_ump.c` подключён в `.project` и компилирует общую
реализацию протокола и порт TMS320F28335. При другом расположении зависимости
обновите оба пути Include Options в нужной конфигурации CCS.
Для текущих конфигураций нужны Python, Git и TI C2000 22.6 LTS.
Общая реализация УМП и порт TMS320F28335 подключаются из
../newProject/SETGUI/third_party/templates/c/set-protocol относительно корня
репозитория. shared_ump.c включает эту реализацию и модуль паспорта.
После сборки Debug в `Bin` создаётся файл
`UKSSTMS320F28335_<commit>.bin`, где `<commit>` — короткий хеш текущего
коммита Git (не менее 8 символов). HEX сохраняет прежнее имя.
В .cproject обе конфигурации используют генератор и post-build из
K:/git_project/newProject/templates. При переносе проекта проверьте этот путь,
пути Include Options к общей реализации и каталог назначения BIN. Генератор
исходников и post-build сейчас находятся в соседнем репозитории; старые
локальные build_bin.bat/preBuildStep.bat больше не входят в этот проект.
BIN создаётся скриптом `build_bin.bat`; Git должен быть доступен в `PATH`
процесса CCS. Если определить коммит не удалось, сборка завершается ошибкой.
При наличии незакоммиченных правок хеш обозначает HEAD и не описывает эти правки.
Post-build вызывает tools/firmware-build/ccs/postcompile.bat: формирует загрузочный
образ, проверяет границы, создаёт паспорт и SHA-256. Текущий каталог копирования
задан в .cproject:
K:/git_project/newProject/SETGUI/..periph_28335/firmware/periph28335/balzam167.
## GAS для новой EEPROM
COM_1 работает на 115200 с FIFO. COM_2 использует 57600 для OWEN либо 115200
для другого режима. Эти скорости задаются в main.c.
При 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.
## Профиль EEPROM и GAS
В Source/Internal/Include/eeprom_config.h значение EEPROM_M95M02=0 выбирает
AT25256B 32 КиБ; значение 1 — M95M02-DR 256 КиБ. Выбор обязан соответствовать
микросхеме на плате. После изменения нужен Clean/Rebuild. При отдельной сборке
определение должно совпадать у компилятора и у препроцессора линкера.
GAS включается только при значении 1: технологические слова 0x5000..0x507F и
дескриптор только для чтения 0x5F00..0x5F07. Транспорты — Modbus RTU и служебный
CAN УМП. Карта и измеренные размеры: [GAS_167_M95M02.md](../Doc/GAS_167_M95M02.md).
Подробное назначение модулей: [SOURCE_GUIDE.md](../Doc/SOURCE_GUIDE.md).
## Проверки
Запускайте из корня репозитория Python-скрипты tests/comments/run_test.py,
tests/gas167/run_test.py, tests/eeprom_profiles/run_test.py,
tests/load_control/run_test.py и проверки регистратора в tests/ump_logger.
Проверка FIFO: tests/rs232_fifo/run_test.py --cc <путь к GCC>.
Для MinGW каталог исполняемых файлов GCC должен присутствовать в PATH.