From 3ebfdca0a0eb81f4e17ebe2eb28feefce33e1cab Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 12 Oct 2026 16:44:51 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=81=D0=BA=D0=BE=D1=80=D0=BE=D1=81=D1=82=D1=8C?= =?UTF-8?q?=20SCI=20=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D0=BA=D1=83=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D1=91=D0=BC=D0=B0=20RS232?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Округлить делитель SCI по формуле аппаратуры, настроить вход RX и обработку ошибок FIFO. Добавить диагностические поля и проверки модели, установить 9600 бод для RS485 при Owen. Сохранить скрипт сборки, обновлённый образ прошивки и карту линковки. --- Bin/UKSSTMS320F28335.hex | Bin 32074 -> 32234 bytes Bin/UartBaudFix/rebuild.py | 41 + Doc/RS232_FIFO.md | 30 +- Source/Internal/Include/RS485.h | 4 + Source/Internal/RS485.c | 39 +- Source/Internal/main.c | 2 +- UKSSTMS320F28335.map | 1616 +++++++++++++++---------------- tests/rs232_fifo/model.inc | 29 + tests/rs232_fifo/run_test.py | 2 +- 9 files changed, 940 insertions(+), 823 deletions(-) create mode 100644 Bin/UartBaudFix/rebuild.py diff --git a/Bin/UKSSTMS320F28335.hex b/Bin/UKSSTMS320F28335.hex index 5ad567647c48885bf031e092598024fa0f52db4b..38f6d1392174c004c49ea2a66d47f1cefc6bb421 100644 GIT binary patch delta 6623 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 delta 6582 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 diff --git a/Bin/UartBaudFix/rebuild.py b/Bin/UartBaudFix/rebuild.py new file mode 100644 index 0000000..62ceca0 --- /dev/null +++ b/Bin/UartBaudFix/rebuild.py @@ -0,0 +1,41 @@ +from pathlib import Path # Формирует абсолютные пути сборки и установленных инструментов TI. +import subprocess # Выполняет компиляцию и проверку без shell-подстановок. +import json # Читает фактический идентификатор текущей сборки из её паспорта. +import sys # Использует текущий Python для подготовки паспорта и образа. +root = Path.cwd().resolve() # Фиксирует разрешённый корень проекта. +out = root / 'Bin/UartBaudFix' # Изолирует образ с исправленным делителем SCI и диагностикой ошибок приёмника. +obj = out / 'obj' # Хранит объекты полной текущей пересборки. +gen = out / 'generated' # Хранит паспорт текущих исходников. +for directory in (out, obj, gen): # Создаёт только подкаталоги этой сборки. + directory.mkdir(parents=True, exist_ok=True) # Не удаляет старые файлы проекта. +ti = Path('C:/ti/ccs1230/ccs/tools/compiler/ti-cgt-c2000_22.6.0.LTS') # Повторяет установленный компилятор CCS. +templates = root.parent / 'newProject/templates' # Использует штатную общую библиотеку проекта. +protocol = templates / 'c/set-protocol' # Задаёт интерфейсы и карту памяти УМП. +name = 'UKSSTMS320F28335_uart_rx_fix' # Различает прошивку с исправленной скоростью и сохранением ошибок SCI-A. +log = (out / 'build.log').open('w', encoding='utf-8') # Записывает диагностику в UTF-8. +def run(args): # Останавливает сборку при ошибке любого шага. + result = subprocess.run([str(arg) for arg in args], cwd=root, capture_output=True) # Передаёт параметры инструменту напрямую. + output = (result.stdout + result.stderr).decode('utf-8', errors='replace') # Декодирует диагностический вывод. + log.write(output); log.flush() # Сохраняет текущий результат до следующего шага. + if result.returncode: # Запрещает формирование готового BIN после ошибки. + print(output); raise SystemExit(result.returncode) # Показывает причину незавершённой сборки. + return output # Возвращает отчёт успешно выполненного шага. +run([sys.executable, root / 'UKSSTMS320F28335/prepare_identity.py', '--project', root / 'UKSSTMS320F28335', '--templates', templates, '--output', gen]) # Обновляет паспорт перед полной компиляцией. +includes = [root / 'UKSSTMS320F28335', root / 'Source/Internal/Include', root / 'Source/External/v120/DSP2833x_headers/include', root / 'Source/External/v120/DSP2833x_common/include', protocol, protocol / 'ports/tms320f28335', templates / 'c/firmware-info/include', gen, ti / 'include'] # Повторяет каталоги CCS с локальным паспортом сборки. +flags = ['-v28', '-ml', '-mt', '--float_support=fpu32', '-O3', '--opt_for_speed=0', '--define=_DEBUG', '--define=LARGE_MODEL', '-g', '--diag_warning=225', '--display_error_number', '--gen_func_subsections=on', '--abi=coffabi'] # Сохраняет ABI, FPU и существующую оптимизацию размера проекта. +flags += ['--include_path=' + str(path) for path in includes] # Передаёт каждый каталог отдельным аргументом. +common = root / 'Source/External/v120/DSP2833x_common/source' # Задаёт уже используемый комплект TI. +external = ['DSP2833x_ADC_cal.asm', 'DSP2833x_Adc.c', 'DSP2833x_CpuTimers.c', 'DSP2833x_PieCtrl.c', 'DSP2833x_SWPrioritizedDefaultIsr.c', 'DSP2833x_SWPrioritizedPieVect.c', 'DSP2833x_SysCtrl.c', 'DSP2833x_Xintf.c', 'DSP2833x_usDelay.asm'] # Повторяет штатный список внешних исходников. +sources = [common / item for item in external] + [root / 'Source/External/v120/DSP2833x_headers/source/DSP2833x_GlobalVariableDefs.c'] + sorted((root / 'Source/Internal').glob('*.c')) # Пересобирает все модули после окончательной правки. +for source in sources: # Последовательно компилирует каждый модуль. + run([ti / 'bin/cl2000.exe', *flags, '--obj_directory=' + str(obj), source]) # Проверяет настоящий C28x-код и создаёт новый объект. +objects = [obj / (source.stem + '.obj') for source in sources] # Использует только объекты завершённой текущей компиляции. +run([ti / 'bin/cl2000.exe', '-v28', '-ml', '-mt', '--float_support=fpu32', '--abi=coffabi', '-z', '--map_file=' + str(out / (name + '.map')), '--stack_size=0x3f0', '--warn_sections', '-i' + str(ti / 'lib'), '-i' + str(root), '-i' + str(protocol), '-i' + str(ti / 'include'), '--reread_libs', '--display_error_number', '--entry_point=_c_int00', '--rom_model', '--output_file=' + str(out / (name + '.out')), root / 'F28335.cmd', root / 'Source/External/v120/DSP2833x_headers/cmd/DSP2833x_Headers_nonBIOS.cmd', *objects, root / 'Libraries/rts2800_fpu32.lib', '-lrts2800_fpu32.lib', '-llibc.a']) # Линкует со штатной картой памяти и библиотеками времени выполнения. +run([ti / 'bin/hex2000.exe', '--diag_wrap=off', '--boot', '--sci8', '--binary', '-o', out / (name + '.candidate'), out / (name + '.out')]) # Создаёт кандидат загрузочного образа для обязательной проверки размера. +print(run([sys.executable, root / 'tests/gas167/check_image.py', out / (name + '.candidate'), '--eeprom', 'AT25256B']).strip()) # Проверяет EEPROM, RAM-блоки и точку входа до выдачи прошивки. +print(run([sys.executable, templates / 'c/firmware-info/tools/c2000_postbuild.py', '--compiler', ti, '--build-dir', out, '--artifact', name, '--metadata', gen / 'firmware_identity.json', '--output', out]).strip()) # Создаёт штатный BIN, манифест и SHA-256 без экспорта в другие проекты. +bin_path = out / (name + '_' + json.loads((gen / 'firmware_identity.json').read_text(encoding='utf-8'))['build_id'] + '.bin') # Выбирает именно текущую сборку, даже если в каталоге остаются прежние BIN. +print(run([sys.executable, root / 'tests/gas167/check_image.py', bin_path, '--eeprom', 'AT25256B']).strip()) # Повторяет проверку на самом выдаваемом BIN после штатной упаковки. +assert bin_path.read_bytes() == (out / (name + '.candidate')).read_bytes() # Подтверждает совпадение проверенного кандидата и итоговой прошивки. +log.close() # Завершает полный лог успешно проверенной сборки. +print('READY:', bin_path) # Указывает пользователю точный готовый результат. diff --git a/Doc/RS232_FIFO.md b/Doc/RS232_FIFO.md index 2e2849f..90f2779 100644 --- a/Doc/RS232_FIFO.md +++ b/Doc/RS232_FIFO.md @@ -1,6 +1,6 @@ # RS232 FIFO для ПМ35 / TMS320F28335 -Ветка `codex/pm35-uart-fifo`. FIFO включён **только SCI-A / COM_1 / RS232**. +Ветка `pm35-uart-fifo`. FIFO включён **только SCI-A / COM_1 / RS232**. SCI-B / COM_2 / RS485 сохраняет прежние настройки и обработчики без FIFO. Скорости портов не менялись: RS232 115200; RS485 — прежние 57600/115200. @@ -27,6 +27,34 @@ SCI-B / COM_2 / RS485 сохраняет прежние настройки и о ошибки требует нового CMD_INITLOAD. Расчёт паузы предназначен для 115200. - Счётчики отладчика: `rs_a.fifo_rx_errors`, `rs_a.fifo_overflows`. +## Расчёт скорости и диагностика приёма + +FIFO остаётся включённым. Для SCI используется формула TI SPRUI07: +`baud = LSPCLK / (8 * (BRR + 1))`. Функция `RS_SetLineSpeed` округляет +отношение `LSPCLK / (8 * baud)` и вычитает единицу перед записью BRR. +При LSPCLK 60 МГц и заданных 115200 бод регистры должны содержать +`SCIHBAUD=0`, `SCILBAUD=64` (`0x40`). Реальная скорость — 115384,6 бод, +отклонение +0,16 %. Прежнее значение 65 давало 113636,4 бод; сама по себе +эта разница не доказывает причину наблюдавшегося отказа на плате. + +GPIO28 настраивается как асинхронный вход SCI-A с подтяжкой к уровню покоя. +Прерывание RXERROR разрешается во время приёма: BREAK при пустом FIFO +не может вызвать прерывание по порогу RXFFIL. Во время передачи оно +отключается вместе с RX FIFO, чтобы ошибка RX не сбрасывала активный TX. + +Для просмотра в CCS добавлены поля в RAM: + +| Поле `rs_a` | Назначение | +|---|---| +| `fifo_rx_bytes` | Количество прочитанных из FIFO байтов, включая повреждённые | +| `fifo_rx_last_word` | Последнее слово SCIRXBUF; данные в битах 7:0, FE/PE в битах 15:14 | +| `fifo_rx_last_status` | SCIRXST последней ошибки до сброса; BREAK/FE/OE/PE в битах 5/4/3/2 | +| `fifo_rx_last_error_word` | Повреждённое слово FE/PE либо ноль при общей ошибке до чтения FIFO | + +Смотрите эти поля и отдельные регистры управления. Чтение SCIRXBUF в Watch +изменяет состояние приёмника; для просмотра данных TI предусматривает +SCIRXEMU. Описание регистров: [TI SPRUI07](https://www.ti.com/lit/ug/sprui07/sprui07.pdf). + Это UART-оптимизация. Она не меняет команды/формат логгера УМП и не подключает экспериментальный GAS-логгер. Размеры блоков чтения УМП остаются прежними. diff --git a/Source/Internal/Include/RS485.h b/Source/Internal/Include/RS485.h index 883fcb8..460991b 100644 --- a/Source/Internal/Include/RS485.h +++ b/Source/Internal/Include/RS485.h @@ -116,6 +116,10 @@ typedef struct volatile unsigned int fifo_tx_active, fifo_rx_guard; /* Объявляет fifo_rx_errors — данные fifo_rx_errors; fifo_overflows — данные fifo_overflows. volatile требует фактического чтения или записи при каждом доступе. */ volatile unsigned long fifo_rx_errors, fifo_overflows; + volatile unsigned long fifo_rx_bytes; /* Считает байты, реально прочитанные обработчиком из FIFO SCI-A; чтение этого поля в CCS не изменяет приёмник. */ + volatile unsigned int fifo_rx_last_word; /* Хранит последнее чтение SCIRXBUF: байт в битах 7:0, FE в бите 15 и PE в бите 14. */ + volatile unsigned int fifo_rx_last_status; /* Хранит SCIRXST последней ошибки до сброса: BREAK/FE/OE/PE в битах 5/4/3/2. */ + volatile unsigned int fifo_rx_last_error_word; /* Хранит слово FE/PE, вызвавшее сброс, либо ноль при общей ошибке SCI до чтения FIFO. */ /* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */ #endif diff --git a/Source/Internal/RS485.c b/Source/Internal/RS485.c index 8b0cfc4..48adf7b 100644 --- a/Source/Internal/RS485.c +++ b/Source/Internal/RS485.c @@ -41,7 +41,7 @@ static int RS_FifoStart(RS_DATA *, unsigned int *, unsigned long, int); /* Заполняет TX FIFO доступными байтами, сохраняя длину и положение в передаваемом пакете. */ static void RS_FifoTx(RS_DATA *); /* Прерывает ошибочный приём FIFO, очищает аппаратное состояние и включает защитную паузу. */ -static void RS_FifoAbort(RS_DATA *); +static void RS_FifoAbort(RS_DATA *, unsigned int); /* Принимает слово с признаками FE/PE либо ноль при общей ошибке SCI; сохраняет причину до очистки регистров. */ /* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */ #endif @@ -195,7 +195,7 @@ void RS_RX_Handler(RS_DATA *rs_arr) /* Проверяет if (rs_arr->SciRegs->SCIFFRX.bit.RXFFOVF или rs_arr->SciRegs->SCIRXST.bit.RXERROR); последующий оператор выполняется только при истинном условии. */ if (rs_arr->SciRegs->SCIFFRX.bit.RXFFOVF || rs_arr->SciRegs->SCIRXST.bit.RXERROR) { /* Вызывает RS_FifoAbort. Прерывает ошибочный приём FIFO, очищает аппаратное состояние и включает защитную паузу. */ - RS_FifoAbort(rs_arr); return; + RS_FifoAbort(rs_arr,0); return; /* Сохраняет SCIRXST при общей ошибке или переполнении; SCIRXBUF здесь не читался. */ /* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */ } /* Проверяет if (!rs_arr->SciRegs->SCIFFRX.bit.RXFFST); последующий оператор выполняется только при истинном условии. */ @@ -209,8 +209,10 @@ void RS_RX_Handler(RS_DATA *rs_arr) /* Закрывает текущий блок или список полей; следующие операторы относятся к внешнему уровню. */ } received=rs_arr->SciRegs->SCIRXBUF.all; /* one pop, data + FE/PE */ /* Записывает received значением rs_arr->SciRegs->SCIRXBUF.all; данные received. */ - /* Проверяет if (received & 0xC000U); последующий оператор выполняется только при истинном условии. */ - if (received & 0xC000U) { RS_FifoAbort(rs_arr); return; } + rs_arr->fifo_rx_bytes++; /* Считает реальные чтения байтов из FIFO, включая повреждённые и пропущенные во время защитной паузы. */ + rs_arr->fifo_rx_last_word=received; /* Сохраняет данные в битах 7:0 и признаки FE/PE в битах 15:14, позволяя смотреть их в RAM без чтения FIFO отладчиком. */ + /* Маска 0xC000 из описания SCIRXBUF в TI SPRUI07 выбирает ошибку стопового бита FE и ошибку чётности PE текущего байта. */ + if (received & 0xC000U) { RS_FifoAbort(rs_arr,received); return; } /* Передаёт повреждённое слово диагностике до сброса FIFO и отвергает весь пакет. */ /* Проверяет if (rs_arr->fifo_rx_guard); последующий оператор выполняется только при истинном условии. */ if (rs_arr->fifo_rx_guard) { rs_arr->fifo_rx_guard=4; continue; } /* Записывает Rc значением received & 255U; данные Rc. */ @@ -719,13 +721,15 @@ int RS_BSend(RS_DATA *rs_arr,unsigned int *pBuf, unsigned long len) void RS_SetLineSpeed(RS_DATA *rs_arr,unsigned long speed) /* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */ { - /* Объявляет SciBaud — SCI скорость передачи. */ - long SciBaud; - - /* Записывает SciBaud значением LSPCLK/(speed*8.0); SCI скорость передачи. */ - SciBaud = LSPCLK/(speed*8.0); - -// if((SciBaud-(unsigned int)SciBaud)>0.5) SciBaud++; + unsigned long SciBaud; /* Хранит 16-битный BRR в 32-битном типе, чтобы до вычитания единицы представить делитель 65536. */ + unsigned long baud_clock; /* Хранит частоту выборки SCI в Гц: по TI SPRUI07 на один бит приходится восемь тактов. */ + if (!speed || speed > 0xFFFFFFFFUL/8UL || LSPCLK <= 0) return; /* Исключает деление на ноль, переполнение 32-битного произведения и настройку до определения частоты SCI. */ + baud_clock=speed*8UL; /* Переводит скорость в бодах в требуемую частоту восьмикратной выборки без вычислений с плавающей точкой. */ + SciBaud=(unsigned long)LSPCLK/baud_clock; /* Вычисляет целую часть отношения LSPCLK к частоте выборки; это BRR+1 согласно формуле TI. */ + if ((unsigned long)LSPCLK%baud_clock >= (baud_clock+1UL)/2UL) SciBaud++; /* Округляет делитель к ближайшему целому по остатку, не складывая большие частоты с риском переполнения. */ + if (SciBaud < 2UL) SciBaud=2UL; /* Ограничивает максимальную скорость значением LSPCLK/16; BRR=0 тоже имеет этот особый предел по TI SPRUI07. */ + if (SciBaud > 65536UL) SciBaud=65536UL; /* Ограничивает отношение диапазоном 16-битного BRR+1, чтобы малая скорость не оборачивала регистр. */ + SciBaud--; /* Преобразует отношение в BRR: при 60 МГц и 115200 бод получает 64, что даёт 115384,6 бод вместо прежних 113636,4. */ /* Записывает rs_arr->SciRegs->SCIHBAUD значением HIBYTE((int)SciBaud); rs arr SCI Regs SCIHBAUD. */ rs_arr->SciRegs->SCIHBAUD = HIBYTE((int)SciBaud); @@ -781,6 +785,8 @@ void setup_uart(char commnumber, unsigned long speed_baud) GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1; // SCITXDA - SCI-A transmit(O) /* Записывает GpioCtrlRegs.GPAMUX2.bit.GPIO28 значением 1; аппаратная линия ввода/вывода GPIO28. */ GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1; // SCIRXDA - SCI-A receive (I) + GpioCtrlRegs.GPAQSEL2.bit.GPIO28 = 3; /* Выбирает асинхронный вход SCIRXDA по TI SPRUI07; исключает задержки фильтра GPIO, оставшиеся после другой программы или JTAG. */ + GpioCtrlRegs.GPAPUD.bit.GPIO28 = 0; /* Включает внутреннюю подтяжку входа RX к уровню покоя UART, чтобы неподключённый вход не создавал ложные старты. */ /* Записывает PieVectTable.SCIRXINTA значением &RSA_RX_Handler; данные SCIRXINTA. */ PieVectTable.SCIRXINTA = &RSA_RX_Handler; @@ -867,6 +873,7 @@ void setup_uart(char commnumber, unsigned long speed_baud) #if RS232_USE_FIFO /* Проверяет if (commnumber == COM_1); последующий оператор выполняется только при истинном условии. */ if (commnumber == COM_1) { + SciRegs->SCICTL1.bit.RXERRINTENA=1; /* Разрешает отдельное RX-прерывание по BREAK/RXERROR: в FIFO-режиме BREAK может не положить байт в FIFO и не достичь порога RXFFIL. */ SciRegs->SCIFFTX.all=0xC008U; /* enhancement, reset held, TX level 8, IRQ off */ /* Записывает SciRegs->SCIFFTX.all значением 0xC008U; представление регистра целым словом без разбиения на битовые поля. */ SciRegs->SCIFFRX.all=0x0061U; /* reset held, RX level 1, IRQ on */ /* Записывает SciRegs->SCIFFRX.all значением 0x0061U; представление регистра целым словом без разбиения на битовые поля. */ /* Записывает SciRegs->SCIFFCT.all значением 0; представление регистра целым словом без разбиения на битовые поля. */ @@ -883,6 +890,10 @@ void setup_uart(char commnumber, unsigned long speed_baud) rs_arr->fifo_tx_active=rs_arr->fifo_rx_guard=0; /* Записывает rs_arr->fifo_rx_errors значением rs_arr->fifo_overflows=0; данные rs_arr->fifo_rx_errors. */ rs_arr->fifo_rx_errors=rs_arr->fifo_overflows=0; + rs_arr->fifo_rx_bytes=0; /* Начинает счёт реальных чтений FIFO заново при настройке SCI-A. */ + rs_arr->fifo_rx_last_word=0; /* До первого чтения FIFO диагностическое слово не содержит старых данных RAM. */ + rs_arr->fifo_rx_last_status=0; /* Очищает сохранённые признаки BREAK, FE, OE и PE предыдущего запуска. */ + rs_arr->fifo_rx_last_error_word=0; /* Очищает сохранённый повреждённый байт и его признаки FE/PE. */ /* Выполняет альтернативу, если предыдущее условие if оказалось ложным. */ } else /* Закрывает условный блок препроцессора; дальнейшие строки относятся к внешнему уровню. */ @@ -1071,6 +1082,7 @@ static void RS_FifoTx(RS_DATA *rs_arr) enableUARTInt(rs_arr); /* Записывает rs_arr->SciRegs->SCIFFRX.bit.RXFFIENA значением 1; данные RXFFIENA. */ rs_arr->SciRegs->SCIFFRX.bit.RXFFIENA=1; + rs_arr->SciRegs->SCICTL1.bit.RXERRINTENA=1; /* Возвращает обработку BREAK и ошибок приёмника вместе с RX FIFO после завершения передачи. */ /* Записывает rs_arr->fifo_tx_active значением 0; данные rs_arr->fifo_tx_active. */ rs_arr->fifo_tx_active=0; /* Выполняет альтернативу, если предыдущее условие if оказалось ложным. */ @@ -1125,6 +1137,7 @@ static int RS_FifoStart(RS_DATA *rs_arr,unsigned int *buffer,unsigned long count rs_arr->SciRegs->SCIFFTX.bit.TXFFIENA=0; /* Записывает rs_arr->SciRegs->SCIFFRX.bit.RXFFIENA значением 0; данные RXFFIENA. */ rs_arr->SciRegs->SCIFFRX.bit.RXFFIENA=0; + rs_arr->SciRegs->SCICTL1.bit.RXERRINTENA=0; /* Запрещает сброс SCI по шуму RX во время TX, когда прерывания приёма FIFO также отключены. */ /* Вызывает enableUARTIntW с аргументами (rs_arr) в текущей последовательности операций. */ enableUARTIntW(rs_arr); /* Вызывает RS_SetBitMode с аргументами (rs_arr,8) в текущей последовательности операций. */ @@ -1152,9 +1165,11 @@ static int RS_FifoStart(RS_DATA *rs_arr,unsigned int *buffer,unsigned long count } /* Прерывает ошибочный приём FIFO, очищает аппаратное состояние и включает защитную паузу. */ -static void RS_FifoAbort(RS_DATA *rs_arr) +static void RS_FifoAbort(RS_DATA *rs_arr,unsigned int error_word) /* Получает считанное слово FE/PE либо ноль, если ошибка обнаружена до чтения FIFO. */ /* Открывает составной блок или описание полей; следующие строки принадлежат этому уровню вложенности. */ { + rs_arr->fifo_rx_last_status=rs_arr->SciRegs->SCIRXST.all; /* Сохраняет SCIRXST до SWRESET: биты 5/4/3/2 означают BREAK/FE/OE/PE по TI SPRUI07. */ + rs_arr->fifo_rx_last_error_word=error_word; /* Сохраняет признаки FE/PE и значение повреждённого байта; ноль означает проверку общей ошибки до чтения SCIRXBUF. */ /* Изменяет счётчик в выражении rs_arr->fifo_rx_errors++; на один для следующего шага. */ rs_arr->fifo_rx_errors++; /* Проверяет if (rs_arr->SciRegs->SCIFFRX.bit.RXFFOVF) rs_arr->fifo_overflows++; последующий оператор выполняется только при истинном условии. */ diff --git a/Source/Internal/main.c b/Source/Internal/main.c index 47fcdec..9ecc4c9 100644 --- a/Source/Internal/main.c +++ b/Source/Internal/main.c @@ -109,7 +109,7 @@ void main() setup_uart(COM_1,115200); /* Проверяет if(Owen)setup_uart(COM_2,57600); последующий оператор выполняется только при истинном условии. */ - if(Owen)setup_uart(COM_2,115200); + if(Owen)setup_uart(COM_2,9600); /* Выполняет альтернативу, если предыдущее условие if оказалось ложным. */ else setup_uart(COM_2,115200); diff --git a/UKSSTMS320F28335.map b/UKSSTMS320F28335.map index 3ebf99e..c9e3aa5 100644 --- a/UKSSTMS320F28335.map +++ b/UKSSTMS320F28335.map @@ -1,10 +1,10 @@ ****************************************************************************** TMS320C2000 Linker PC v22.6.0 ****************************************************************************** ->> Linked Mon Oct 12 12:25:16 2026 +>> Linked Mon Oct 12 14:01:14 2026 OUTPUT FILE NAME: -ENTRY POINT SYMBOL: "_c_int00" address: 0000a855 +ENTRY POINT SYMBOL: "_c_int00" address: 0000a8cd MEMORY CONFIGURATION @@ -13,7 +13,7 @@ MEMORY CONFIGURATION ---------------------- -------- --------- -------- -------- ---- -------- PAGE 0: ZONE0 00004000 00001000 00000000 00001000 RWIX - RAML0 00008000 00004000 00003aa7 00000559 RWIX + RAML0 00008000 00004000 00003af7 00000509 RWIX RAML4 0000c000 00001000 000003e6 00000c1a RWIX ZONE6 00100000 00100000 00000000 00100000 RWIX FLASHH 00300000 00008000 00000000 00008000 RWIX @@ -87,7 +87,7 @@ PAGE 1: SCIB 00007750 00000010 00000010 00000000 RWIX SCIC 00007770 00000010 00000010 00000000 RWIX I2CA 00007900 00000040 00000022 0000001e RWIX - RAML5 0000d000 00003000 0000105e 00001fa2 RWIX + RAML5 0000d000 00003000 00001064 00001f9c RWIX ZONE7A 00200000 0000fc00 0000fa00 00000200 RWIX ZONE7B 0020fc00 00000400 00000000 00000400 RWIX FLASHB 00330000 00008000 00000000 00008000 RWIX @@ -126,230 +126,230 @@ section page origin length input sections .pinit 0 00008000 00000000 UNINITIALIZED -.text 0 00008000 00003aa7 +.text 0 00008000 00003af7 00008000 0000025a measure.obj (.text:_Current_count) 0000825a 000001dd ADC.obj (.text:_adc_isr) 00008437 000001a7 measure.obj (.text:_Temper_count) - 000085de 000001a3 peripher.obj (.text:_get_Buttons) - 00008781 0000019f main.obj (.text:_main) - 00008920 0000018d ADC.obj (.text:_setup_adc) - 00008aad 00000184 measure.obj (.text:_cpu_timer1_isr_SENS) - 00008c31 0000015c DAC.obj (.text:_Load_runner) - 00008d8d 00000152 RS485.obj (.text:_RS_RX_Handler) - 00008edf 00000143 pulto.obj (.text:_cpu_timer1_isr_PULT) - 00009022 00000129 measure.obj (.text:_Init_sensors) - 0000914b 00000122 spise2p.obj (.text:_SPISE2P_DRV_tick) - 0000926d 00000115 peripher.obj (.text:_get_Mode) - 00009382 0000010b kanal.obj (.text:_kanal_Send) - 0000948d 000000f9 measure.obj (.text:_Power_count) - 00009586 000000ec message.obj (.text:_Default_params) - 00009672 000000ce RS485.obj (.text:_setup_uart) - 00009740 000000b3 log_to_mem.obj (.text:_ump_log_read) - 000097f3 000000ae measure.obj (.text:_calc_sensor_koef) - 000098a1 000000ac ecan.obj (.text:_InitCan) - 0000994d 000000a8 ecan.obj (.text:_UMP_CAN_service) - 000099f5 00000001 bios.obj (.text:_init) - 000099f6 0000009d message.obj (.text:_ReceiveCommandModbus3) - 00009a93 0000009c peripher.obj (.text:_select_tpl_canal) - 00009b2f 00000097 bios.obj (.text:_upload) - 00009bc6 00000094 measure.obj (.text:_Init_packMask) - 00009c5a 00000090 RS485.obj (.text:_RS_FifoTx) - 00009cea 0000008c message.obj (.text:_receive_ump) - 00009d76 0000008a log_to_mem.obj (.text:_ump_capture) - 00009e00 00000088 rts2800_fpu32.lib : fs_div.obj (.text) - 00009e88 00000085 DSP2833x_SysCtrl.obj (.text:_InitPeripheralClocks) - 00009f0d 00000084 bios.obj (.text:_extendbios) - 00009f91 00000001 bios.obj (.text:_run) - 00009f92 00000083 shared_ump.obj (.text:_ump_rtu_encode) - 0000a015 00000082 DSP2833x_SysCtrl.obj (.text:_InitPll) - 0000a097 00000078 bios.obj (.text:_peek) - 0000a10f 00000072 ecan.obj (.text:_Handlai) - 0000a181 00000071 shared_ump.obj (.text:_ump_validate) - 0000a1f2 00000070 log_to_mem.obj (.text:_ump_log_write) - 0000a262 0000006e RS485.obj (.text:_RS_TX_Handler) - 0000a2d0 00000069 DAC.obj (.text:_Load_protection_prepare) - 0000a339 00000062 measure.obj (.text:_Init_sensors_more) - 0000a39b 00000059 DSP2833x_Xintf.obj (.text:_InitXintf16Gpio) - 0000a3f4 00000057 bios.obj (.text:_get_command) - 0000a44b 00000050 message.obj (.text:_ReceiveCommandModbus6) - 0000a49b 0000004e DAC.obj (.text:_anal_output) - 0000a4e9 0000004e DAC.obj (.text:_load_start) - 0000a537 0000004d shared_ump.obj (.text:_ump_prepare) - 0000a584 0000004c RS485.obj (.text:_RS_FifoStart) - 0000a5d0 0000004b RS485.obj (.text:_RS_Send) - 0000a61b 0000004a ecan.obj (.text:_CANa_handler) - 0000a665 00000049 bios.obj (.text:_load) - 0000a6ae 00000048 ecan.obj (.text:_CAN_send) - 0000a6f6 00000047 bios.obj (.text:_initload) - 0000a73d 00000046 RS485.obj (.text:_RSA_RX_Handler) - 0000a783 00000046 RS485.obj (.text:_RSA_TX_Handler) - 0000a7c9 00000046 RS485.obj (.text:_RSB_RX_Handler) - 0000a80f 00000046 RS485.obj (.text:_RSB_TX_Handler) - 0000a855 00000046 rts2800_fpu32.lib : boot.obj (.text) - 0000a89b 00000042 log_to_mem.obj (.text:_ump_log_can) - 0000a8dd 00000041 RS485.obj (.text:_RS_FifoAbort) - 0000a91e 00000041 spise2p.obj (.text:_Seeprom_read) - 0000a95f 00000041 spise2p.obj (.text:_Seeprom_write) - 0000a9a0 00000041 RS485.obj (.text:_setup_arr_cmd_length) - 0000a9e1 00000040 message.obj (.text:_Load_params) - 0000aa21 0000003e tools.obj (.text:_init_zone7) - 0000aa5f 0000003b DSP2833x_CpuTimers.obj (.text:_InitCpuTimers) - 0000aa9a 0000003b DAC.obj (.text:_Load_voltage_can) - 0000aad5 0000003b shared_ump.obj (.text:_ump_can_fragment) - 0000ab10 0000003a bios.obj (.text:_poke) - 0000ab4a 00000039 spise2p.obj (.text:_cpu_timer2_isr) - 0000ab83 00000038 message.obj (.text:_SendCommandModbus4) - 0000abbb 00000038 shared_ump.obj (.text:_ump_tms28335_fragment) - 0000abf3 00000037 RS485.obj (.text:_RS_BSend) - 0000ac2a 00000037 message.obj (.text:_ReceiveAnswerModbus4) - 0000ac61 00000033 bios.obj (.text:_Answer) - 0000ac94 00000033 message.obj (.text:_modbus_exception) - 0000acc7 00000033 log_to_mem.obj (.text:_ump_word) - 0000acfa 00000032 spise2p.obj (.text:_SPISE2P_DRV_init) - 0000ad2c 00000032 peripher.obj (.text:_unsetup_leds_line) - 0000ad5e 00000031 DAC.obj (.text:_dSEND) - 0000ad8f 0000002f RS485.obj (.text:_RS_FifoTick1ms) - 0000adbe 0000002e filter_bat2.obj (.text:_filterbat) - 0000adec 0000002e log_to_mem.obj (.text:_ump_log_io) - 0000ae1a 0000002d RS485.obj (.text:_RS_SetLineMode) - 0000ae47 0000002d main.obj (.text:_timer_Init) - 0000ae74 0000002c crc16.obj (.text:_get_crc_16b) - 0000aea0 0000002b ecan.obj (.text:_CANa_reset_err) - 0000aecb 0000002a rts2800_fpu32.lib : l_div.obj (.text) - 0000aef5 00000029 spise2p.obj (.text:_InitSeeprom) - 0000af1e 00000027 crc16.obj (.text:_get_crc16) - 0000af45 00000026 RS485.obj (.text:_RS_SetLineSpeed) - 0000af6b 00000024 message.obj (.text:_Save_params) - 0000af8f 00000024 DAC.obj (.text:_load_stop) - 0000afb3 00000024 peripher.obj (.text:_select_tpl_255) - 0000afd7 00000022 peripher.obj (.text:_setup_leds_line) - 0000aff9 00000021 DSP2833x_CpuTimers.obj (.text:_ConfigCpuTimer) - 0000b01a 00000020 DAC.obj (.text:_Setup_DAC_time) - 0000b03a 00000020 rts2800_fpu32.lib : sqrt.obj (.text) - 0000b05a 0000001f DSP2833x_PieCtrl.obj (.text:_InitPieCtrl) - 0000b079 0000001f measure.obj (.text:_reset_errs) - 0000b098 0000001e DAC.obj (.text:_Load_control_init) - 0000b0b6 0000001e kanal.obj (.text:_SENDBIT) - 0000b0d4 0000001d log_to_mem.obj (.text:_ump_log_init) - 0000b0f1 0000001d shared_ump.obj (.text:_ump_tms28335_prepare) - 0000b10e 0000001d pulto.obj (.text:_what_is) - 0000b12b 0000001c DAC.obj (.text:_Init_DAC) - 0000b147 0000001c measure.obj (.text:_im_calc) - 0000b163 0000001c shared_ump.obj (.text:_ump_crc) - 0000b17f 0000001c shared_ump.obj (.text:_ump_tms28335_capture) - 0000b19b 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ADCINT_ISR) - 0000b1b6 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH1_ISR) - 0000b1d1 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH2_ISR) - 0000b1ec 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH3_ISR) - 0000b207 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH4_ISR) - 0000b222 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH5_ISR) - 0000b23d 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH6_ISR) - 0000b258 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAN0INTA_ISR) - 0000b273 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAN0INTB_ISR) - 0000b28e 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAN1INTA_ISR) - 0000b2a9 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAN1INTB_ISR) - 0000b2c4 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP1_INT_ISR) - 0000b2df 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP2_INT_ISR) - 0000b2fa 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP3_INT_ISR) - 0000b315 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP4_INT_ISR) - 0000b330 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP5_INT_ISR) - 0000b34b 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP6_INT_ISR) - 0000b366 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM1_INT_ISR) - 0000b381 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM1_TZINT_ISR) - 0000b39c 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM2_INT_ISR) - 0000b3b7 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM2_TZINT_ISR) - 0000b3d2 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM3_INT_ISR) - 0000b3ed 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM3_TZINT_ISR) - 0000b408 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM4_INT_ISR) - 0000b423 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM4_TZINT_ISR) - 0000b43e 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM5_INT_ISR) - 0000b459 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM5_TZINT_ISR) - 0000b474 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM6_INT_ISR) - 0000b48f 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM6_TZINT_ISR) - 0000b4aa 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EQEP1_INT_ISR) - 0000b4c5 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EQEP2_INT_ISR) - 0000b4e0 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_I2CINT1A_ISR) - 0000b4fb 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_I2CINT2A_ISR) - 0000b516 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_LUF_ISR) - 0000b531 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_LVF_ISR) - 0000b54c 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_MRINTA_ISR) - 0000b567 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_MRINTB_ISR) - 0000b582 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_MXINTA_ISR) - 0000b59d 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_MXINTB_ISR) - 0000b5b8 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCIRXINTA_ISR) - 0000b5d3 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCIRXINTB_ISR) - 0000b5ee 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCIRXINTC_ISR) - 0000b609 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCITXINTA_ISR) - 0000b624 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCITXINTB_ISR) - 0000b63f 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCITXINTC_ISR) - 0000b65a 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SEQ1INT_ISR) - 0000b675 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SEQ2INT_ISR) - 0000b690 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SPIRXINTA_ISR) - 0000b6ab 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SPITXINTA_ISR) - 0000b6c6 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_TINT0_ISR) - 0000b6e1 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_WAKEINT_ISR) - 0000b6fc 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT3_ISR) - 0000b717 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT4_ISR) - 0000b732 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT5_ISR) - 0000b74d 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT6_ISR) - 0000b768 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT7_ISR) - 0000b783 0000001b rts2800_fpu32.lib : args_main.obj (.text) - 0000b79e 0000001a RS485.obj (.text:_RS_SetBitMode) - 0000b7b8 0000001a RS485.obj (.text:_create_uart_vars) - 0000b7d2 00000019 DSP2833x_Adc.obj (.text:_InitAdc) - 0000b7eb 00000019 DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT1_ISR) - 0000b804 00000019 DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT2_ISR) - 0000b81d 00000019 rts2800_fpu32.lib : exit.obj (.text) - 0000b836 00000019 : prolog.obj (.text) - 0000b84f 00000018 kanal.obj (.text:_RESET) - 0000b867 00000018 log_to_mem.obj (.text:_ump_log_tick) - 0000b87f 00000017 log_to_mem.obj (.text:_clear_mem) - 0000b896 00000016 DSP2833x_SysCtrl.obj (.text:_ServiceDog) - 0000b8ac 00000014 bios.obj (.text:__getbyte) - 0000b8c0 00000014 measure.obj (.text:_er_anal) - 0000b8d4 00000014 log_to_mem.obj (.text:_ump_outputs) - 0000b8e8 00000013 RS485.obj (.text:_RS_FifoWait) - 0000b8fb 00000013 log_to_mem.obj (.text:_ump_inputs) - 0000b90e 00000012 crc16.obj (.text:_get_crc_16) - 0000b920 00000010 tools.obj (.text:_pause_us) - 0000b930 00000010 shared_ump.obj (.text:_read_word) - 0000b940 0000000d DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DATALOG_ISR) - 0000b94d 0000000d DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_INT13_ISR) - 0000b95a 0000000d DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_INT14_ISR) - 0000b967 0000000d DSP2833x_SWPrioritizedPieVect.obj (.text:_InitPieVectTable) - 0000b974 0000000d DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_RTOSINT_ISR) - 0000b981 0000000c rts2800_fpu32.lib : epilog.obj (.text) - 0000b98d 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EMUINT_ISR) - 0000b998 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ILLEGAL_ISR) - 0000b9a3 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_NMI_ISR) - 0000b9ae 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER10_ISR) - 0000b9b9 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER11_ISR) - 0000b9c4 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER12_ISR) - 0000b9cf 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER1_ISR) - 0000b9da 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER2_ISR) - 0000b9e5 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER3_ISR) - 0000b9f0 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER4_ISR) - 0000b9fb 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER5_ISR) - 0000ba06 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER6_ISR) - 0000ba11 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER7_ISR) - 0000ba1c 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER8_ISR) - 0000ba27 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER9_ISR) - 0000ba32 0000000b log_to_mem.obj (.text:_ump_log_rs) - 0000ba3d 0000000b rts2800_fpu32.lib : u_div.obj (.text) - 0000ba48 0000000a DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_INT_NOTUSED_ISR) - 0000ba52 0000000a DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_PIE_RESERVED) - 0000ba5c 0000000a DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_rsvd_ISR) - 0000ba66 00000009 DSP2833x_PieCtrl.obj (.text:_EnableInterrupts) - 0000ba6f 00000009 DSP2833x_SysCtrl.obj (.text:_InitSysCtrl) - 0000ba78 00000009 rts2800_fpu32.lib : _lock.obj (.text) - 0000ba81 00000008 DSP2833x_SysCtrl.obj (.text:_DisableDog) - 0000ba89 00000007 rts2800_fpu32.lib : memset.obj (.text) - 0000ba90 00000005 spise2p.obj (.text:_SPISE2P_DRV_csclr) - 0000ba95 00000005 spise2p.obj (.text:_SPISE2P_DRV_csset) - 0000ba9a 00000005 cntrl_adr.obj (.text:_set_cntrl_addr) - 0000ba9f 00000004 DSP2833x_usDelay.obj (.text) - 0000baa3 00000003 shared_ump.obj (.text:_write_word) - 0000baa6 00000001 bios.obj (.text:_tflash) + 000085de 000001a6 main.obj (.text:_main) + 00008784 000001a3 peripher.obj (.text:_get_Buttons) + 00008927 0000018d ADC.obj (.text:_setup_adc) + 00008ab4 00000184 measure.obj (.text:_cpu_timer1_isr_SENS) + 00008c38 0000015f RS485.obj (.text:_RS_RX_Handler) + 00008d97 0000015c DAC.obj (.text:_Load_runner) + 00008ef3 00000143 pulto.obj (.text:_cpu_timer1_isr_PULT) + 00009036 00000129 measure.obj (.text:_Init_sensors) + 0000915f 00000122 spise2p.obj (.text:_SPISE2P_DRV_tick) + 00009281 00000115 peripher.obj (.text:_get_Mode) + 00009396 0000010b kanal.obj (.text:_kanal_Send) + 000094a1 000000f9 measure.obj (.text:_Power_count) + 0000959a 000000ec message.obj (.text:_Default_params) + 00009686 000000e5 RS485.obj (.text:_setup_uart) + 0000976b 000000b3 log_to_mem.obj (.text:_ump_log_read) + 0000981e 000000ae measure.obj (.text:_calc_sensor_koef) + 000098cc 000000ac ecan.obj (.text:_InitCan) + 00009978 000000a8 ecan.obj (.text:_UMP_CAN_service) + 00009a20 0000009d message.obj (.text:_ReceiveCommandModbus3) + 00009abd 0000009c peripher.obj (.text:_select_tpl_canal) + 00009b59 00000097 bios.obj (.text:_upload) + 00009bf0 00000094 measure.obj (.text:_Init_packMask) + 00009c84 00000092 RS485.obj (.text:_RS_FifoTx) + 00009d16 0000008c message.obj (.text:_receive_ump) + 00009da2 0000008a log_to_mem.obj (.text:_ump_capture) + 00009e2c 00000088 rts2800_fpu32.lib : fs_div.obj (.text) + 00009eb4 00000085 DSP2833x_SysCtrl.obj (.text:_InitPeripheralClocks) + 00009f39 00000084 bios.obj (.text:_extendbios) + 00009fbd 00000001 bios.obj (.text:_init) + 00009fbe 00000083 shared_ump.obj (.text:_ump_rtu_encode) + 0000a041 00000082 DSP2833x_SysCtrl.obj (.text:_InitPll) + 0000a0c3 00000078 bios.obj (.text:_peek) + 0000a13b 00000072 ecan.obj (.text:_Handlai) + 0000a1ad 00000071 shared_ump.obj (.text:_ump_validate) + 0000a21e 00000070 log_to_mem.obj (.text:_ump_log_write) + 0000a28e 0000006e RS485.obj (.text:_RS_TX_Handler) + 0000a2fc 00000069 DAC.obj (.text:_Load_protection_prepare) + 0000a365 00000062 measure.obj (.text:_Init_sensors_more) + 0000a3c7 00000059 DSP2833x_Xintf.obj (.text:_InitXintf16Gpio) + 0000a420 00000057 bios.obj (.text:_get_command) + 0000a477 00000050 message.obj (.text:_ReceiveCommandModbus6) + 0000a4c7 0000004f RS485.obj (.text:_RS_FifoStart) + 0000a516 0000004e DAC.obj (.text:_anal_output) + 0000a564 0000004e DAC.obj (.text:_load_start) + 0000a5b2 0000004d shared_ump.obj (.text:_ump_prepare) + 0000a5ff 0000004b RS485.obj (.text:_RS_Send) + 0000a64a 0000004a ecan.obj (.text:_CANa_handler) + 0000a694 00000049 RS485.obj (.text:_RS_FifoAbort) + 0000a6dd 00000049 bios.obj (.text:_load) + 0000a726 00000048 ecan.obj (.text:_CAN_send) + 0000a76e 00000047 bios.obj (.text:_initload) + 0000a7b5 00000046 RS485.obj (.text:_RSA_RX_Handler) + 0000a7fb 00000046 RS485.obj (.text:_RSA_TX_Handler) + 0000a841 00000046 RS485.obj (.text:_RSB_RX_Handler) + 0000a887 00000046 RS485.obj (.text:_RSB_TX_Handler) + 0000a8cd 00000046 rts2800_fpu32.lib : boot.obj (.text) + 0000a913 00000042 log_to_mem.obj (.text:_ump_log_can) + 0000a955 00000041 spise2p.obj (.text:_Seeprom_read) + 0000a996 00000041 spise2p.obj (.text:_Seeprom_write) + 0000a9d7 00000041 RS485.obj (.text:_setup_arr_cmd_length) + 0000aa18 00000040 message.obj (.text:_Load_params) + 0000aa58 0000003e RS485.obj (.text:_RS_SetLineSpeed) + 0000aa96 0000003e tools.obj (.text:_init_zone7) + 0000aad4 0000003b DSP2833x_CpuTimers.obj (.text:_InitCpuTimers) + 0000ab0f 0000003b DAC.obj (.text:_Load_voltage_can) + 0000ab4a 0000003b shared_ump.obj (.text:_ump_can_fragment) + 0000ab85 0000003a bios.obj (.text:_poke) + 0000abbf 00000039 spise2p.obj (.text:_cpu_timer2_isr) + 0000abf8 00000038 message.obj (.text:_SendCommandModbus4) + 0000ac30 00000038 shared_ump.obj (.text:_ump_tms28335_fragment) + 0000ac68 00000037 RS485.obj (.text:_RS_BSend) + 0000ac9f 00000001 bios.obj (.text:_run) + 0000aca0 00000037 message.obj (.text:_ReceiveAnswerModbus4) + 0000acd7 00000033 bios.obj (.text:_Answer) + 0000ad0a 00000033 message.obj (.text:_modbus_exception) + 0000ad3d 00000033 log_to_mem.obj (.text:_ump_word) + 0000ad70 00000032 spise2p.obj (.text:_SPISE2P_DRV_init) + 0000ada2 00000032 peripher.obj (.text:_unsetup_leds_line) + 0000add4 00000031 DAC.obj (.text:_dSEND) + 0000ae05 0000002f RS485.obj (.text:_RS_FifoTick1ms) + 0000ae34 0000002e filter_bat2.obj (.text:_filterbat) + 0000ae62 0000002e log_to_mem.obj (.text:_ump_log_io) + 0000ae90 0000002d RS485.obj (.text:_RS_SetLineMode) + 0000aebd 0000002d main.obj (.text:_timer_Init) + 0000aeea 0000002c crc16.obj (.text:_get_crc_16b) + 0000af16 0000002b ecan.obj (.text:_CANa_reset_err) + 0000af41 0000002a rts2800_fpu32.lib : l_div.obj (.text) + 0000af6b 00000029 spise2p.obj (.text:_InitSeeprom) + 0000af94 00000027 crc16.obj (.text:_get_crc16) + 0000afbb 00000024 message.obj (.text:_Save_params) + 0000afdf 00000024 DAC.obj (.text:_load_stop) + 0000b003 00000024 peripher.obj (.text:_select_tpl_255) + 0000b027 00000022 peripher.obj (.text:_setup_leds_line) + 0000b049 00000021 DSP2833x_CpuTimers.obj (.text:_ConfigCpuTimer) + 0000b06a 00000020 DAC.obj (.text:_Setup_DAC_time) + 0000b08a 00000020 rts2800_fpu32.lib : sqrt.obj (.text) + 0000b0aa 0000001f DSP2833x_PieCtrl.obj (.text:_InitPieCtrl) + 0000b0c9 0000001f measure.obj (.text:_reset_errs) + 0000b0e8 0000001e DAC.obj (.text:_Load_control_init) + 0000b106 0000001e kanal.obj (.text:_SENDBIT) + 0000b124 0000001d log_to_mem.obj (.text:_ump_log_init) + 0000b141 0000001d shared_ump.obj (.text:_ump_tms28335_prepare) + 0000b15e 0000001d pulto.obj (.text:_what_is) + 0000b17b 0000001c DAC.obj (.text:_Init_DAC) + 0000b197 0000001c measure.obj (.text:_im_calc) + 0000b1b3 0000001c shared_ump.obj (.text:_ump_crc) + 0000b1cf 0000001c shared_ump.obj (.text:_ump_tms28335_capture) + 0000b1eb 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ADCINT_ISR) + 0000b206 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH1_ISR) + 0000b221 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH2_ISR) + 0000b23c 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH3_ISR) + 0000b257 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH4_ISR) + 0000b272 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH5_ISR) + 0000b28d 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DINTCH6_ISR) + 0000b2a8 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAN0INTA_ISR) + 0000b2c3 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAN0INTB_ISR) + 0000b2de 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAN1INTA_ISR) + 0000b2f9 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAN1INTB_ISR) + 0000b314 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP1_INT_ISR) + 0000b32f 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP2_INT_ISR) + 0000b34a 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP3_INT_ISR) + 0000b365 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP4_INT_ISR) + 0000b380 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP5_INT_ISR) + 0000b39b 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ECAP6_INT_ISR) + 0000b3b6 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM1_INT_ISR) + 0000b3d1 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM1_TZINT_ISR) + 0000b3ec 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM2_INT_ISR) + 0000b407 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM2_TZINT_ISR) + 0000b422 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM3_INT_ISR) + 0000b43d 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM3_TZINT_ISR) + 0000b458 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM4_INT_ISR) + 0000b473 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM4_TZINT_ISR) + 0000b48e 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM5_INT_ISR) + 0000b4a9 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM5_TZINT_ISR) + 0000b4c4 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM6_INT_ISR) + 0000b4df 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EPWM6_TZINT_ISR) + 0000b4fa 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EQEP1_INT_ISR) + 0000b515 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EQEP2_INT_ISR) + 0000b530 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_I2CINT1A_ISR) + 0000b54b 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_I2CINT2A_ISR) + 0000b566 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_LUF_ISR) + 0000b581 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_LVF_ISR) + 0000b59c 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_MRINTA_ISR) + 0000b5b7 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_MRINTB_ISR) + 0000b5d2 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_MXINTA_ISR) + 0000b5ed 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_MXINTB_ISR) + 0000b608 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCIRXINTA_ISR) + 0000b623 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCIRXINTB_ISR) + 0000b63e 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCIRXINTC_ISR) + 0000b659 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCITXINTA_ISR) + 0000b674 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCITXINTB_ISR) + 0000b68f 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SCITXINTC_ISR) + 0000b6aa 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SEQ1INT_ISR) + 0000b6c5 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SEQ2INT_ISR) + 0000b6e0 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SPIRXINTA_ISR) + 0000b6fb 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_SPITXINTA_ISR) + 0000b716 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_TINT0_ISR) + 0000b731 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_WAKEINT_ISR) + 0000b74c 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT3_ISR) + 0000b767 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT4_ISR) + 0000b782 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT5_ISR) + 0000b79d 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT6_ISR) + 0000b7b8 0000001b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT7_ISR) + 0000b7d3 0000001b rts2800_fpu32.lib : args_main.obj (.text) + 0000b7ee 0000001a RS485.obj (.text:_RS_SetBitMode) + 0000b808 0000001a RS485.obj (.text:_create_uart_vars) + 0000b822 00000019 DSP2833x_Adc.obj (.text:_InitAdc) + 0000b83b 00000019 DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT1_ISR) + 0000b854 00000019 DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_XINT2_ISR) + 0000b86d 00000019 rts2800_fpu32.lib : exit.obj (.text) + 0000b886 00000019 : prolog.obj (.text) + 0000b89f 00000018 kanal.obj (.text:_RESET) + 0000b8b7 00000018 log_to_mem.obj (.text:_ump_log_tick) + 0000b8cf 00000017 log_to_mem.obj (.text:_clear_mem) + 0000b8e6 00000016 DSP2833x_SysCtrl.obj (.text:_ServiceDog) + 0000b8fc 00000014 bios.obj (.text:__getbyte) + 0000b910 00000014 measure.obj (.text:_er_anal) + 0000b924 00000014 log_to_mem.obj (.text:_ump_outputs) + 0000b938 00000013 RS485.obj (.text:_RS_FifoWait) + 0000b94b 00000013 log_to_mem.obj (.text:_ump_inputs) + 0000b95e 00000012 crc16.obj (.text:_get_crc_16) + 0000b970 00000010 tools.obj (.text:_pause_us) + 0000b980 00000010 shared_ump.obj (.text:_read_word) + 0000b990 0000000d DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_DATALOG_ISR) + 0000b99d 0000000d DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_INT13_ISR) + 0000b9aa 0000000d DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_INT14_ISR) + 0000b9b7 0000000d DSP2833x_SWPrioritizedPieVect.obj (.text:_InitPieVectTable) + 0000b9c4 0000000d DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_RTOSINT_ISR) + 0000b9d1 0000000c rts2800_fpu32.lib : epilog.obj (.text) + 0000b9dd 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_EMUINT_ISR) + 0000b9e8 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_ILLEGAL_ISR) + 0000b9f3 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_NMI_ISR) + 0000b9fe 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER10_ISR) + 0000ba09 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER11_ISR) + 0000ba14 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER12_ISR) + 0000ba1f 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER1_ISR) + 0000ba2a 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER2_ISR) + 0000ba35 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER3_ISR) + 0000ba40 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER4_ISR) + 0000ba4b 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER5_ISR) + 0000ba56 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER6_ISR) + 0000ba61 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER7_ISR) + 0000ba6c 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER8_ISR) + 0000ba77 0000000b DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_USER9_ISR) + 0000ba82 0000000b log_to_mem.obj (.text:_ump_log_rs) + 0000ba8d 0000000b rts2800_fpu32.lib : u_div.obj (.text) + 0000ba98 0000000a DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_INT_NOTUSED_ISR) + 0000baa2 0000000a DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_PIE_RESERVED) + 0000baac 0000000a DSP2833x_SWPrioritizedDefaultIsr.obj (.text:_rsvd_ISR) + 0000bab6 00000009 DSP2833x_PieCtrl.obj (.text:_EnableInterrupts) + 0000babf 00000009 DSP2833x_SysCtrl.obj (.text:_InitSysCtrl) + 0000bac8 00000009 rts2800_fpu32.lib : _lock.obj (.text) + 0000bad1 00000008 DSP2833x_SysCtrl.obj (.text:_DisableDog) + 0000bad9 00000007 rts2800_fpu32.lib : memset.obj (.text) + 0000bae0 00000005 spise2p.obj (.text:_SPISE2P_DRV_csclr) + 0000bae5 00000005 spise2p.obj (.text:_SPISE2P_DRV_csset) + 0000baea 00000005 cntrl_adr.obj (.text:_set_cntrl_addr) + 0000baef 00000004 DSP2833x_usDelay.obj (.text) + 0000baf3 00000003 shared_ump.obj (.text:_write_word) + 0000baf6 00000001 bios.obj (.text:_tflash) ramfuncs 0 0000c000 00000000 UNINITIALIZED @@ -370,15 +370,14 @@ ramfuncs 0 0000c000 00000000 UNINITIALIZED .stack 1 00000400 000003f0 UNINITIALIZED 00000400 000003f0 --HOLE-- -.ebss 1 0000d000 0000105e UNINITIALIZED - 0000d000 0000070a RS485.obj (.ebss) - 0000d70a 00000020 measure.obj (.ebss:_din_count) - 0000d72a 00000012 measure.obj (.ebss:_powK) - 0000d73c 00000004 ADC.obj (.ebss:_adc_table_lem) +.ebss 1 0000d000 00001064 UNINITIALIZED + 0000d000 00000710 RS485.obj (.ebss) + 0000d710 00000020 measure.obj (.ebss:_din_count) + 0000d730 00000010 measure.obj (.ebss:_Maska) 0000d740 000001b0 measure.obj (.ebss:_adc_filter) - 0000d8f0 00000010 measure.obj (.ebss:_Maska) + 0000d8f0 00000010 kanal.obj (.ebss:_digits) 0000d900 000001b0 measure.obj (.ebss:_out_filter) - 0000dab0 00000010 kanal.obj (.ebss:_digits) + 0000dab0 00000010 peripher.obj (.ebss) 0000dac0 00000100 crc16.obj (.ebss:_crc_16_tab) 0000dbc0 00000081 message.obj (.ebss:_modbus) 0000dc41 00000001 bios.obj (.ebss) @@ -389,9 +388,9 @@ ramfuncs 0 0000c000 00000000 UNINITIALIZED 0000dd02 00000038 measure.obj (.ebss) 0000dd3a 00000006 measure.obj (.ebss:_err_count) 0000dd40 0000007c ecan.obj (.ebss:_ump_can_reply) - 0000ddbc 00000004 cntrl_adr.obj (.ebss) + 0000ddbc 00000004 ADC.obj (.ebss:_adc_table_lem) 0000ddc0 0000007c message.obj (.ebss:_words$3) - 0000de3c 00000004 rts2800_fpu32.lib : _lock.obj (.ebss) + 0000de3c 00000004 cntrl_adr.obj (.ebss) 0000de40 00000048 measure.obj (.ebss:_zer_filter) 0000de88 00000020 log_to_mem.obj (.ebss) 0000dea8 00000018 DAC.obj (.ebss) @@ -405,21 +404,22 @@ ramfuncs 0 0000c000 00000000 UNINITIALIZED 0000dfb4 0000000c ADC.obj (.ebss) 0000dfc0 00000018 measure.obj (.ebss:_sens_pair) 0000dfd8 00000018 measure.obj (.ebss:_sens_type) - 0000dff0 00000010 peripher.obj (.ebss) + 0000dff0 0000000c measure.obj (.ebss:_lev_quadr) + 0000dffc 00000004 rts2800_fpu32.lib : _lock.obj (.ebss) 0000e000 00000018 ecan.obj (.ebss) - 0000e018 0000000c measure.obj (.ebss:_lev_quadr) - 0000e024 0000000a pulto.obj (.ebss) - 0000e02e 00000008 measure.obj (.ebss:_ext_diag) - 0000e036 00000008 measure.obj (.ebss:_ext_temp) - 0000e03e 00000002 main.obj (.ebss:_cancount$1) - 0000e040 00000008 measure.obj (.ebss:_zer_count) - 0000e048 00000006 measure.obj (.ebss:_lev_count) - 0000e04e 00000005 kanal.obj (.ebss:_readr) - 0000e053 00000001 rts2800_fpu32.lib : errno.obj (.ebss) - 0000e054 00000004 : exit.obj (.ebss) - 0000e058 00000002 ADC.obj (.ebss:_cwnt_ok$4) - 0000e05a 00000002 measure.obj (.ebss:_low_count) - 0000e05c 00000002 log_to_mem.obj (.ebss:_ump_pm67_voltage) + 0000e018 00000012 measure.obj (.ebss:_powK) + 0000e02a 0000000a pulto.obj (.ebss) + 0000e034 00000008 measure.obj (.ebss:_ext_diag) + 0000e03c 00000004 rts2800_fpu32.lib : exit.obj (.ebss) + 0000e040 00000008 measure.obj (.ebss:_ext_temp) + 0000e048 00000008 measure.obj (.ebss:_zer_count) + 0000e050 00000006 measure.obj (.ebss:_lev_count) + 0000e056 00000005 kanal.obj (.ebss:_readr) + 0000e05b 00000002 main.obj (.ebss:_cancount$1) + 0000e05d 00000002 ADC.obj (.ebss:_cwnt_ok$4) + 0000e05f 00000002 measure.obj (.ebss:_low_count) + 0000e061 00000002 log_to_mem.obj (.ebss:_ump_pm67_voltage) + 0000e063 00000001 rts2800_fpu32.lib : errno.obj (.ebss) .logg 1 00200000 0000fa00 UNINITIALIZED 00200000 0000fa00 log_to_mem.obj (.logg) @@ -657,7 +657,7 @@ MODULE SUMMARY K:\git_project\Balsam_167_periph\Debug\Source\Internal\ log_to_mem.obj 718 52 64034 measure.obj 2458 87 1212 - RS485.obj 1615 8 1872 + RS485.obj 1688 8 1878 message.obj 875 82 446 peripher.obj 972 32 16 ADC.obj 874 13 74 @@ -667,14 +667,14 @@ MODULE SUMMARY spise2p.obj 578 71 28 crc16.obj 101 259 256 shared_ump.obj 540 24 0 - main.obj 460 0 5 + main.obj 467 0 5 pulto.obj 352 17 10 kanal.obj 321 27 21 tools.obj 78 0 0 filter_bat2.obj 46 0 0 cntrl_adr.obj 5 11 4 +--+--------------------------------------+-------+------------------+--------------------+ - Total: 12245 715 68151 + Total: 12325 715 68157 K:/git_project/Balsam_167_periph/Libraries/rts2800_fpu32.lib fs_div.obj 136 0 0 @@ -694,7 +694,7 @@ MODULE SUMMARY Stack: 0 0 1008 +--+--------------------------------------+-------+------------------+--------------------+ - Grand Total: 15022 995 71877 + Grand Total: 15102 995 71883 GLOBAL DATA SYMBOLS: SORTED BY DATA PAGE @@ -799,17 +799,30 @@ address data page name 0000d3c0 34f (0000d3c0) _rs_b -0000d70a 35c (0000d700) _din_count -0000d72a 35c (0000d700) _powK -0000d73c 35c (0000d700) _adc_table_lem +0000d710 35c (0000d700) _din_count +0000d730 35c (0000d700) _Maska 0000d740 35d (0000d740) _adc_filter -0000d8f0 363 (0000d8c0) _Maska +0000d8f0 363 (0000d8c0) _digits 0000d900 364 (0000d900) _out_filter -0000dab0 36a (0000da80) _digits +0000dab0 36a (0000da80) _Mode +0000dab1 36a (0000da80) _Desk +0000dab2 36a (0000da80) _TermoAD +0000dab3 36a (0000da80) _TermoRS +0000dab4 36a (0000da80) _TermoSW +0000dab5 36a (0000da80) _Kurrent +0000dab6 36a (0000da80) _Kalibro +0000dab7 36a (0000da80) _Owen +0000dab8 36a (0000da80) _INcount0 +0000dab9 36a (0000da80) _INcount1 +0000daba 36a (0000da80) _MUX_GPIO32 +0000dabb 36a (0000da80) _MUX_GPIO48 +0000dabc 36a (0000da80) _DIR_GPIO32 +0000dabd 36a (0000da80) _DIR_GPIO48 +0000dabe 36a (0000da80) _DigErr 0000dac0 36b (0000dac0) _crc_16_tab @@ -848,13 +861,12 @@ address data page name 0000dd28 374 (0000dd00) _def_FILTERBAT 0000dd3a 374 (0000dd00) _err_count -0000ddbc 376 (0000dd80) _ADDR_FOR_ALL -0000ddbd 376 (0000dd80) _CNTRL_ADDR -0000ddbe 376 (0000dd80) _cntr_addr_c -0000ddbf 376 (0000dd80) _cntr_addr_c_all +0000ddbc 376 (0000dd80) _adc_table_lem -0000de3c 378 (0000de00) __unlock -0000de3e 378 (0000de00) __lock +0000de3c 378 (0000de00) _ADDR_FOR_ALL +0000de3d 378 (0000de00) _CNTRL_ADDR +0000de3e 378 (0000de00) _cntr_addr_c +0000de3f 378 (0000de00) _cntr_addr_c_all 0000de40 379 (0000de40) _zer_filter @@ -887,21 +899,9 @@ address data page name 0000dfc0 37f (0000dfc0) _sens_pair 0000dfd8 37f (0000dfc0) _sens_type -0000dff0 37f (0000dfc0) _Mode -0000dff1 37f (0000dfc0) _Desk -0000dff2 37f (0000dfc0) _TermoAD -0000dff3 37f (0000dfc0) _TermoRS -0000dff4 37f (0000dfc0) _TermoSW -0000dff5 37f (0000dfc0) _Kurrent -0000dff6 37f (0000dfc0) _Kalibro -0000dff7 37f (0000dfc0) _Owen -0000dff8 37f (0000dfc0) _INcount0 -0000dff9 37f (0000dfc0) _INcount1 -0000dffa 37f (0000dfc0) _MUX_GPIO32 -0000dffb 37f (0000dfc0) _MUX_GPIO48 -0000dffc 37f (0000dfc0) _DIR_GPIO32 -0000dffd 37f (0000dfc0) _DIR_GPIO48 -0000dffe 37f (0000dfc0) _DigErr +0000dff0 37f (0000dfc0) _lev_quadr +0000dffc 37f (0000dfc0) __unlock +0000dffe 37f (0000dfc0) __lock 0000e000 380 (0000e000) _CanTimeOutErrorTR 0000e001 380 (0000e000) _wait @@ -911,21 +911,21 @@ address data page name 0000e010 380 (0000e000) _TestMbox1 0000e012 380 (0000e000) _TestMbox2 0000e014 380 (0000e000) _TestMbox3 -0000e018 380 (0000e000) _lev_quadr -0000e024 380 (0000e000) _isNumb -0000e025 380 (0000e000) _quaLamp -0000e02a 380 (0000e000) _isMask -0000e02c 380 (0000e000) _Lonely -0000e02e 380 (0000e000) _ext_diag -0000e036 380 (0000e000) _ext_temp +0000e018 380 (0000e000) _powK +0000e02a 380 (0000e000) _isNumb +0000e02b 380 (0000e000) _quaLamp +0000e030 380 (0000e000) _isMask +0000e032 380 (0000e000) _Lonely +0000e034 380 (0000e000) _ext_diag +0000e03c 380 (0000e000) __cleanup_ptr +0000e03e 380 (0000e000) __dtors_ptr -0000e040 381 (0000e040) _zer_count -0000e048 381 (0000e040) _lev_count -0000e04e 381 (0000e040) _readr -0000e053 381 (0000e040) _errno -0000e054 381 (0000e040) __cleanup_ptr -0000e056 381 (0000e040) __dtors_ptr -0000e05a 381 (0000e040) _low_count +0000e040 381 (0000e040) _ext_temp +0000e048 381 (0000e040) _zer_count +0000e050 381 (0000e040) _lev_count +0000e056 381 (0000e040) _readr +0000e05f 381 (0000e040) _low_count +0000e063 381 (0000e040) _errno 00200000 8000 (00200000) _logs_block @@ -939,27 +939,27 @@ GLOBAL SYMBOLS: SORTED ALPHABETICALLY BY Name page address name ---- ------- ---- 0 00008000 .text -0 0000b81d C$$EXIT -0 00009e00 FS$$DIV -0 0000aecb L$$DIV -0 0000aeda L$$MOD -0 0000ba3d U$$DIV -0 0000ba42 U$$MOD -0 0000aee8 UL$$DIV -0 0000aeef UL$$MOD -0 0000b19b _ADCINT_ISR +0 0000b86d C$$EXIT +0 00009e2c FS$$DIV +0 0000af41 L$$DIV +0 0000af50 L$$MOD +0 0000ba8d U$$DIV +0 0000ba92 U$$MOD +0 0000af5e UL$$DIV +0 0000af65 UL$$MOD +0 0000b1eb _ADCINT_ISR 0 00380080 _ADC_cal 1 0000df06 _ADC_table 0 0000c39c _ADDR_ANSWER -1 0000ddbc _ADDR_FOR_ALL +1 0000de3c _ADDR_FOR_ALL 0 0000c39d _ADDR_TERMINAL 1 00000b00 _AdcMirror 1 00007100 _AdcRegs -0 0000ac61 _Answer -0 0000a6ae _CAN_send -0 0000a61b _CANa_handler -0 0000aea0 _CANa_reset_err -1 0000ddbd _CNTRL_ADDR +0 0000acd7 _Answer +0 0000a726 _CAN_send +0 0000a64a _CANa_handler +0 0000af16 _CANa_reset_err +1 0000de3d _CNTRL_ADDR 0 0000c39e _CNTRL_ADDR_UNIVERSAL 1 0000dfb5 _COUNT_DISCHARGE 1 0000dfb4 _COUNT_ONE_CANAL @@ -968,7 +968,7 @@ page address name 1 0000dd03 _CanGO 1 0000dd02 _CanPowse 1 0000e000 _CanTimeOutErrorTR -0 0000aff9 _ConfigCpuTimer +0 0000b049 _ConfigCpuTimer 1 0000df9c _CpuTimer0 1 00000c00 _CpuTimer0Regs 1 0000dfa4 _CpuTimer1 @@ -979,32 +979,32 @@ page address name 1 00000ae0 _CsmRegs 1 0000dd12 _Curr_Edge 0 00008000 _Current_count -0 0000b940 _DATALOG_ISR -0 0000b1b6 _DINTCH1_ISR -0 0000b1d1 _DINTCH2_ISR -0 0000b1ec _DINTCH3_ISR -0 0000b207 _DINTCH4_ISR -0 0000b222 _DINTCH5_ISR -0 0000b23d _DINTCH6_ISR -1 0000dffc _DIR_GPIO32 -1 0000dffd _DIR_GPIO48 -0 0000ba9f _DSP28x_usDelay -0 00009586 _Default_params -1 0000dff1 _Desk +0 0000b990 _DATALOG_ISR +0 0000b206 _DINTCH1_ISR +0 0000b221 _DINTCH2_ISR +0 0000b23c _DINTCH3_ISR +0 0000b257 _DINTCH4_ISR +0 0000b272 _DINTCH5_ISR +0 0000b28d _DINTCH6_ISR +1 0000dabc _DIR_GPIO32 +1 0000dabd _DIR_GPIO48 +0 0000baef _DSP28x_usDelay +0 0000959a _Default_params +1 0000dab1 _Desk 1 00000880 _DevEmuRegs -1 0000dffe _DigErr -0 0000ba81 _DisableDog +1 0000dabe _DigErr +0 0000bad1 _DisableDog 1 00001000 _DmaRegs -0 0000b258 _ECAN0INTA_ISR -0 0000b273 _ECAN0INTB_ISR -0 0000b28e _ECAN1INTA_ISR -0 0000b2a9 _ECAN1INTB_ISR -0 0000b2c4 _ECAP1_INT_ISR -0 0000b2df _ECAP2_INT_ISR -0 0000b2fa _ECAP3_INT_ISR -0 0000b315 _ECAP4_INT_ISR -0 0000b330 _ECAP5_INT_ISR -0 0000b34b _ECAP6_INT_ISR +0 0000b2a8 _ECAN0INTA_ISR +0 0000b2c3 _ECAN0INTB_ISR +0 0000b2de _ECAN1INTA_ISR +0 0000b2f9 _ECAN1INTB_ISR +0 0000b314 _ECAP1_INT_ISR +0 0000b32f _ECAP2_INT_ISR +0 0000b34a _ECAP3_INT_ISR +0 0000b365 _ECAP4_INT_ISR +0 0000b380 _ECAP5_INT_ISR +0 0000b39b _ECAP6_INT_ISR 1 00006040 _ECanaLAMRegs 1 000060c0 _ECanaMOTORegs 1 00006080 _ECanaMOTSRegs @@ -1026,30 +1026,30 @@ abs 00007ffe _EEPROM_PARAMS_END_BYTE abs 00007efc _EEPROM_PARAMS_START_BYTE abs 00003f7e _EEPROM_PARAMS_START_WORD abs 00008000 _EEPROM_TOTAL_BYTES -0 0000b98d _EMUINT_ISR -0 0000b366 _EPWM1_INT_ISR -0 0000b381 _EPWM1_TZINT_ISR -0 0000b39c _EPWM2_INT_ISR -0 0000b3b7 _EPWM2_TZINT_ISR -0 0000b3d2 _EPWM3_INT_ISR -0 0000b3ed _EPWM3_TZINT_ISR -0 0000b408 _EPWM4_INT_ISR -0 0000b423 _EPWM4_TZINT_ISR -0 0000b43e _EPWM5_INT_ISR -0 0000b459 _EPWM5_TZINT_ISR -0 0000b474 _EPWM6_INT_ISR -0 0000b48f _EPWM6_TZINT_ISR +0 0000b9dd _EMUINT_ISR +0 0000b3b6 _EPWM1_INT_ISR +0 0000b3d1 _EPWM1_TZINT_ISR +0 0000b3ec _EPWM2_INT_ISR +0 0000b407 _EPWM2_TZINT_ISR +0 0000b422 _EPWM3_INT_ISR +0 0000b43d _EPWM3_TZINT_ISR +0 0000b458 _EPWM4_INT_ISR +0 0000b473 _EPWM4_TZINT_ISR +0 0000b48e _EPWM5_INT_ISR +0 0000b4a9 _EPWM5_TZINT_ISR +0 0000b4c4 _EPWM6_INT_ISR +0 0000b4df _EPWM6_TZINT_ISR 1 00006800 _EPwm1Regs 1 00006840 _EPwm2Regs 1 00006880 _EPwm3Regs 1 000068c0 _EPwm4Regs 1 00006900 _EPwm5Regs 1 00006940 _EPwm6Regs -0 0000b4aa _EQEP1_INT_ISR -0 0000b4c5 _EQEP2_INT_ISR +0 0000b4fa _EQEP1_INT_ISR +0 0000b515 _EQEP2_INT_ISR 1 00006b00 _EQep1Regs 1 00006b40 _EQep2Regs -0 0000ba66 _EnableInterrupts +0 0000bab6 _EnableInterrupts 1 0000e00a _ErrorCount 1 0000dfb7 _FILTER_CLIP 1 00000a80 _FlashRegs @@ -1057,150 +1057,150 @@ abs 00008000 _EEPROM_TOTAL_BYTES 1 00006fc0 _GpioDataRegs 1 00006fe0 _GpioIntRegs 1 0000dc7e _HSPCLK -0 0000a10f _Handlai -0 0000b4e0 _I2CINT1A_ISR -0 0000b4fb _I2CINT2A_ISR +0 0000a13b _Handlai +0 0000b530 _I2CINT1A_ISR +0 0000b54b _I2CINT2A_ISR 1 00007900 _I2caRegs -0 0000b998 _ILLEGAL_ISR +0 0000b9e8 _ILLEGAL_ISR 1 0000deba _IMPowse -0 0000b94d _INT13_ISR -0 0000b95a _INT14_ISR -0 0000ba48 _INT_NOTUSED_ISR -1 0000dff8 _INcount0 -1 0000dff9 _INcount1 -0 0000b7d2 _InitAdc -0 000098a1 _InitCan -0 0000aa5f _InitCpuTimers -0 00009e88 _InitPeripheralClocks -0 0000b05a _InitPieCtrl -0 0000b967 _InitPieVectTable -0 0000a015 _InitPll -0 0000aef5 _InitSeeprom -0 0000ba6f _InitSysCtrl -0 0000a39b _InitXintf16Gpio -0 0000b12b _Init_DAC -0 00009bc6 _Init_packMask -0 00009022 _Init_sensors -0 0000a339 _Init_sensors_more +0 0000b99d _INT13_ISR +0 0000b9aa _INT14_ISR +0 0000ba98 _INT_NOTUSED_ISR +1 0000dab8 _INcount0 +1 0000dab9 _INcount1 +0 0000b822 _InitAdc +0 000098cc _InitCan +0 0000aad4 _InitCpuTimers +0 00009eb4 _InitPeripheralClocks +0 0000b0aa _InitPieCtrl +0 0000b9b7 _InitPieVectTable +0 0000a041 _InitPll +0 0000af6b _InitSeeprom +0 0000babf _InitSysCtrl +0 0000a3c7 _InitXintf16Gpio +0 0000b17b _Init_DAC +0 00009bf0 _Init_packMask +0 00009036 _Init_sensors +0 0000a365 _Init_sensors_more 1 0000dd1e _K100 1 0000dd20 _K_50 1 0000dd22 _K_T1 1 0000dd24 _K_T2 -1 0000dff6 _Kalibro -1 0000dff5 _Kurrent +1 0000dab6 _Kalibro +1 0000dab5 _Kurrent 1 0000dc7c _LSPCLK -0 0000b516 _LUF_ISR -0 0000b531 _LVF_ISR -0 0000b098 _Load_control_init -0 0000a9e1 _Load_params -0 0000a2d0 _Load_protection_prepare -0 00008c31 _Load_runner -0 0000aa9a _Load_voltage_can +0 0000b566 _LUF_ISR +0 0000b581 _LVF_ISR +0 0000b0e8 _Load_control_init +0 0000aa18 _Load_params +0 0000a2fc _Load_protection_prepare +0 00008d97 _Load_runner +0 0000ab0f _Load_voltage_can 1 0000dea0 _Log -1 0000e02c _Lonely -0 0000b54c _MRINTA_ISR -0 0000b567 _MRINTB_ISR -1 0000dffa _MUX_GPIO32 -1 0000dffb _MUX_GPIO48 -0 0000b582 _MXINTA_ISR -0 0000b59d _MXINTB_ISR -1 0000d8f0 _Maska +1 0000e032 _Lonely +0 0000b59c _MRINTA_ISR +0 0000b5b7 _MRINTB_ISR +1 0000daba _MUX_GPIO32 +1 0000dabb _MUX_GPIO48 +0 0000b5d2 _MXINTA_ISR +0 0000b5ed _MXINTB_ISR +1 0000d730 _Maska 1 00005000 _McbspaRegs 1 00005040 _McbspbRegs 1 0000e00c _MessageReceivedCount 1 0000e00e _MessageTransivedCount -1 0000dff0 _Mode -0 0000b9a3 _NMI_ISR -1 0000dff7 _Owen -0 0000ba52 _PIE_RESERVED +1 0000dab0 _Mode +0 0000b9f3 _NMI_ISR +1 0000dab7 _Owen +0 0000baa2 _PIE_RESERVED 1 00380090 _PartIdRegs 1 00000ce0 _PieCtrlRegs 1 00000d00 _PieVectTable 0 0000c274 _PieVectTableInit -0 0000948d _Power_count +0 000094a1 _Power_count 1 0000dd04 _READY -0 0000b84f _RESET -0 0000a73d _RSA_RX_Handler -0 0000a783 _RSA_TX_Handler -0 0000a7c9 _RSB_RX_Handler -0 0000a80f _RSB_TX_Handler -0 0000abf3 _RS_BSend -0 0000ad8f _RS_FifoTick1ms -0 0000b8e8 _RS_FifoWait +0 0000b89f _RESET +0 0000a7b5 _RSA_RX_Handler +0 0000a7fb _RSA_TX_Handler +0 0000a841 _RSB_RX_Handler +0 0000a887 _RSB_TX_Handler +0 0000ac68 _RS_BSend +0 0000ae05 _RS_FifoTick1ms +0 0000b938 _RS_FifoWait 1 0000dec0 _RS_Len -0 00008d8d _RS_RX_Handler -0 0000a5d0 _RS_Send -0 0000b79e _RS_SetBitMode -0 0000ae1a _RS_SetLineMode -0 0000af45 _RS_SetLineSpeed -0 0000a262 _RS_TX_Handler -0 0000b974 _RTOSINT_ISR +0 00008c38 _RS_RX_Handler +0 0000a5ff _RS_Send +0 0000b7ee _RS_SetBitMode +0 0000ae90 _RS_SetLineMode +0 0000aa58 _RS_SetLineSpeed +0 0000a28e _RS_TX_Handler +0 0000b9c4 _RTOSINT_ISR 0 0000c000 _RamfuncsLoadEnd 0 0000c000 _RamfuncsLoadStart 0 0000c000 _RamfuncsRunStart -0 0000ac2a _ReceiveAnswerModbus4 -0 000099f6 _ReceiveCommandModbus3 -0 0000a44b _ReceiveCommandModbus6 -0 0000b5b8 _SCIRXINTA_ISR -0 0000b5d3 _SCIRXINTB_ISR -0 0000b5ee _SCIRXINTC_ISR -0 0000b609 _SCITXINTA_ISR -0 0000b624 _SCITXINTB_ISR -0 0000b63f _SCITXINTC_ISR -0 0000b0b6 _SENDBIT -0 0000b65a _SEQ1INT_ISR -0 0000b675 _SEQ2INT_ISR -0 0000b690 _SPIRXINTA_ISR -0 0000ba90 _SPISE2P_DRV_csclr -0 0000ba95 _SPISE2P_DRV_csset -0 0000acfa _SPISE2P_DRV_init -0 0000914b _SPISE2P_DRV_tick -0 0000b6ab _SPITXINTA_ISR +0 0000aca0 _ReceiveAnswerModbus4 +0 00009a20 _ReceiveCommandModbus3 +0 0000a477 _ReceiveCommandModbus6 +0 0000b608 _SCIRXINTA_ISR +0 0000b623 _SCIRXINTB_ISR +0 0000b63e _SCIRXINTC_ISR +0 0000b659 _SCITXINTA_ISR +0 0000b674 _SCITXINTB_ISR +0 0000b68f _SCITXINTC_ISR +0 0000b106 _SENDBIT +0 0000b6aa _SEQ1INT_ISR +0 0000b6c5 _SEQ2INT_ISR +0 0000b6e0 _SPIRXINTA_ISR +0 0000bae0 _SPISE2P_DRV_csclr +0 0000bae5 _SPISE2P_DRV_csset +0 0000ad70 _SPISE2P_DRV_init +0 0000915f _SPISE2P_DRV_tick +0 0000b6fb _SPITXINTA_ISR 1 0000dc7a _SYSCLKOUT -0 0000af6b _Save_params +0 0000afbb _Save_params 1 00007050 _SciaRegs 1 00007750 _ScibRegs 1 00007770 _ScicRegs -0 0000a91e _Seeprom_read -0 0000a95f _Seeprom_write -0 0000ab83 _SendCommandModbus4 -0 0000b896 _ServiceDog -0 0000b01a _Setup_DAC_time +0 0000a955 _Seeprom_read +0 0000a996 _Seeprom_write +0 0000abf8 _SendCommandModbus4 +0 0000b8e6 _ServiceDog +0 0000b06a _Setup_DAC_time 1 00007040 _SpiaRegs 1 00007010 _SysCtrlRegs -0 0000b6c6 _TINT0_ISR +0 0000b716 _TINT0_ISR 1 0000dd05 _TPL_CANS 0 00008437 _Temper_count -1 0000dff2 _TermoAD -1 0000dff3 _TermoRS -1 0000dff4 _TermoSW +1 0000dab2 _TermoAD +1 0000dab3 _TermoRS +1 0000dab4 _TermoSW 1 0000e010 _TestMbox1 1 0000e012 _TestMbox2 1 0000e014 _TestMbox3 -0 0000994d _UMP_CAN_service -0 0000b9ae _USER10_ISR -0 0000b9b9 _USER11_ISR -0 0000b9c4 _USER12_ISR -0 0000b9cf _USER1_ISR -0 0000b9da _USER2_ISR -0 0000b9e5 _USER3_ISR -0 0000b9f0 _USER4_ISR -0 0000b9fb _USER5_ISR -0 0000ba06 _USER6_ISR -0 0000ba11 _USER7_ISR -0 0000ba1c _USER8_ISR -0 0000ba27 _USER9_ISR +0 00009978 _UMP_CAN_service +0 0000b9fe _USER10_ISR +0 0000ba09 _USER11_ISR +0 0000ba14 _USER12_ISR +0 0000ba1f _USER1_ISR +0 0000ba2a _USER2_ISR +0 0000ba35 _USER3_ISR +0 0000ba40 _USER4_ISR +0 0000ba4b _USER5_ISR +0 0000ba56 _USER6_ISR +0 0000ba61 _USER7_ISR +0 0000ba6c _USER8_ISR +0 0000ba77 _USER9_ISR 1 0000dfbc _WAKE -0 0000b6e1 _WAKEINT_ISR +0 0000b731 _WAKEINT_ISR 1 0000dfbe _WAKE_TIME 1 0000deb8 _WAKEpowse -0 0000b7eb _XINT1_ISR -0 0000b804 _XINT2_ISR -0 0000b6fc _XINT3_ISR -0 0000b717 _XINT4_ISR -0 0000b732 _XINT5_ISR -0 0000b74d _XINT6_ISR -0 0000b768 _XINT7_ISR +0 0000b83b _XINT1_ISR +0 0000b854 _XINT2_ISR +0 0000b74c _XINT3_ISR +0 0000b767 _XINT4_ISR +0 0000b782 _XINT5_ISR +0 0000b79d _XINT6_ISR +0 0000b7b8 _XINT7_ISR 1 00007070 _XIntruptRegs 1 00000b20 _XintfRegs 1 000007f0 __STACK_END @@ -1211,141 +1211,141 @@ abs ffffffff ___TI_prof_data_start abs ffffffff ___binit__ abs ffffffff ___c_args__ 0 0000c000 ___cinit__ -0 0000baa7 ___etext__ +0 0000baf7 ___etext__ abs ffffffff ___pinit__ 0 00008000 ___text__ -0 0000b783 __args_main -1 0000e054 __cleanup_ptr -1 0000e056 __dtors_ptr -1 0000de3e __lock -0 0000ba80 __nop -0 0000ba7c __register_lock -0 0000ba78 __register_unlock +0 0000b7d3 __args_main +1 0000e03c __cleanup_ptr +1 0000e03e __dtors_ptr +1 0000dffe __lock +0 0000bad0 __nop +0 0000bacc __register_lock +0 0000bac8 __register_unlock 1 00000400 __stack -1 0000de3c __unlock -0 0000b81d _abort +1 0000dffc __unlock +0 0000b86d _abort 1 0000d740 _adc_filter 0 0000825a _adc_isr -1 0000d73c _adc_table_lem -0 0000a855 _c_int00 +1 0000ddbc _adc_table_lem +0 0000a8cd _c_int00 1 0000dd07 _cal_addr -0 000097f3 _calc_sensor_koef +0 0000981e _calc_sensor_koef 1 0000df80 _ccc 1 0000dd0b _chk -0 0000b87f _clear_mem -1 0000ddbe _cntr_addr_c -1 0000ddbf _cntr_addr_c_all -0 00008edf _cpu_timer1_isr_PULT -0 00008aad _cpu_timer1_isr_SENS -0 0000ab4a _cpu_timer2_isr +0 0000b8cf _clear_mem +1 0000de3e _cntr_addr_c +1 0000de3f _cntr_addr_c_all +0 00008ef3 _cpu_timer1_isr_PULT +0 00008ab4 _cpu_timer1_isr_SENS +0 0000abbf _cpu_timer2_isr 1 0000dac0 _crc_16_tab -0 0000b7b8 _create_uart_vars -0 0000ad5e _dSEND +0 0000b808 _create_uart_vars +0 0000add4 _dSEND 1 0000dd28 _def_FILTERBAT 1 0000df40 _def_cal -1 0000dab0 _digits -1 0000d70a _din_count -0 0000b981 _epilog_c28x_1 -0 0000b985 _epilog_c28x_2 -0 0000b8c0 _er_anal +1 0000d8f0 _digits +1 0000d710 _din_count +0 0000b9d1 _epilog_c28x_1 +0 0000b9d5 _epilog_c28x_2 +0 0000b910 _er_anal 1 0000dd3a _err_count -1 0000e053 _errno -0 0000b81f _exit -1 0000e02e _ext_diag -1 0000e036 _ext_temp -0 00009f0d _extendbios -0 0000adbe _filterbat +1 0000e063 _errno +0 0000b86f _exit +1 0000e034 _ext_diag +1 0000e040 _ext_temp +0 00009f39 _extendbios +0 0000ae34 _filterbat 1 0000dc41 _flag_DEBUG 1 0000de8a _flog -0 000085de _get_Buttons -0 0000926d _get_Mode -0 0000a3f4 _get_command -0 0000af1e _get_crc16 -0 0000b90e _get_crc_16 -0 0000ae74 _get_crc_16b -0 0000b147 _im_calc -0 000099f5 _init -0 0000aa21 _init_zone7 -0 0000a6f6 _initload -1 0000e02a _isMask -1 0000e024 _isNumb -0 00009382 _kanal_Send -1 0000e048 _lev_count -1 0000e018 _lev_quadr -0 0000a665 _load +0 00008784 _get_Buttons +0 00009281 _get_Mode +0 0000a420 _get_command +0 0000af94 _get_crc16 +0 0000b95e _get_crc_16 +0 0000aeea _get_crc_16b +0 0000b197 _im_calc +0 00009fbd _init +0 0000aa96 _init_zone7 +0 0000a76e _initload +1 0000e030 _isMask +1 0000e02a _isNumb +0 00009396 _kanal_Send +1 0000e050 _lev_count +1 0000dff0 _lev_quadr +0 0000a6dd _load 1 00200000 _logs_block -1 0000e05a _low_count -0 00008781 _main -0 0000ba89 _memset +1 0000e05f _low_count +0 000085de _main +0 0000bad9 _memset 1 0000dbc0 _modbus 1 0000de89 _never_write 1 0000de88 _no_write 1 0000dd13 _okay 1 0000d900 _out_filter 1 0000dc80 _param -0 0000b920 _pause_us -0 0000a097 _peek +0 0000b970 _pause_us +0 0000a0c3 _peek 1 0000dd0a _period_blink 1 0000dea8 _period_dac 1 0000dd09 _period_ready -0 0000ab10 _poke -1 0000d72a _powK +0 0000ab85 _poke +1 0000e018 _powK 1 0000dd08 _pow_addr 1 0000df22 _prev_ok -0 0000b836 _prolog_c28x_1 -0 0000b83a _prolog_c28x_2 -0 0000b842 _prolog_c28x_3 -1 0000e025 _quaLamp -1 0000e04e _readr -0 0000b079 _reset_errs +0 0000b886 _prolog_c28x_1 +0 0000b88a _prolog_c28x_2 +0 0000b892 _prolog_c28x_3 +1 0000e02b _quaLamp +1 0000e056 _readr +0 0000b0c9 _reset_errs 1 0000d040 _rs_a 1 0000d3c0 _rs_b -0 0000ba5c _rsvd_ISR -0 00009f91 _run -0 0000afb3 _select_tpl_255 -0 00009a93 _select_tpl_canal +0 0000baac _rsvd_ISR +0 0000ac9f _run +0 0000b003 _select_tpl_255 +0 00009abd _select_tpl_canal 1 0000dc42 _sens_count 1 0000dfc0 _sens_pair 1 0000dfd8 _sens_type -0 0000ba9a _set_cntrl_addr -0 00008920 _setup_adc -0 0000a9a0 _setup_arr_cmd_length -0 0000afd7 _setup_leds_line -0 00009672 _setup_uart +0 0000baea _set_cntrl_addr +0 00008927 _setup_adc +0 0000a9d7 _setup_arr_cmd_length +0 0000b027 _setup_leds_line +0 00009686 _setup_uart 1 0000dd0c _sig -0 0000b03a _sqrt -0 0000baa6 _tflash +0 0000b08a _sqrt +0 0000baf6 _tflash 1 0000dd0d _time_1_5sec 1 0000dd0f _time_3sec 1 0000dd0e _time_5msec 1 0000dd10 _time_5sec 1 0000dea9 _time_dac -0 0000ae47 _timer_Init +0 0000aebd _timer_Init 1 0000dd06 _tpl_cans -0 0000aad5 _ump_can_fragment -0 0000b163 _ump_crc -0 0000a89b _ump_log_can -0 0000b0d4 _ump_log_init -0 0000adec _ump_log_io -0 00009740 _ump_log_read -0 0000ba32 _ump_log_rs -0 0000b867 _ump_log_tick -0 0000a1f2 _ump_log_write -0 0000a537 _ump_prepare -0 00009f92 _ump_rtu_encode -0 0000b17f _ump_tms28335_capture -0 0000abbb _ump_tms28335_fragment -0 0000b0f1 _ump_tms28335_prepare -0 0000a181 _ump_validate -0 0000ad2c _unsetup_leds_line -0 00009b2f _upload +0 0000ab4a _ump_can_fragment +0 0000b1b3 _ump_crc +0 0000a913 _ump_log_can +0 0000b124 _ump_log_init +0 0000ae62 _ump_log_io +0 0000976b _ump_log_read +0 0000ba82 _ump_log_rs +0 0000b8b7 _ump_log_tick +0 0000a21e _ump_log_write +0 0000a5b2 _ump_prepare +0 00009fbe _ump_rtu_encode +0 0000b1cf _ump_tms28335_capture +0 0000ac30 _ump_tms28335_fragment +0 0000b141 _ump_tms28335_prepare +0 0000a1ad _ump_validate +0 0000ada2 _unsetup_leds_line +0 00009b59 _upload 1 0000e001 _wait -0 0000b10e _what_is -1 0000e040 _zer_count +0 0000b15e _what_is +1 0000e048 _zer_count 1 0000de40 _zer_filter abs ffffffff binit 0 0000c000 cinit -0 0000baa7 etext +0 0000baf7 etext abs ffffffff pinit @@ -1358,224 +1358,224 @@ page address name 0 00008000 ___text__ 0 0000825a _adc_isr 0 00008437 _Temper_count -0 000085de _get_Buttons -0 00008781 _main -0 00008920 _setup_adc -0 00008aad _cpu_timer1_isr_SENS -0 00008c31 _Load_runner -0 00008d8d _RS_RX_Handler -0 00008edf _cpu_timer1_isr_PULT -0 00009022 _Init_sensors -0 0000914b _SPISE2P_DRV_tick -0 0000926d _get_Mode -0 00009382 _kanal_Send -0 0000948d _Power_count -0 00009586 _Default_params -0 00009672 _setup_uart -0 00009740 _ump_log_read -0 000097f3 _calc_sensor_koef -0 000098a1 _InitCan -0 0000994d _UMP_CAN_service -0 000099f5 _init -0 000099f6 _ReceiveCommandModbus3 -0 00009a93 _select_tpl_canal -0 00009b2f _upload -0 00009bc6 _Init_packMask -0 00009e00 FS$$DIV -0 00009e88 _InitPeripheralClocks -0 00009f0d _extendbios -0 00009f91 _run -0 00009f92 _ump_rtu_encode -0 0000a015 _InitPll -0 0000a097 _peek -0 0000a10f _Handlai -0 0000a181 _ump_validate -0 0000a1f2 _ump_log_write -0 0000a262 _RS_TX_Handler -0 0000a2d0 _Load_protection_prepare -0 0000a339 _Init_sensors_more -0 0000a39b _InitXintf16Gpio -0 0000a3f4 _get_command -0 0000a44b _ReceiveCommandModbus6 -0 0000a537 _ump_prepare -0 0000a5d0 _RS_Send -0 0000a61b _CANa_handler -0 0000a665 _load -0 0000a6ae _CAN_send -0 0000a6f6 _initload -0 0000a73d _RSA_RX_Handler -0 0000a783 _RSA_TX_Handler -0 0000a7c9 _RSB_RX_Handler -0 0000a80f _RSB_TX_Handler -0 0000a855 _c_int00 -0 0000a89b _ump_log_can -0 0000a91e _Seeprom_read -0 0000a95f _Seeprom_write -0 0000a9a0 _setup_arr_cmd_length -0 0000a9e1 _Load_params -0 0000aa21 _init_zone7 -0 0000aa5f _InitCpuTimers -0 0000aa9a _Load_voltage_can -0 0000aad5 _ump_can_fragment -0 0000ab10 _poke -0 0000ab4a _cpu_timer2_isr -0 0000ab83 _SendCommandModbus4 -0 0000abbb _ump_tms28335_fragment -0 0000abf3 _RS_BSend -0 0000ac2a _ReceiveAnswerModbus4 -0 0000ac61 _Answer -0 0000acfa _SPISE2P_DRV_init -0 0000ad2c _unsetup_leds_line -0 0000ad5e _dSEND -0 0000ad8f _RS_FifoTick1ms -0 0000adbe _filterbat -0 0000adec _ump_log_io -0 0000ae1a _RS_SetLineMode -0 0000ae47 _timer_Init -0 0000ae74 _get_crc_16b -0 0000aea0 _CANa_reset_err -0 0000aecb L$$DIV -0 0000aeda L$$MOD -0 0000aee8 UL$$DIV -0 0000aeef UL$$MOD -0 0000aef5 _InitSeeprom -0 0000af1e _get_crc16 -0 0000af45 _RS_SetLineSpeed -0 0000af6b _Save_params -0 0000afb3 _select_tpl_255 -0 0000afd7 _setup_leds_line -0 0000aff9 _ConfigCpuTimer -0 0000b01a _Setup_DAC_time -0 0000b03a _sqrt -0 0000b05a _InitPieCtrl -0 0000b079 _reset_errs -0 0000b098 _Load_control_init -0 0000b0b6 _SENDBIT -0 0000b0d4 _ump_log_init -0 0000b0f1 _ump_tms28335_prepare -0 0000b10e _what_is -0 0000b12b _Init_DAC -0 0000b147 _im_calc -0 0000b163 _ump_crc -0 0000b17f _ump_tms28335_capture -0 0000b19b _ADCINT_ISR -0 0000b1b6 _DINTCH1_ISR -0 0000b1d1 _DINTCH2_ISR -0 0000b1ec _DINTCH3_ISR -0 0000b207 _DINTCH4_ISR -0 0000b222 _DINTCH5_ISR -0 0000b23d _DINTCH6_ISR -0 0000b258 _ECAN0INTA_ISR -0 0000b273 _ECAN0INTB_ISR -0 0000b28e _ECAN1INTA_ISR -0 0000b2a9 _ECAN1INTB_ISR -0 0000b2c4 _ECAP1_INT_ISR -0 0000b2df _ECAP2_INT_ISR -0 0000b2fa _ECAP3_INT_ISR -0 0000b315 _ECAP4_INT_ISR -0 0000b330 _ECAP5_INT_ISR -0 0000b34b _ECAP6_INT_ISR -0 0000b366 _EPWM1_INT_ISR -0 0000b381 _EPWM1_TZINT_ISR -0 0000b39c _EPWM2_INT_ISR -0 0000b3b7 _EPWM2_TZINT_ISR -0 0000b3d2 _EPWM3_INT_ISR -0 0000b3ed _EPWM3_TZINT_ISR -0 0000b408 _EPWM4_INT_ISR -0 0000b423 _EPWM4_TZINT_ISR -0 0000b43e _EPWM5_INT_ISR -0 0000b459 _EPWM5_TZINT_ISR -0 0000b474 _EPWM6_INT_ISR -0 0000b48f _EPWM6_TZINT_ISR -0 0000b4aa _EQEP1_INT_ISR -0 0000b4c5 _EQEP2_INT_ISR -0 0000b4e0 _I2CINT1A_ISR -0 0000b4fb _I2CINT2A_ISR -0 0000b516 _LUF_ISR -0 0000b531 _LVF_ISR -0 0000b54c _MRINTA_ISR -0 0000b567 _MRINTB_ISR -0 0000b582 _MXINTA_ISR -0 0000b59d _MXINTB_ISR -0 0000b5b8 _SCIRXINTA_ISR -0 0000b5d3 _SCIRXINTB_ISR -0 0000b5ee _SCIRXINTC_ISR -0 0000b609 _SCITXINTA_ISR -0 0000b624 _SCITXINTB_ISR -0 0000b63f _SCITXINTC_ISR -0 0000b65a _SEQ1INT_ISR -0 0000b675 _SEQ2INT_ISR -0 0000b690 _SPIRXINTA_ISR -0 0000b6ab _SPITXINTA_ISR -0 0000b6c6 _TINT0_ISR -0 0000b6e1 _WAKEINT_ISR -0 0000b6fc _XINT3_ISR -0 0000b717 _XINT4_ISR -0 0000b732 _XINT5_ISR -0 0000b74d _XINT6_ISR -0 0000b768 _XINT7_ISR -0 0000b783 __args_main -0 0000b79e _RS_SetBitMode -0 0000b7b8 _create_uart_vars -0 0000b7d2 _InitAdc -0 0000b7eb _XINT1_ISR -0 0000b804 _XINT2_ISR -0 0000b81d C$$EXIT -0 0000b81d _abort -0 0000b81f _exit -0 0000b836 _prolog_c28x_1 -0 0000b83a _prolog_c28x_2 -0 0000b842 _prolog_c28x_3 -0 0000b84f _RESET -0 0000b867 _ump_log_tick -0 0000b87f _clear_mem -0 0000b896 _ServiceDog -0 0000b8c0 _er_anal -0 0000b8e8 _RS_FifoWait -0 0000b90e _get_crc_16 -0 0000b920 _pause_us -0 0000b940 _DATALOG_ISR -0 0000b94d _INT13_ISR -0 0000b95a _INT14_ISR -0 0000b967 _InitPieVectTable -0 0000b974 _RTOSINT_ISR -0 0000b981 _epilog_c28x_1 -0 0000b985 _epilog_c28x_2 -0 0000b98d _EMUINT_ISR -0 0000b998 _ILLEGAL_ISR -0 0000b9a3 _NMI_ISR -0 0000b9ae _USER10_ISR -0 0000b9b9 _USER11_ISR -0 0000b9c4 _USER12_ISR -0 0000b9cf _USER1_ISR -0 0000b9da _USER2_ISR -0 0000b9e5 _USER3_ISR -0 0000b9f0 _USER4_ISR -0 0000b9fb _USER5_ISR -0 0000ba06 _USER6_ISR -0 0000ba11 _USER7_ISR -0 0000ba1c _USER8_ISR -0 0000ba27 _USER9_ISR -0 0000ba32 _ump_log_rs -0 0000ba3d U$$DIV -0 0000ba42 U$$MOD -0 0000ba48 _INT_NOTUSED_ISR -0 0000ba52 _PIE_RESERVED -0 0000ba5c _rsvd_ISR -0 0000ba66 _EnableInterrupts -0 0000ba6f _InitSysCtrl -0 0000ba78 __register_unlock -0 0000ba7c __register_lock -0 0000ba80 __nop -0 0000ba81 _DisableDog -0 0000ba89 _memset -0 0000ba90 _SPISE2P_DRV_csclr -0 0000ba95 _SPISE2P_DRV_csset -0 0000ba9a _set_cntrl_addr -0 0000ba9f _DSP28x_usDelay -0 0000baa6 _tflash -0 0000baa7 ___etext__ -0 0000baa7 etext +0 000085de _main +0 00008784 _get_Buttons +0 00008927 _setup_adc +0 00008ab4 _cpu_timer1_isr_SENS +0 00008c38 _RS_RX_Handler +0 00008d97 _Load_runner +0 00008ef3 _cpu_timer1_isr_PULT +0 00009036 _Init_sensors +0 0000915f _SPISE2P_DRV_tick +0 00009281 _get_Mode +0 00009396 _kanal_Send +0 000094a1 _Power_count +0 0000959a _Default_params +0 00009686 _setup_uart +0 0000976b _ump_log_read +0 0000981e _calc_sensor_koef +0 000098cc _InitCan +0 00009978 _UMP_CAN_service +0 00009a20 _ReceiveCommandModbus3 +0 00009abd _select_tpl_canal +0 00009b59 _upload +0 00009bf0 _Init_packMask +0 00009e2c FS$$DIV +0 00009eb4 _InitPeripheralClocks +0 00009f39 _extendbios +0 00009fbd _init +0 00009fbe _ump_rtu_encode +0 0000a041 _InitPll +0 0000a0c3 _peek +0 0000a13b _Handlai +0 0000a1ad _ump_validate +0 0000a21e _ump_log_write +0 0000a28e _RS_TX_Handler +0 0000a2fc _Load_protection_prepare +0 0000a365 _Init_sensors_more +0 0000a3c7 _InitXintf16Gpio +0 0000a420 _get_command +0 0000a477 _ReceiveCommandModbus6 +0 0000a5b2 _ump_prepare +0 0000a5ff _RS_Send +0 0000a64a _CANa_handler +0 0000a6dd _load +0 0000a726 _CAN_send +0 0000a76e _initload +0 0000a7b5 _RSA_RX_Handler +0 0000a7fb _RSA_TX_Handler +0 0000a841 _RSB_RX_Handler +0 0000a887 _RSB_TX_Handler +0 0000a8cd _c_int00 +0 0000a913 _ump_log_can +0 0000a955 _Seeprom_read +0 0000a996 _Seeprom_write +0 0000a9d7 _setup_arr_cmd_length +0 0000aa18 _Load_params +0 0000aa58 _RS_SetLineSpeed +0 0000aa96 _init_zone7 +0 0000aad4 _InitCpuTimers +0 0000ab0f _Load_voltage_can +0 0000ab4a _ump_can_fragment +0 0000ab85 _poke +0 0000abbf _cpu_timer2_isr +0 0000abf8 _SendCommandModbus4 +0 0000ac30 _ump_tms28335_fragment +0 0000ac68 _RS_BSend +0 0000ac9f _run +0 0000aca0 _ReceiveAnswerModbus4 +0 0000acd7 _Answer +0 0000ad70 _SPISE2P_DRV_init +0 0000ada2 _unsetup_leds_line +0 0000add4 _dSEND +0 0000ae05 _RS_FifoTick1ms +0 0000ae34 _filterbat +0 0000ae62 _ump_log_io +0 0000ae90 _RS_SetLineMode +0 0000aebd _timer_Init +0 0000aeea _get_crc_16b +0 0000af16 _CANa_reset_err +0 0000af41 L$$DIV +0 0000af50 L$$MOD +0 0000af5e UL$$DIV +0 0000af65 UL$$MOD +0 0000af6b _InitSeeprom +0 0000af94 _get_crc16 +0 0000afbb _Save_params +0 0000b003 _select_tpl_255 +0 0000b027 _setup_leds_line +0 0000b049 _ConfigCpuTimer +0 0000b06a _Setup_DAC_time +0 0000b08a _sqrt +0 0000b0aa _InitPieCtrl +0 0000b0c9 _reset_errs +0 0000b0e8 _Load_control_init +0 0000b106 _SENDBIT +0 0000b124 _ump_log_init +0 0000b141 _ump_tms28335_prepare +0 0000b15e _what_is +0 0000b17b _Init_DAC +0 0000b197 _im_calc +0 0000b1b3 _ump_crc +0 0000b1cf _ump_tms28335_capture +0 0000b1eb _ADCINT_ISR +0 0000b206 _DINTCH1_ISR +0 0000b221 _DINTCH2_ISR +0 0000b23c _DINTCH3_ISR +0 0000b257 _DINTCH4_ISR +0 0000b272 _DINTCH5_ISR +0 0000b28d _DINTCH6_ISR +0 0000b2a8 _ECAN0INTA_ISR +0 0000b2c3 _ECAN0INTB_ISR +0 0000b2de _ECAN1INTA_ISR +0 0000b2f9 _ECAN1INTB_ISR +0 0000b314 _ECAP1_INT_ISR +0 0000b32f _ECAP2_INT_ISR +0 0000b34a _ECAP3_INT_ISR +0 0000b365 _ECAP4_INT_ISR +0 0000b380 _ECAP5_INT_ISR +0 0000b39b _ECAP6_INT_ISR +0 0000b3b6 _EPWM1_INT_ISR +0 0000b3d1 _EPWM1_TZINT_ISR +0 0000b3ec _EPWM2_INT_ISR +0 0000b407 _EPWM2_TZINT_ISR +0 0000b422 _EPWM3_INT_ISR +0 0000b43d _EPWM3_TZINT_ISR +0 0000b458 _EPWM4_INT_ISR +0 0000b473 _EPWM4_TZINT_ISR +0 0000b48e _EPWM5_INT_ISR +0 0000b4a9 _EPWM5_TZINT_ISR +0 0000b4c4 _EPWM6_INT_ISR +0 0000b4df _EPWM6_TZINT_ISR +0 0000b4fa _EQEP1_INT_ISR +0 0000b515 _EQEP2_INT_ISR +0 0000b530 _I2CINT1A_ISR +0 0000b54b _I2CINT2A_ISR +0 0000b566 _LUF_ISR +0 0000b581 _LVF_ISR +0 0000b59c _MRINTA_ISR +0 0000b5b7 _MRINTB_ISR +0 0000b5d2 _MXINTA_ISR +0 0000b5ed _MXINTB_ISR +0 0000b608 _SCIRXINTA_ISR +0 0000b623 _SCIRXINTB_ISR +0 0000b63e _SCIRXINTC_ISR +0 0000b659 _SCITXINTA_ISR +0 0000b674 _SCITXINTB_ISR +0 0000b68f _SCITXINTC_ISR +0 0000b6aa _SEQ1INT_ISR +0 0000b6c5 _SEQ2INT_ISR +0 0000b6e0 _SPIRXINTA_ISR +0 0000b6fb _SPITXINTA_ISR +0 0000b716 _TINT0_ISR +0 0000b731 _WAKEINT_ISR +0 0000b74c _XINT3_ISR +0 0000b767 _XINT4_ISR +0 0000b782 _XINT5_ISR +0 0000b79d _XINT6_ISR +0 0000b7b8 _XINT7_ISR +0 0000b7d3 __args_main +0 0000b7ee _RS_SetBitMode +0 0000b808 _create_uart_vars +0 0000b822 _InitAdc +0 0000b83b _XINT1_ISR +0 0000b854 _XINT2_ISR +0 0000b86d C$$EXIT +0 0000b86d _abort +0 0000b86f _exit +0 0000b886 _prolog_c28x_1 +0 0000b88a _prolog_c28x_2 +0 0000b892 _prolog_c28x_3 +0 0000b89f _RESET +0 0000b8b7 _ump_log_tick +0 0000b8cf _clear_mem +0 0000b8e6 _ServiceDog +0 0000b910 _er_anal +0 0000b938 _RS_FifoWait +0 0000b95e _get_crc_16 +0 0000b970 _pause_us +0 0000b990 _DATALOG_ISR +0 0000b99d _INT13_ISR +0 0000b9aa _INT14_ISR +0 0000b9b7 _InitPieVectTable +0 0000b9c4 _RTOSINT_ISR +0 0000b9d1 _epilog_c28x_1 +0 0000b9d5 _epilog_c28x_2 +0 0000b9dd _EMUINT_ISR +0 0000b9e8 _ILLEGAL_ISR +0 0000b9f3 _NMI_ISR +0 0000b9fe _USER10_ISR +0 0000ba09 _USER11_ISR +0 0000ba14 _USER12_ISR +0 0000ba1f _USER1_ISR +0 0000ba2a _USER2_ISR +0 0000ba35 _USER3_ISR +0 0000ba40 _USER4_ISR +0 0000ba4b _USER5_ISR +0 0000ba56 _USER6_ISR +0 0000ba61 _USER7_ISR +0 0000ba6c _USER8_ISR +0 0000ba77 _USER9_ISR +0 0000ba82 _ump_log_rs +0 0000ba8d U$$DIV +0 0000ba92 U$$MOD +0 0000ba98 _INT_NOTUSED_ISR +0 0000baa2 _PIE_RESERVED +0 0000baac _rsvd_ISR +0 0000bab6 _EnableInterrupts +0 0000babf _InitSysCtrl +0 0000bac8 __register_unlock +0 0000bacc __register_lock +0 0000bad0 __nop +0 0000bad1 _DisableDog +0 0000bad9 _memset +0 0000bae0 _SPISE2P_DRV_csclr +0 0000bae5 _SPISE2P_DRV_csset +0 0000baea _set_cntrl_addr +0 0000baef _DSP28x_usDelay +0 0000baf6 _tflash +0 0000baf7 ___etext__ +0 0000baf7 etext 0 0000c000 _RamfuncsLoadEnd 0 0000c000 _RamfuncsLoadStart 0 0000c000 _RamfuncsRunStart @@ -1638,13 +1638,26 @@ page address name 1 00007900 _I2caRegs 1 0000d040 _rs_a 1 0000d3c0 _rs_b -1 0000d70a _din_count -1 0000d72a _powK -1 0000d73c _adc_table_lem +1 0000d710 _din_count +1 0000d730 _Maska 1 0000d740 _adc_filter -1 0000d8f0 _Maska +1 0000d8f0 _digits 1 0000d900 _out_filter -1 0000dab0 _digits +1 0000dab0 _Mode +1 0000dab1 _Desk +1 0000dab2 _TermoAD +1 0000dab3 _TermoRS +1 0000dab4 _TermoSW +1 0000dab5 _Kurrent +1 0000dab6 _Kalibro +1 0000dab7 _Owen +1 0000dab8 _INcount0 +1 0000dab9 _INcount1 +1 0000daba _MUX_GPIO32 +1 0000dabb _MUX_GPIO48 +1 0000dabc _DIR_GPIO32 +1 0000dabd _DIR_GPIO48 +1 0000dabe _DigErr 1 0000dac0 _crc_16_tab 1 0000dbc0 _modbus 1 0000dc41 _flag_DEBUG @@ -1677,12 +1690,11 @@ page address name 1 0000dd24 _K_T2 1 0000dd28 _def_FILTERBAT 1 0000dd3a _err_count -1 0000ddbc _ADDR_FOR_ALL -1 0000ddbd _CNTRL_ADDR -1 0000ddbe _cntr_addr_c -1 0000ddbf _cntr_addr_c_all -1 0000de3c __unlock -1 0000de3e __lock +1 0000ddbc _adc_table_lem +1 0000de3c _ADDR_FOR_ALL +1 0000de3d _CNTRL_ADDR +1 0000de3e _cntr_addr_c +1 0000de3f _cntr_addr_c_all 1 0000de40 _zer_filter 1 0000de88 _no_write 1 0000de89 _never_write @@ -1708,21 +1720,9 @@ page address name 1 0000dfbe _WAKE_TIME 1 0000dfc0 _sens_pair 1 0000dfd8 _sens_type -1 0000dff0 _Mode -1 0000dff1 _Desk -1 0000dff2 _TermoAD -1 0000dff3 _TermoRS -1 0000dff4 _TermoSW -1 0000dff5 _Kurrent -1 0000dff6 _Kalibro -1 0000dff7 _Owen -1 0000dff8 _INcount0 -1 0000dff9 _INcount1 -1 0000dffa _MUX_GPIO32 -1 0000dffb _MUX_GPIO48 -1 0000dffc _DIR_GPIO32 -1 0000dffd _DIR_GPIO48 -1 0000dffe _DigErr +1 0000dff0 _lev_quadr +1 0000dffc __unlock +1 0000dffe __lock 1 0000e000 _CanTimeOutErrorTR 1 0000e001 _wait 1 0000e00a _ErrorCount @@ -1731,20 +1731,20 @@ page address name 1 0000e010 _TestMbox1 1 0000e012 _TestMbox2 1 0000e014 _TestMbox3 -1 0000e018 _lev_quadr -1 0000e024 _isNumb -1 0000e025 _quaLamp -1 0000e02a _isMask -1 0000e02c _Lonely -1 0000e02e _ext_diag -1 0000e036 _ext_temp -1 0000e040 _zer_count -1 0000e048 _lev_count -1 0000e04e _readr -1 0000e053 _errno -1 0000e054 __cleanup_ptr -1 0000e056 __dtors_ptr -1 0000e05a _low_count +1 0000e018 _powK +1 0000e02a _isNumb +1 0000e02b _quaLamp +1 0000e030 _isMask +1 0000e032 _Lonely +1 0000e034 _ext_diag +1 0000e03c __cleanup_ptr +1 0000e03e __dtors_ptr +1 0000e040 _ext_temp +1 0000e048 _zer_count +1 0000e050 _lev_count +1 0000e056 _readr +1 0000e05f _low_count +1 0000e063 _errno 1 00200000 _logs_block 1 0033fff8 _CsmPwl 1 00380090 _PartIdRegs diff --git a/tests/rs232_fifo/model.inc b/tests/rs232_fifo/model.inc index 4f35c6e..35ee7cd 100644 --- a/tests/rs232_fifo/model.inc +++ b/tests/rs232_fifo/model.inc @@ -3,6 +3,7 @@ static char size_cmd15; /* Моделирует локальную настро /* Продолжает список аргументов, полей или выражение volatile struct SCI_REGS SciaRegs,ScibRegs;; порядок элементов сохраняется. */ volatile struct SCI_REGS SciaRegs,ScibRegs; +long LSPCLK=60000000L; /* Моделирует частоту SCI 60 МГц из текущего проекта, чтобы проверять настоящий расчёт BRR. */ /* Описывает структуру ; порядок полей определяет расположение данных. */ struct { struct { struct { unsigned ACK9; } bit; } PIEACK; } PieCtrlRegs; /* Описывает структуру ; порядок полей определяет расположение данных. */ @@ -112,6 +113,7 @@ static void reset(void) rs_a.commnumber=1;rs_b.commnumber=2;rs_a.SciRegs=&SciaRegs;rs_b.SciRegs=&ScibRegs; /* Записывает SciaRegs.SCICTL2.bit.TXEMPTY значением ScibRegs.SCICTL2.bit.TXEMPTY=1; данные TXEMPTY. */ SciaRegs.SCICTL2.bit.TXEMPTY=ScibRegs.SCICTL2.bit.TXEMPTY=1; + SciaRegs.SCICTL1.bit.RXERRINTENA=1; /* Повторяет штатное разрешение ошибок SCI-A, чтобы проверить их фактическое отключение на время TX и последующее включение. */ /* Записывает rs_a.RS_Flag9bit значением rs_b.RS_Flag9bit=1; RS флаг 9 бит. */ rs_a.RS_Flag9bit=rs_b.RS_Flag9bit=1; /* Записывает RS_Len[3] значением 8;RS_Len[6]=8;RS_Len[16]=13;RS_Len[51]=12; таблица ожидаемых длин команд последовательного протокола. */ @@ -151,6 +153,30 @@ int main(void) assert(memcmp(&rs_a, &expected, sizeof(rs_a)) == 0); /* Проверяет все поля и оба буфера первого порта, включая флаги готовности. */ expected.commnumber = COM_2; /* Подготавливает ожидаемое состояние второго порта. */ assert(memcmp(&rs_b, &expected, sizeof(rs_b)) == 0 && size_cmd15 == 17); /* Проверяет второй порт и сохранение настройки длины команды. */ + reset(); /* Назначает регистры портов после проверки полного сброса RAM. */ + RS_SetLineSpeed(&rs_a,115200UL); /* Воспроизводит установку скорости RS232, на которой наблюдались ошибки приёма. */ + assert(SciaRegs.SCIHBAUD==0 && SciaRegs.SCILBAUD==64 && rs_a.curr_baud==115200UL); /* Проверяет BRR=64 по формуле LSPCLK/(8*baud)-1; прежний код ошибочно записывал 65. */ + RS_SetLineSpeed(&rs_b,9600UL); /* Проверяет общую функцию на выбранной пользователем скорости второго порта. */ + assert(ScibRegs.SCIHBAUD==3 && ScibRegs.SCILBAUD==12 && rs_b.curr_baud==9600UL); /* Проверяет округлённый BRR=780=0x030C для 60 МГц и 9600 бод. */ + RS_SetLineSpeed(&rs_a,57600UL); /* Проверяет альтернативную стандартную скорость без дробных операций. */ + assert(SciaRegs.SCIHBAUD==0 && SciaRegs.SCILBAUD==129); /* Проверяет BRR=129, соответствующий отношению 130,2083, округлённому до 130. */ + RS_SetLineSpeed(&rs_a,19200UL); /* Проверяет округление вверх при дробной части отношения 0,625. */ + assert(SciaRegs.SCIHBAUD==1 && SciaRegs.SCILBAUD==134); /* Проверяет BRR=390=0x0186 после округления отношения 390,625 до 391. */ + RS_SetLineSpeed(&rs_a,0UL); /* Передаёт ошибочную нулевую скорость для проверки защиты от деления на ноль. */ + RS_SetLineSpeed(&rs_a,0xFFFFFFFFUL); /* Проверяет защиту 32-битного произведения baud*8 от переполнения. */ + assert(SciaRegs.SCIHBAUD==1 && SciaRegs.SCILBAUD==134 && rs_a.curr_baud==19200UL); /* Неверные аргументы не должны изменять регистры и диагностическую скорость. */ + RS_SetLineSpeed(&rs_a,1UL); /* Проверяет ограничение слишком большого делителя, не представимого в 16-битном BRR. */ + assert(SciaRegs.SCIHBAUD==255 && SciaRegs.SCILBAUD==255); /* Ограничение должно дать BRR=65535, а не обёрнутое значение младших битов. */ + RS_SetLineSpeed(&rs_a,4000000UL); /* Проверяет ограничение скорости выше аппаратного максимума LSPCLK/16=3750000 бод. */ + assert(SciaRegs.SCIHBAUD==0 && SciaRegs.SCILBAUD==1); /* Проверяет минимальный обычный BRR=1, соответствующий аппаратному пределу. */ + reset(); /* Подготавливает ошибку BREAK при пустом FIFO, которая не вызывает RX-прерывание по уровню. */ + SciaRegs.SCIRXST.all=0xA0U; /* Устанавливает RXERROR в бите 7 и BRKDT в бите 5 по карте регистра TI SPRUI07. */ + RS_RX_Handler(&rs_a); /* Вызывает настоящий обработчик общей ошибки без чтения отсутствующего байта. */ + assert(rs_a.fifo_rx_errors==1 && rs_a.fifo_rx_bytes==0 && rs_a.fifo_rx_last_status==0xA0U); /* Подтверждает сохранение BREAK до SWRESET и отсутствие фиктивного чтения FIFO. */ + assert(!SciaRegs.SCIRXST.all && !rs_a.fifo_rx_last_error_word); /* Подтверждает сброс аппаратного состояния и отсутствие повреждённого слова при пустом FIFO. */ + for(i=0;i<4;i++) RS_FifoTick1ms(); /* Выдерживает защитную паузу 3–4 мс после ошибки перед новым адресом. */ + feed(&rs_a,request,8); /* Передаёт корректную восьмибайтную команду после восстановления приёмника. */ + assert(rs_a.RS_DataReady && rs_a.fifo_rx_bytes==8); /* Проверяет реальное восстановление обработки команд после BREAK. */ /* Цикл for(mode=0;mode<2;mode++)for(a=0;a4200)continue; /* Вызывает assert с аргументами ((mode ? RS_BSend(&rs_a,data,n):RS_Send(&rs_a,data,n))==0) в текущей последовательности операций. */ assert((mode ? RS_BSend(&rs_a,data,n):RS_Send(&rs_a,data,n))==0); + if (rs_a.fifo_tx_active) assert(!SciaRegs.SCICTL1.bit.RXERRINTENA); /* Во время активной передачи шум RX не должен сбрасывать SCI через прерывание ошибки. */ /* Проверяет if(n и rs_a.fifo_tx_active)assert(rs_a.RS_Flag9bit==0); последующий оператор выполняется только при истинном условии. */ if(n && rs_a.fifo_tx_active)assert(rs_a.RS_Flag9bit==0); /* Вызывает RS_FifoWait. Ожидает завершения аппаратной передачи FIFO и сдвигового регистра SCI. */ RS_FifoWait(&rs_a);assert(!rs_a.fifo_tx_active && wire_count[0]==n); + if (n) assert(SciaRegs.SCICTL1.bit.RXERRINTENA); /* После любого непустого блока защита от BREAK должна возвращаться вместе с приёмом FIFO. */ /* Цикл for(i=0;i