Files
Andrey 05be38a04a Обновить Flash/CAN, версии сборок и управление периферией
Добавить защищённое обновление приложения через RS и CAN с сохранением
загрузчика, проверкой CRC, восстановлением передачи и защитой EEPROM.
Подключить общий процесс сборки C2000 и автоматический счётчик версии
для согласованных RAM, Flash, CAN и паспортов бинарных образов.

Уточнить запуск ЦАП, обработку измерений и параметров нагрузки,
начальную индикацию и документацию регистров GAS.
Дополнить модели аппаратуры и изолировать заголовки CAN в тестах.

Проверка: 26 тестов выпуска, 4 теста восстановления CAN и восемь
программных моделей CAN, Flash, EEPROM, ЦАП, параметров и TESTLAMP.
2026-11-06 16:11:11 +03:00

17 lines
2.7 KiB
NASM

.ref _c_int00 ; Стандартный COFF startup применяет .cinit и вызывает main после отключения раннего watchdog.
.def _flash_app_start ; Экспортирует отдельную точку приложения; аппаратный вход 0x33FFF6 принадлежит постоянному загрузчику.
.sect ".flash_app" ; Linker резервирует 16 слов по 0x300000; postbuild заполнит описание FAB1 и CRC окончательно связанных LOAD-секций.
.word 0FFFFh, 0FFFFh, 0FFFFh, 0FFFFh ; До подписи отсутствуют magic и версия, поэтому незавершённый OUT не считается запускаемым приложением.
.word 0FFFFh, 0FFFFh, 0FFFFh, 0FFFFh ; Резервирует адрес точки входа и начало диапазона в словах C28x.
.word 0FFFFh, 0FFFFh, 0FFFFh, 0FFFFh ; Резервирует конец диапазона и CRC32 его физических октетов.
.word 0FFFFh, 0FFFFh, 0FFFFh, 0FFFFh ; Резервирует инверсию entry и маркеры завершённого описания FAB1.
.text ; Последовательность взята из штатного TI DSP2833x_CodeStartBranch.asm и размещается в секторе основного кода.
_flash_app_start: ; Общий загрузчик вызывает эту точку только после проверки описания и CRC приложения ниже сектора A.
SETC OBJMODE ; Выбирает C28x object mode, требуемый стандартным COFF startup процессора F28335.
EALLOW ; Разрешает запись защищённого регистра WDCR перед запуском C runtime.
MOVZ DP, #7029h>>6 ; Адрес слова WDCR=0x7029 из карты F28335; DP выбирает соответствующую страницу по 64 слова.
MOV @7029h, #0068h ; Значение 0x0068 содержит контрольные биты WDCHK=101 и WDDIS=1, как официальный TI startup.
EDIS ; Возвращает защиту системных регистров перед переходом в библиотечную инициализацию.
LB _c_int00 ; Применяет штатную ROM-модель инициализации и затем запускает текущий main 167.
.end ; Завершает модуль, не добавляя произвольных данных рядом с CSM-паролями сектора A.