Добавить неизменяемое окно 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 байт. Аппаратная проверка требует установки нового образа и перезапуска платы.
6.5 KiB
Проект 166 для CCS 12
Настройки перенесены из проекта 167. Имя проекта в CCS: Balsam_166.
Импорт и сборка
- В CCS выберите Project → Import CCS Projects и укажите эту папку
(
166/UKSSTMS320F28335). - Импортируйте проект без Copy projects into workspace: исходники и библиотеки подключены из родительской папки по относительным путям.
- Выберите конфигурацию 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.