Сохранить русские комментарии и настройки проекта в UTF-8
Добавить пояснения к исходникам, заголовкам TI, настройкам CCS и существующим проверкам. Зафиксировать правила кодировки, обзор модулей и аудит комментариев.
This commit is contained in:
134
Doc/COMMENT_AUDIT.md
Normal file
134
Doc/COMMENT_AUDIT.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# Проверка комментариев и кодировки
|
||||
|
||||
Проверка относится к редактируемым исходникам C/H, ASM, CMD, тестовым INC и Python.
|
||||
Каждая непустая строка кода имеет русское пояснение перед ней или на ней. Пустые строки,
|
||||
текст существующих комментариев и содержимое многострочных строк данных не считаются кодом.
|
||||
Исходные уведомления TI сохранены. JSON-паспорта, индексы IDE, таблицы XLS и двоичные
|
||||
результаты сборки не допускают исходных комментариев; их назначение описано в документации.
|
||||
|
||||
UTF-8 проверен в 151 текстовых файлах. Строк кода: 18624.
|
||||
|
||||
| Файл | Строк кода | С русским пояснением |
|
||||
| --- | ---: | ---: |
|
||||
| F28335.cmd | 69 | 69 |
|
||||
| Source/External/v120/DSP2833x_common/include/DSP2833x_DefaultIsr.h | 89 | 89 |
|
||||
| Source/External/v120/DSP2833x_common/include/DSP2833x_Dma_defines.h | 44 | 44 |
|
||||
| Source/External/v120/DSP2833x_common/include/DSP2833x_EPwm_defines.h | 89 | 89 |
|
||||
| Source/External/v120/DSP2833x_common/include/DSP2833x_Examples.h | 33 | 33 |
|
||||
| Source/External/v120/DSP2833x_common/include/DSP2833x_GlobalPrototypes.h | 156 | 156 |
|
||||
| Source/External/v120/DSP2833x_common/include/DSP2833x_I2c_defines.h | 58 | 58 |
|
||||
| Source/External/v120/DSP2833x_common/include/DSP2833x_SWPrioritizedIsrLevels.h | 5097 | 5097 |
|
||||
| Source/External/v120/DSP2833x_common/include/DSP28x_Project.h | 5 | 5 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_ADC_cal.asm | 8 | 8 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_Adc.c | 14 | 14 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_CpuTimers.c | 45 | 45 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_PieCtrl.c | 37 | 37 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_PieVect.c | 143 | 143 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_SWPrioritizedDefaultIsr.c | 1012 | 1012 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_SWPrioritizedPieVect.c | 392 | 392 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_SysCtrl.c | 188 | 188 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_Xintf.c | 123 | 123 |
|
||||
| Source/External/v120/DSP2833x_common/source/DSP2833x_usDelay.asm | 7 | 7 |
|
||||
| Source/External/v120/DSP2833x_headers/cmd/DSP2833x_Headers_BIOS.cmd | 107 | 107 |
|
||||
| Source/External/v120/DSP2833x_headers/cmd/DSP2833x_Headers_nonBIOS.cmd | 108 | 108 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_Adc.h | 201 | 201 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_CpuTimers.h | 93 | 93 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_DMA.h | 142 | 142 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_DevEmu.h | 57 | 57 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_Device.h | 287 | 287 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_ECan.h | 948 | 948 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_ECap.h | 94 | 94 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_EPwm.h | 297 | 297 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_EQep.h | 165 | 165 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_Gpio.h | 320 | 320 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_I2c.h | 126 | 126 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_Mcbsp.h | 584 | 584 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_PieCtrl.h | 107 | 107 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_PieVect.h | 141 | 141 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_Sci.h | 142 | 142 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_Spi.h | 109 | 109 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_SysCtrl.h | 259 | 259 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_XIntrupt.h | 44 | 44 |
|
||||
| Source/External/v120/DSP2833x_headers/include/DSP2833x_Xintf.h | 77 | 77 |
|
||||
| Source/External/v120/DSP2833x_headers/source/DSP2833x_GlobalVariableDefs.c | 301 | 301 |
|
||||
| Source/Internal/ADC.c | 244 | 244 |
|
||||
| Source/Internal/DAC.c | 244 | 244 |
|
||||
| Source/Internal/Include/ADC.h | 4 | 4 |
|
||||
| Source/Internal/Include/DAC.h | 11 | 11 |
|
||||
| Source/Internal/Include/GPIO_table.h | 329 | 329 |
|
||||
| Source/Internal/Include/RS485.h | 84 | 84 |
|
||||
| Source/Internal/Include/bios_dsp.h | 42 | 42 |
|
||||
| Source/Internal/Include/caliber.h | 35 | 35 |
|
||||
| Source/Internal/Include/cntrl_adr.h | 17 | 17 |
|
||||
| Source/Internal/Include/crc16.h | 6 | 6 |
|
||||
| Source/Internal/Include/ecan.h | 4 | 4 |
|
||||
| Source/Internal/Include/eeprom_config.h | 9 | 9 |
|
||||
| Source/Internal/Include/filter_bat2.h | 36 | 36 |
|
||||
| Source/Internal/Include/gas167.h | 17 | 17 |
|
||||
| Source/Internal/Include/kanal.h | 1 | 1 |
|
||||
| Source/Internal/Include/log_to_mem.h | 37 | 37 |
|
||||
| Source/Internal/Include/measure.h | 90 | 90 |
|
||||
| Source/Internal/Include/message.h | 32 | 32 |
|
||||
| Source/Internal/Include/package.h | 127 | 127 |
|
||||
| Source/Internal/Include/peripher.h | 128 | 128 |
|
||||
| Source/Internal/Include/pulto.h | 1 | 1 |
|
||||
| Source/Internal/Include/spise2p.h | 74 | 74 |
|
||||
| Source/Internal/Include/tools.h | 5 | 5 |
|
||||
| Source/Internal/Include/ump_can_protocol.h | 8 | 8 |
|
||||
| Source/Internal/RS485.c | 530 | 530 |
|
||||
| Source/Internal/bios.c | 236 | 236 |
|
||||
| Source/Internal/cntrl_adr.c | 17 | 17 |
|
||||
| Source/Internal/crc16.c | 158 | 158 |
|
||||
| Source/Internal/ecan.c | 242 | 242 |
|
||||
| Source/Internal/filter_bat2.c | 12 | 12 |
|
||||
| Source/Internal/gas167.c | 53 | 53 |
|
||||
| Source/Internal/kanal.c | 153 | 153 |
|
||||
| Source/Internal/log_to_mem.c | 236 | 236 |
|
||||
| Source/Internal/main.c | 167 | 167 |
|
||||
| Source/Internal/measure.c | 625 | 625 |
|
||||
| Source/Internal/message.c | 289 | 289 |
|
||||
| Source/Internal/peripher.c | 227 | 227 |
|
||||
| Source/Internal/pulto.c | 88 | 88 |
|
||||
| Source/Internal/shared_ump.c | 4 | 4 |
|
||||
| Source/Internal/spise2p.c | 326 | 326 |
|
||||
| Source/Internal/tools.c | 31 | 31 |
|
||||
| UKSSTMS320F28335/28335_RAM_lnk.cmd | 58 | 58 |
|
||||
| UKSSTMS320F28335/firmware_version.h | 6 | 6 |
|
||||
| UKSSTMS320F28335/prepare_identity.py | 41 | 41 |
|
||||
| tests/comments/run_test.py | 127 | 127 |
|
||||
| tests/eeprom_profiles/run_test.py | 20 | 20 |
|
||||
| tests/eeprom_profiles/spi_test.c | 46 | 46 |
|
||||
| tests/eeprom_profiles/stubs/DSP2833x_Device.h | 22 | 22 |
|
||||
| tests/firmware_identity/check_build.py | 35 | 35 |
|
||||
| tests/firmware_identity/port_test.c | 29 | 29 |
|
||||
| tests/gas167/check_image.py | 44 | 44 |
|
||||
| tests/gas167/gas167_test.c | 191 | 191 |
|
||||
| tests/gas167/run_test.py | 45 | 45 |
|
||||
| tests/load_control/load_control_test.c | 93 | 93 |
|
||||
| tests/load_control/run_test.py | 15 | 15 |
|
||||
| tests/load_control/stubs/DSP2833x_Device.h | 9 | 9 |
|
||||
| tests/load_control/stubs/DSP2833x_SWPrioritizedIsrLevels.h | 0 | 0 |
|
||||
| tests/load_control/stubs/RS485.h | 0 | 0 |
|
||||
| tests/load_control/stubs/filter_bat2.h | 0 | 0 |
|
||||
| tests/load_control/stubs/measure.h | 4 | 4 |
|
||||
| tests/load_control/stubs/message.h | 1 | 1 |
|
||||
| tests/load_control/stubs/package.h | 17 | 17 |
|
||||
| tests/load_control/stubs/peripher.h | 14 | 14 |
|
||||
| tests/load_control/stubs/tools.h | 0 | 0 |
|
||||
| tests/rs232_fifo/model.inc | 113 | 113 |
|
||||
| tests/rs232_fifo/run_test.py | 53 | 53 |
|
||||
| tests/ump_logger/init_test.c | 52 | 52 |
|
||||
| tests/ump_logger/recorder_test.c | 151 | 151 |
|
||||
| tests/ump_logger/run_init_test.py | 30 | 30 |
|
||||
| tests/ump_logger/run_test.py | 34 | 34 |
|
||||
| tests/ump_logger/stubs/ADC.h | 1 | 1 |
|
||||
| tests/ump_logger/stubs/DAC.h | 1 | 1 |
|
||||
| tests/ump_logger/stubs/DSP2833x_Device.h | 9 | 9 |
|
||||
| tests/ump_logger/stubs/RS485.h | 0 | 0 |
|
||||
| tests/ump_logger/stubs/filter_bat2.h | 0 | 0 |
|
||||
| tests/ump_logger/stubs/measure.h | 2 | 2 |
|
||||
| tests/ump_logger/stubs/message.h | 0 | 0 |
|
||||
| tests/ump_logger/stubs/package.h | 11 | 11 |
|
||||
| tests/ump_logger/stubs/peripher.h | 0 | 0 |
|
||||
| tests/ump_logger/test_firmware_image.py | 51 | 51 |
|
||||
| tests/ump_logger/ti_syntax.h | 2 | 2 |
|
||||
108
Doc/SOURCE_GUIDE.md
Normal file
108
Doc/SOURCE_GUIDE.md
Normal file
@@ -0,0 +1,108 @@
|
||||
# Назначение исходников Бальзам-167
|
||||
|
||||
Все редактируемые исходники C/H, ASM, CMD и Python используют UTF-8 без BOM.
|
||||
Каждая строка кода снабжена русским пояснением. Существующие уведомления TI
|
||||
и сведения о поставляемых файлах сохранены. Таблица покрытия и воспроизводимая
|
||||
проверка находятся в [COMMENT_AUDIT.md](COMMENT_AUDIT.md) и
|
||||
../tests/comments/run_test.py.
|
||||
|
||||
## Порядок работы
|
||||
|
||||
main.c сначала настраивает системные такты, PIE, внешнюю RAM, адрес платы,
|
||||
CAN и оба SCI. Затем запускает EEPROM, очищает RAM журнала, явно инициализирует
|
||||
регистратор и автомат LOAD, настраивает Timer1 и разрешает прерывания.
|
||||
Параметры читаются из EEPROM; для LOAD Setup_DAC_time применяет длительность
|
||||
нарастания тока и проверяет сохранённый тайм-аут CAN. Главный цикл обслуживает
|
||||
команды, сохранение параметров, события регистратора и передачу служебного CAN.
|
||||
|
||||
Timer1 задаёт основную частоту READY_FREQ=1000 Гц. Для измерительной платы
|
||||
обработчик находится в measure.c, для пульта — в pulto.c. Автомат нагрузки
|
||||
выполняется в Timer1: он владеет START/STOP/разрешением и обновлением тока ЦАП.
|
||||
Главный цикл не включает нагрузку поверх состояния защиты. Timer2 продвигает
|
||||
автомат EEPROM; ожидание SPI не выполняется внутри длительной блокировки IRQ.
|
||||
|
||||
## Внутренние модули
|
||||
|
||||
| Файл | Назначение и важные ограничения |
|
||||
| --- | --- |
|
||||
| main.c | Порядок запуска, общий цикл, команды загрузчика и Modbus; COM_1 115200 с FIFO. |
|
||||
| ADC.c | Настройка каналов АЦП, обработка преобразований и обновление фильтров. |
|
||||
| measure.c | Типы датчиков, температурные/токовые/мощностные расчёты, диагностика, периодический такт. |
|
||||
| filter_bat2.c | Накопительный фильтр; история и сумма обновляются вместе с новым отсчётом. |
|
||||
| DAC.c | Передача слов ЦАП и автомат нагрузки: свежесть CAN, напряжение, STOP и максимум пять пусков. |
|
||||
| ecan.c | Штатные CAN-кадры и отдельный служебный обмен УМП/GAS; ISR принимает, главный цикл передаёт ответ. |
|
||||
| RS485.c | SCI-A/SCI-B, разбор кадров и упаковка слов; FIFO используется только первым портом. |
|
||||
| message.c | FC03/FC06, маршрутизация УМП/GAS, заводские и сохраняемые параметры. |
|
||||
| gas167.c | Карта 167/v1; проверка всего диапазона до чтения; ограничение записи такое же, как у обычного Modbus. |
|
||||
| log_to_mem.c | Два банка RAM регистратора, события START/STOP/CAN/RS, замороженный архив и чтение через УМП. |
|
||||
| shared_ump.c | Подключение общего протокола и паспорта из соседнего репозитория; логика общей библиотеки здесь не дублируется. |
|
||||
| spise2p.c | SPI EEPROM: команда, адрес, порции данных, границы страниц и ожидание окончания записи. |
|
||||
| bios.c | Последовательный загрузчик, команды памяти и EXTEND; адрес EEPROM проверяется отдельно от RAM. |
|
||||
| cntrl_adr.c | Установка собственного/универсального адреса устройства. |
|
||||
| peripher.c | Аппаратные перемычки, тип платы, кнопки, выбор канала и служебные GPIO. |
|
||||
| kanal.c | Последовательная передача битов индикации выбранного канала. |
|
||||
| pulto.c | Периодический обработчик и обмен пульта. |
|
||||
| crc16.c | Таблицы и алгоритмы CRC для используемых пакетов. |
|
||||
| tools.c | Внешняя шина XINTF Zone7 и задержки в микросекундах. |
|
||||
|
||||
## Заголовки проекта
|
||||
|
||||
package.h определяет аппаратные адреса и псевдонимы modbus. Стартовый ток
|
||||
находится в 0x50, конечный — в 0x51. Сохраняемый LOAD_CAN_TIMEOUT занимает 0x52:
|
||||
разрешено 1..60000 мс; заводское значение 600 мс устанавливается Default_params.
|
||||
Setup_DAC_time исправляет недопустимое сохранённое значение на 600 мс.
|
||||
Load_runner дополнительно использует 600 мс для локальной страховки при
|
||||
недопустимом значении. LOAD_STATUS=0x7C и LOAD_ATTEMPTS=0x7D доступны для чтения.
|
||||
|
||||
eeprom_config.h выбирает физическую микросхему при сборке. spise2p.h задаёт
|
||||
ширину адреса, длину страницы и типы задания SPI. gas167.h описывает границы
|
||||
профиля и контракт снимка. log_to_mem.h задаёт формат точек и ёмкость банков.
|
||||
RS485.h описывает состояние портов, буферы, FIFO и тайм-ауты.
|
||||
measure.h хранит частоты, типы датчиков и битовые состояния диагностики.
|
||||
caliber.h содержит заводские калибровочные значения. GPIO_table.h и peripher.h
|
||||
задают аппаратные сигналы. Остальные заголовки объявляют интерфейсы одноимённых
|
||||
модулей.
|
||||
|
||||
## Слово C28x и физические байты
|
||||
|
||||
На C28x int и char имеют ширину 16 бит. Адреса технологических регистров и GAS
|
||||
считаются словами. Размеры EEPROM, загрузочного SCI8 BIN и октеты RTU считаются
|
||||
8-битными байтами. Поэтому преобразование адреса EEPROM в байты выполняется
|
||||
явно. Хостовые проверки используют uint16_t и модель аппаратных регистров,
|
||||
чтобы обычные 8-битные char/32-битные int ПК не меняли смысл пакетов.
|
||||
|
||||
F28335.cmd размещает код в RAM и экспортирует абсолютные символы границ EEPROM.
|
||||
EEPROM не является памятью, доступной ядру напрямую: ROM загружает образ по SPI
|
||||
в RAM. Увеличение EEPROM не расширяет .text или RAM регистратора. Секция .logg
|
||||
остаётся в Zone7A. Подробные пределы: [EEPROM_LAYOUT.md](EEPROM_LAYOUT.md).
|
||||
|
||||
## Поставляемые TI файлы
|
||||
|
||||
DSP2833x_headers/include содержит структуры аппаратных регистров и их битовые
|
||||
поля. GlobalVariableDefs.c размещает структуры в именованных секциях; файлы
|
||||
Headers_BIOS.cmd/Headers_nonBIOS.cmd связывают их с аппаратными адресами.
|
||||
Рабочая сборка использует nonBIOS.
|
||||
|
||||
DSP2833x_common содержит начальную настройку тактов, таймеров, АЦП, PIE и XINTF,
|
||||
таблицы векторов и программные приоритеты ISR. В SWPrioritizedIsrLevels.h
|
||||
приоритет 0 исключает источник, меньшее ненулевое значение означает более
|
||||
высокий приоритет; MINT и MG вычисляют соответствующие маски.
|
||||
ADC_cal.asm и usDelay.asm обеспечивают фабричную калибровку/задержку C28x.
|
||||
Комментарии описывают исходный порядок инструкций; код поставляемых модулей
|
||||
не изменён.
|
||||
|
||||
## Настройки и результаты сборки
|
||||
|
||||
.project регистрирует связанные исходники и заголовки, .cproject задаёт Debug,
|
||||
Release, флаги, пути и pre/post-build. .ccsproject описывает устройство и
|
||||
инструментарий, .settings/*.prefs — настройки Eclipse/CCS. Эти XML и properties
|
||||
содержат русские комментарии без изменения значений опций.
|
||||
|
||||
firmware_identity.json — входные product/target. Паспорт BIN и
|
||||
profile-comparison.json — структурированные данные; комментарии JSON
|
||||
недопустимы. Их поля описаны в FIRMWARE_IDENTITY.md и GAS_167_M95M02.md.
|
||||
.bin/.hex/.out/.map, EXE, LIB и XLS — данные или результаты сторонних инструментов;
|
||||
их нельзя снабжать комментариями как исходный C-код. .paf2/.sbl и корневые
|
||||
.pjt/.lkf относятся к старым данным IDE/сборки. postBuildStep_Debug.old и fixya.bat
|
||||
сохранены как старые служебные сценарии; действующие шаги CCS определены в
|
||||
.cproject и соседних шаблонах.
|
||||
Reference in New Issue
Block a user