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

76 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Проект 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**.