Files
Balsam_167/UKSSTMS320F28335/README.md
Andrey fe95dbff3d Перенести паспорт и проверку прошивки из 167 в 166
Добавить неизменяемое окно firmware-info v1 0x1200 из 12 слов для FC03 и служебного CAN, запретить запись. Сохранить текущую технологическую карту и логгер v4 с записью 12 слов.

Подключить общий генератор версии 1.0.0 для Balsam-166-PM35, prebuild CCS и локальный выпуск BIN с manifest и SHA-256. Проверять соответствие встроенных слов манифесту до публикации; старый OUT без паспорта отклонять.

Проверка: реальные обработчики RS/CAN и CRC под GCC O3, прежний тест логгера, анализатор установленного SetGUI, полная сборка TI C2000 22.6.0.LTS. BIN 30248 байт при границе параметров 32508 байт. Аппаратная проверка требует установки нового образа и перезапуска платы.
2026-10-16 12:05:44 +03:00

6.5 KiB
Raw Blame History

Проект 166 для CCS 12

Настройки перенесены из проекта 167. Имя проекта в CCS: Balsam_166.

Импорт и сборка

  1. В CCS выберите Project → Import CCS Projects и укажите эту папку (166/UKSSTMS320F28335).
  2. Импортируйте проект без Copy projects into workspace: исходники и библиотеки подключены из родительской папки по относительным путям.
  3. Выберите конфигурацию Debug и выполните Build Project.

Используется TI C2000 Compiler 22.6.1.LTS, TMS320F28335, FPU32 и COFF ABI. Сохранены настройки компиляции, линковки и преобразования прошивки из 167. Исходники берутся из 166/Source, linker-файл — 166/F28335.cmd. Файл 28335_RAM_lnk.cmd, как и в 167, исключён из сборки.

Результаты сборки находятся в 166/Bin: UKSSTMS320F28335.out, UKSSTMS320F28335.hex (Intel HEX) и UKSSTMS320F28335_<build_id>.bin. Рядом с BIN создаются <имя>.bin.manifest.json и <имя>.bin.sha256. Build ID содержит восемь символов: восемь цифр ревизии либо семь цифр и + при изменённых исходниках или общей библиотеке. При недоступном Git общий контракт 167 использует NOGIT000; для выпуска следует проверить ревизии source и templates в манифесте. Время паспорта хранится в UTC.

Prebuild prepare_identity.py использует тот же генератор firmware-info, что 167, но product равен Balsam-166-PM35. Единственный источник версии — firmware_version.h; первый выпуск с паспортом имеет версию 1.0.0. Обязательный generated/firmware_identity.h создаётся до компиляции. Postbuild build_identity.py использует hex2000 из выбранного компилятора CCS, общий манифест и SHA-256, затем независимо проверяет наличие ровно одного соответствующего 12-словного паспорта в SCI8. Старый OUT без паспорта или BIN с чужими полями не публикуется. Превышение границы параметров EEPROM 32508 байт также останавливает выпуск. Архивы сохраняются локально в UKSSTMS320F28335/Debug/firmware; записи в репозиторий GUI нет.

build_bin.bat сохраняет ручную точку входа для уже скомпилированного OUT, но теперь также требует его совпадения с паспортом соответствующего prebuild. Простая конверсия старой прошивки не может создать ей достоверную версию. Карта линковки остаётся в корне 166, карта конверсии — в 166/Bin.

Проверка прошивки в SetGUI

Из 167 точечно перенесён контракт firmware-info v1: FC03, адрес 0x1200, 12 регистров, версия, дата UTC и Build ID. Чтение доступно также через существующий служебный CAN; запись в паспорт запрещена. Технологическая карта, логгер v4 с записью 12 слов, управление и CAN ID не меняются.

В GUI выберите модель «Бальзам-166 · ПМ35», новый BIN и оставьте рядом его .bin.manifest.json. После записи EEPROM перезапустите плату и нажмите чтение версии: продолжающая работать старая прошивка ещё не имеет окна 0x1200 и отвечает Modbus 2. Надпись CRC OK при записи подтверждает запись EEPROM, а версия начнёт читаться после запуска нового образа. Сравнение версий и SHA-256 манифеста не является измерением SHA всей памяти платы.

python tests/firmware_identity/run_test.py проверяет реальные обработчики RS/CAN, все слова паспорта, CRC, частичные чтения, границы, запрет записи, сохранность старой карты и логгера. Отдельно проверяются устаревшие и повреждённые SCI8, предел EEPROM и действующий анализатор манифеста SetGUI.

Проверено: импорт и полная сборка Debug в CCS 12.7.1 с компилятором 22.6.1.LTS, включая генерацию HEX/BIN, завершились без ошибок. Есть шесть предупреждений в существующих peripher.c и measure.c (преобразование знака, выход результата за диапазон и отсутствие перевода строки в конце файла). Проверка на устройстве не выполнялась.

Перенос паспорта дополнительно проверен полной пересборкой и линковкой TI C2000 22.6.0.LTS и host-тестами под GCC с оптимизацией O3. Проверенный SCI8 BIN занимает 30248 байт, запас до параметров EEPROM — 2260 байт. Совпадение встроенного паспорта, манифеста и результата штатного анализатора SetGUI проверено программно; обмен новой прошивки с физической платой требует её установки и перезапуска.

Конфигурация Release перенесена из 167 без изменений и не проверялась; для сборки прошивки используйте Debug.