Compare commits

...

6 Commits

12 changed files with 5954 additions and 6036 deletions

145
.gitignore vendored Normal file
View File

@ -0,0 +1,145 @@
# ---> uVision
# git ignore file for Keil µVision Project
# µVision 5 and µVision 4 Project screen layout file
*.uvguix.*
*.uvgui.*
*.uvoptx.*
# Listing Files
*.i
*.lst
*.m51
*.m66
*.map
# Object Files
*.axf
*.b[0-2][0-9]
*.b3[0-1]
*.bak
*.build_log.htm
*.crf
*.d
*.dep
*.elf
*.htm
*.iex
*.lnp
*.o
*.obj
*.sbr
# Firmware Files
*.bin
*.h86
*.hex
# Build Files
.bat
# Debugger Files
.ini
# JLink Files
JLinkLog.txt
# Other Files
# ---> Qt
# C++ objects and libs
*.slo
*.lo
*.o
*.a
*.la
*.lai
*.so
*.so.*
*.dll
*.dylib
# Qt-es
object_script.*.Release
object_script.*.Debug
*_plugin_import.cpp
/.qmake.cache
/.qmake.stash
*.pro.user
*.pro.user.*
*.qbs.user
*.qbs.user.*
*.moc
moc_*.cpp
moc_*.h
qrc_*.cpp
ui_*.h
*.qmlc
*.jsc
Makefile*
*build-*
*.qm
*.prl
# Qt unit tests
target_wrapper.*
# QtCreator
*.autosave
# QtCreator Qml
*.qmlproject.user
*.qmlproject.user.*
# QtCreator CMake
CMakeLists.txt.user*
# QtCreator 4.8< compilation database
compile_commands.json
# QtCreator local machine specific files for imported projects
*creator.user*
*_qmlcache.qrc
# ---> MATLAB
# Windows default autosave extension
*.asv
# OSX / *nix default autosave extension
*.m~
# Compiled MEX binaries (all platforms)
*.mex*
# Packaged app and toolbox files
*.mlappinstall
*.mltbx
# Generated helpsearch folders
helpsearch*/
# Simulink code generation folders
slprj/
sccprj/
# Matlab code generation folders
codegen/
# Simulink autosave extension
*.autosave
# Simulink cache files
*.slxc
# Octave session info
octave-workspace
/MDK-ARM/uksvep_2_2_v1.uvguix.z
/MDK-ARM/uksvep_2_2_v1/uksvep_2_2_v1_uksvep_2_2_v1.dep
/MDK-ARM/uksvep_2_2_v1/uksvep_2_2_v1.build_log.htm
/MDK-ARM/uksvep_2_2_v1/uksvep_2_2_v1.htm

View File

@ -151,216 +151,216 @@ for(i=0;i<10;i++)
/* USER CODE BEGIN WHILE */
while (1)
{
//=== БЛОК ПРИНУДИТЕЛЬНОЙ ПАУЗЫ ===//
//=== БЛОК ПРИНУДИТЕЛЬНОЙ ПАУЗЫ ===//
if (flag.force_pause)
{
__disable_irq(); // Отключаем все прерывания
for(int i = 0; i < flag.pause; i++); // Пустой цикл для задержки
__enable_irq(); // Включаем прерывания обратно
__disable_irq(); // Отключаем все прерывания
for(int i = 0; i < flag.pause; i++); // Пустой цикл для задержки
__enable_irq(); // Включаем прерывания обратно
}
//=== ОБРАБОТКА CAN-ШИНЫ ===//
if (CanGO) // Флаг разрешения работы с CAN-шиной
//=== ОБРАБОТКА CAN-ШИНЫ ===//
if (CanGO) // Флаг разрешения работы с CAN-шиной
{
CanGO = 0; // Сбрасываем флаг
CanGO = 0; // Сбрасываем флаг
// Увеличиваем счетчики ожидания для всех элементов (ограничение 30000)
// Увеличиваем счетчики ожидания для всех элементов (ограничение 30000)
for(i = 0; i < 0x80; i++)
if(espero[i] < 30000)
espero[i]++;
// Уменьшаем счетчики задержки для двух CAN-каналов
// Уменьшаем счетчики задержки для двух CAN-каналов
for(i = 0; i < 2; i++)
if(cancount[i])
cancount[i]--;
else
cancell[i] = 0; // Сброс позиции, если счетчик обнулился
cancell[i] = 0; // Сброс позиции, если счетчик обнулился
}
//=== ОБРАБОТКА КАНАЛОВ CAN ===//
for(i = 0; i < 2; i++) // Для каждого из двух CAN-каналов
//=== ОБРАБОТКА КАНАЛОВ CAN ===//
for(i = 0; i < 2; i++) // Для каждого из двух CAN-каналов
{
if (Cancount[i] && !cancount[i]) // Если есть задержка и счетчик обнулился
if (Cancount[i] && !cancount[i]) // Если есть задержка и счетчик обнулился
{
// Поиск следующего элемента для обработки
// Поиск следующего элемента для обработки
while(1)
{
if (cancell[i] >= 0x80) // Если достигли конца диапазона
if (cancell[i] >= 0x80) // Если достигли конца диапазона
{
cancell[i] = 0; // Сброс позиции
cancell[i] = 0; // Сброс позиции
if (candid[i]) // Если есть кандидат для обработки
if (candid[i]) // Если есть кандидат для обработки
{
candid[i] = 0; // Сброс флага кандидата
CanCycle[i]++; // Увеличиваем счетчик циклов
cancount[i] = CanWait[i]; // Устанавливаем задержку
goto Next; // Переход к следующей итерации
candid[i] = 0; // Сброс флага кандидата
CanCycle[i]++; // Увеличиваем счетчик циклов
cancount[i] = CanWait[i]; // Устанавливаем задержку
goto Next; // Переход к следующей итерации
}
}
// Проверка маски для определения активных элементов
// Проверка маски для определения активных элементов
mask = Maska[i][cancell[i] / 0x10] >> (cancell[i] & 0x0F);
if (!mask) // Если маска пустая
cancell[i] = (cancell[i] + 0x10) & 0xFFF0; // Переход к следующей группе
if (!mask) // Если маска пустая
cancell[i] = (cancell[i] + 0x10) & 0xFFF0; // Переход к следующей группе
else
{
// Поиск первого установленного бита в маске
// Поиск первого установленного бита в маске
while (!(mask & 1))
{
cancell[i]++;
mask >>= 1;
}
break; // Найден активный элемент
break; // Найден активный элемент
}
}
z = 1; // Флаг нормального состояния
// Проверка превышения времени ожидания
z = 1; // Флаг нормального состояния
// Проверка превышения времени ожидания
if (espero[cancell[i]] > CanRestart[i])
{
county[cancell[i]] = 1; // Установка флага необходимости отправки
z = 0; // Флаг аварийного состояния
county[cancell[i]] = 1; // Установка флага необходимости отправки
z = 0; // Флаг аварийного состояния
}
// Проверка изменения данных для отправки
// Проверка изменения данных для отправки
if (modbus[cancell[i]] != archiv[cancell[i]])
{
if (cancell[i] == keys) // Если это ключевой элемент
if (cancell[i] == keys) // Если это ключевой элемент
{
// Установка флагов для группы элементов
// Установка флагов для группы элементов
for(j = 0; j < CanRptLen; j++)
county[cancell[i] + j] = CanRptVez;
}
else
{
county[cancell[i]] = 1; // Установка флага для одиночного элемента
county[cancell[i]] = 1; // Установка флага для одиночного элемента
}
}
// Обработка элементов, требующих отправки
// Обработка элементов, требующих отправки
if (county[cancell[i]])
{
// Поиск границ группы измененных элементов
// Поиск границ группы измененных элементов
for(j = 3; j > 0 && !Isit(cancell[i] + j, i, z); j--);
for(n = j - 3; n < 0 && !Isit(cancell[i] + n, i, 1); n++);
qua = 1 + j - n; // Расчет количества элементов в группе
cancell[i] += n; // Корректировка позиции
qua = 1 + j - n; // Расчет количества элементов в группе
cancell[i] += n; // Корректировка позиции
// Обработка каждого элемента в группе
// Обработка каждого элемента в группе
for(j = 0; j < qua; j++)
{
n = cancell[i] + j;
archiv[n] = modbus[n]; // Сохранение текущего значения
espero[n] = 0; // Сброс счетчика ожидания
archiv[n] = modbus[n]; // Сохранение текущего значения
espero[n] = 0; // Сброс счетчика ожидания
if (county[n]) // Если элемент требует обработки
if (county[n]) // Если элемент требует обработки
{
county[n]--; // Уменьшение счетчика
// Если счетчик обнулился и это не циклический элемент
county[n]--; // Уменьшение счетчика
// Если счетчик обнулился и это не циклический элемент
if (!county[n] && n != cancyclo + i)
candid[i] = 1; // Установка флага кандидата
candid[i] = 1; // Установка флага кандидата
}
// Обновление маски активных элементов
// Обновление маски активных элементов
if (!county[n])
masca[n / 0x10] |= (1 << (n & 0x0F));
}
// Отправка данных через CAN-шину
// Отправка данных через CAN-шину
CAN_send(archiv, cancell[i], qua);
cancount[i] = Cancount[i]; // Установка задержки
cancell[i] += qua; // Переход к следующей позиции
cancount[i] = Cancount[i]; // Установка задержки
cancell[i] += qua; // Переход к следующей позиции
// Проверка завершения обработки всех элементов
// Проверка завершения обработки всех элементов
for(j = 0; j < 8; j++)
if ((masca[j] & Maska[i][j]) != Maska[i][j])
break;
if (j == 8) // Если все элементы обработаны
if (j == 8) // Если все элементы обработаны
{
// Сброс соответствующих битов маски
// Сброс соответствующих битов маски
for(j = 0; j < 8; j++)
masca[j] &= ~Maska[i][j];
CanRound[i]++; // Увеличение счетчика раундов
CanRound[i]++; // Увеличение счетчика раундов
}
// Управление параллельной обработкой каналов
// Управление параллельной обработкой каналов
if (Cancount[i] > 1 && !cancount[!i])
cancount[!i] = 1; // Запуск другого канала
cancount[!i] = 1; // Запуск другого канала
}
else
{
cancell[i]++; // Переход к следующему элементу
cancell[i]++; // Переход к следующему элементу
}
}
}
Next: // Метка для перехода к следующей части цикла
Next: // Метка для перехода к следующей части цикла
//=== ЧТЕНИЕ ВХОДНЫХ СИГНАЛОВ ===//
ReadEnteres(); // Функция чтения дискретных входов
//=== ЧТЕНИЕ ВХОДНЫХ СИГНАЛОВ ===//
ReadEnteres(); // Функция чтения дискретных входов
//=== УПРАВЛЕНИЕ ВЫХОДНЫМИ СИГНАЛАМИ ===//
//=== УПРАВЛЕНИЕ ВЫХОДНЫМИ СИГНАЛАМИ ===//
if (Errors.all | Alarms.all)
Pvt4_OFF; // Выключение сигнала "Система ВЭП в норме"
Pvt4_OFF; // Выключение сигнала "Система ВЭП в норме"
else
Pvt4_ON; // Включение сигнала "Система ВЭП в норме"
Pvt4_ON; // Включение сигнала "Система ВЭП в норме"
if (Errors.all)
Pvt3_ON; // Включение сигнала "Авария системы ВЭП"
Pvt3_ON; // Включение сигнала "Авария системы ВЭП"
else
Pvt3_OFF; // Выключение сигнала "Авария системы ВЭП"
Pvt3_OFF; // Выключение сигнала "Авария системы ВЭП"
if (Falling_asleep)
Pvt2_ON; // Включение сигнала управления
Pvt2_ON; // Включение сигнала управления
else
Pvt2_OFF; // Выключение сигнала управления
Pvt2_OFF; // Выключение сигнала управления
//=== ОБРАБОТКА КОМАНД ===//
if (Commands != precom) // Если команды изменились
//=== ОБРАБОТКА КОМАНД ===//
if (Commands != precom) // Если команды изменились
{
command = (~precom | command) & Commands; // Обновление активных команд
command = (~precom | command) & Commands; // Обновление активных команд
}
precom = Commands; // Сохранение текущих команд для следующей итерации
precom = Commands; // Сохранение текущих команд для следующей итерации
//=== ОБРАБОТКА СИСТЕМНЫХ КОМАНД ===//
if (cDefParam) // Команда сброса параметров по умолчанию
//=== ОБРАБОТКА СИСТЕМНЫХ КОМАНД ===//
if (cDefParam) // Команда сброса параметров по умолчанию
{
cDefParam = 0;
Default_params(); // Вызов функции сброса параметров
Default_params(); // Вызов функции сброса параметров
}
if (cSaveParam) // Команда сохранения параметров
if (cSaveParam) // Команда сохранения параметров
{
cSaveParam = 0;
Save_params(); // Вызов функции сохранения параметров
Save_params(); // Вызов функции сохранения параметров
}
if (cLoadParam) // Команда загрузки параметров
if (cLoadParam) // Команда загрузки параметров
{
cLoadParam = 0;
Load_params(); // Вызов функции загрузки параметров
Load_params(); // Вызов функции загрузки параметров
}
if (cCanReset) // Команда сброса CAN-системы
if (cCanReset) // Команда сброса CAN-системы
{
cCanReset = 0;
// Сброс всех счетчиков и состояний CAN-системы
// Сброс всех счетчиков и состояний CAN-системы
for(i = 0; i < 0x80; i++)
county[i] = 1; // Установка флагов отправки для всех элементов
county[i] = 1; // Установка флагов отправки для всех элементов
for(i = 0; i < 2; i++)
{
CanCycle[i] = 0; // Сброс счетчиков циклов
CanRound[i] = 0; // Сброс счетчиков раундов
cancount[i] = 0; // Сброс счетчиков задержки
cancell[i] = 0; // Сброс позиций
CanCycle[i] = 0; // Сброс счетчиков циклов
CanRound[i] = 0; // Сброс счетчиков раундов
cancount[i] = 0; // Сброс счетчиков задержки
cancell[i] = 0; // Сброс позиций
}
for(i = 0; i < 8; i++)
masca[i] = 0; // Сброс масок
masca[i] = 0; // Сброс масок
}
@ -414,24 +414,174 @@ void SystemClock_Config(void)
/* USER CODE BEGIN 4 */
//////////////// USER FUNC ////////////////////
/**
* @brief Проверяет, активен ли указанный элемент для обработки в CAN-шине
* @param num Номер элемента (0x00-0x7F)
* @param i Номер CAN-канала (0 или 1)
* @param z Флаг дополнительных проверок (1 - включить доп. проверки, 0 - только маска)
* @return 1 - элемент активен, 0 - элемент не активен
*/
int Isit(int num, int i, int z)
{
int res, pls;
if((num<0)||(num>=0x80)) return 0;
res = Maska[i][num/0x10];
res &= (1<<(num&0x0F));
if(z)
{
pls = (espero[num]>CanRestart[i]/2);
pls = pls || county[num];
res = res && pls;
}
return res;
int res, pls;
//=== ПРОВЕРКА ДИАПАЗОНА ===//
// Если номер элемента вне допустимого диапазона (0x00-0x7F)
if((num < 0) || (num >= 0x80))
return 0; // Элемент не активен
//=== ПРОВЕРКА МАСКИ КАНАЛА ===//
// Определяем битовую маску для данного элемента
// num/0x10 - определяем индекс в массиве масок (0-7)
// num&0x0F - определяем позицию бита в слове (0-15)
res = Maska[i][num / 0x10]; // Получаем маску для группы элементов
res &= (1 << (num & 0x0F)); // Проверяем конкретный бит в маске
//=== ДОПОЛНИТЕЛЬНЫЕ ПРОВЕРКИ (если z != 0) ===//
if(z)
{
// Проверка времени ожидания: если превышена половина времени перезапуска
pls = (espero[num] > CanRestart[i] / 2);
// ИЛИ проверка счетчика отправки (если county[num] != 0)
pls = pls || county[num];
// Комбинированная проверка: должен быть установлен в маске И выполнять условия
res = res && pls;
}
return res; // Возвращаем результат проверки
}
/**
* @brief Функция обработки милисекундных событий системы
* @note Вызывается каждую миллисекунду из SysTick_Handler
*/
void Millisecond()
{
// Статические переменные для хранения состояния между вызовами
static int CanPowse; // Счетчик для управления CAN-шиной
static unsigned int count_blink = 0, // Счетчик для мигания
count_bright = 0, // Счетчик для управления яркостью
count_mode, // Счетчик режимов мигания
blink_over, // Флаг переключения состояния мигания
blink_alarm, // Флаг мигания аварии
power_lamp, // Состояние силовой лампы
work_diod, // Состояние рабочего светодиода
norm_diod; // Состояние нормального светодиода
static int preTest; // Предыдущее состояние теста
int TST; // Текущее состояние теста
// Константы времени
#define CANPOWSE 10 // 10 msec - период обновления CAN
#define BLINK_TIME 250 // 0.25 sec - период мигания
//=== ОБНОВЛЕНИЕ WATCHDOG ===//
if(!cReset)
IWDG->KR = 0xAAAA; // Сброс watchdog таймера
//=== ПРОВЕРКА АКТИВНОСТИ ТАЙМЕРА ===//
if(!timGo) return; // Если таймер не активен - выход
//=== ЧТЕНИЕ ПЕРЕКЛЮЧАТЕЛЕЙ И КНОПОК ===//
Jumpers.byt.byte_1 = ReadJumpers(); // Чтение состояния переключателей
Jumpers.bit.bit0 = Buttons.bit.bit0 = TestJumper(); // Чтение состояния кнопки
//=== УПРАВЛЕНИЕ CAN-ШИНОЙ ===//
if(++CanPowse >= CANPOWSE)
{
CanPowse = 0; // Сброс счетчика
CanGO = 1; // Установка флага разрешения работы CAN
}
//=== УПРАВЛЕНИЕ РЕЖИМОМ "ЗАСЫПАНИЯ" ===//
if(Alarms.bit.bit8) // Разряд батареи
{
if (Falling_asleep) Falling_asleep--; // Уменьшение времени до "сна"
}
else
Falling_asleep = 1000L * Sleep_time; // Установка времени до "сна"
//=== ОБРАБОТКА ТЕСТОВОГО РЕЖИМА ===//
TST = TestJumper() | cTestLamp; // Текущее состояние теста (кнопка или команда)
if(TST & !preTest) // Обнаружение фронта нажатия кнопки
{
count_blink = BLINK_TIME; // Сброс счетчика мигания
count_mode = 0; // Сброс счетчика режимов
}
preTest = TST; // Сохранение состояния для следующего вызова
//=== УПРАВЛЕНИЕ МИГАНИЕМ ИНДИКАТОРОВ ===//
if(++count_blink >= BLINK_TIME)
{
count_blink = 0; // Сброс счетчика
count_mode++; // Переключение режима
blink_over = (count_mode & 1) ? 1 : 0; // Мигание 1:1 (50%)
blink_alarm = (count_mode & 7) ? 1 : 0; // Мигание 1:7 (12.5%)
}
//=== УСТАНОВКА СТАНДАРТНЫХ СОСТОЯНИЙ ИНДИКАТОРОВ ===//
power_lamp = 1; // Силовая лампа включена
norm_diod = 1; // Нормальный светодиод включен
work_diod = !blink_over; // Рабочий светодиод синхронизирован с миганием
//=== РЕЖИМ ТЕСТИРОВАНИЯ ===//
if(TST)
{
power_lamp = blink_over; // Мигание силовой лампы
norm_diod = blink_over; // Мигание нормального светодиода
work_diod = blink_over; // Мигание рабочего светодиода
}
//=== РЕЖИМ ОСВЕЩЕНИЯ ===//
else if(Lightness)
{
power_lamp = norm_diod = 0; // Базовое состояние - выключено
// Уровень освещенности 2: постоянно включено
if(Lightness == 2) power_lamp = norm_diod = 1;
// Уровень освещенности 3: медленное мигание (50%)
if(Lightness == 3) power_lamp = norm_diod = blink_over;
// Уровень освещенности 4: быстрое мигание (12.5%)
if(Lightness == 4) power_lamp = norm_diod = blink_alarm;
// Уровень освещенности 5: инверсное быстрое мигание (87.5%)
if(Lightness == 5) power_lamp = norm_diod = !blink_alarm;
}
//=== РЕЖИМ ОШИБОК ===//
else if(Errors.all)
{
power_lamp = blink_over; // Мигание при ошибках
norm_diod = blink_over; // Мигание при ошибках
}
//=== РЕЖИМ ТРЕВОГ ===//
else if(Alarms.all)
{
power_lamp = blink_alarm; // Быстрое мигание при тревогах
norm_diod = blink_alarm; // Быстрое мигание при тревогах
}
//=== ШИМ УПРАВЛЕНИЕ ЯРКОСТЬЮ СИЛОВОЙ ЛАМПЫ ===//
if(++count_bright == 10) // maximum_bright (100%)
{
count_bright = 0;
if(power_lamp) Pvt1_ON; // Включение на полную яркость
else Pvt1_OFF; // Выключение
}
//=== УПРАВЛЕНИЕ ЯРКОСТЬЮ ===//
if(count_bright == Brightness)
if(!TST) Pvt1_OFF; // Отключение лампочки с регулировкой яркости
//=== УПРАВЛЕНИЕ СВЕТОДИОДАМИ ===//
if(work_diod) LED_2_ON; // Включение рабочего светодиода
else LED_2_OFF; // Выключение рабочего светодиода
if(norm_diod) LED_3_ON; // Включение нормального светодиода
else LED_3_OFF; // Выключение нормального светодиода
}
/////////////////////////////////////////////
@ -455,7 +605,7 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
HAL_IncTick();
}
/* USER CODE BEGIN Callback 1 */
Millisecond();
/* USER CODE END Callback 1 */
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -159,7 +159,7 @@
<Type>0</Type>
<LineNumber>114</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134235892</Address>
<Address>134237028</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>

Binary file not shown.

View File

@ -26,11 +26,41 @@ Project File Date: 08/22/2025
<h2>Output:</h2>
*** Using Compiler 'V6.19', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
Build target 'uksvep_2_2_v1'
Rebuild target 'uksvep_2_2_v1'
Note: source file '../Core/Src/system_stm32f1xx.c' - object file renamed from 'uksvep_2_2_v1\system_stm32f1xx.o' to 'uksvep_2_2_v1\system_stm32f1xx_1.o'.
compiling crc16.c...
compiling eeprom.c...
assembling startup_stm32f103xe.s...
compiling message.c...
compiling lampa.c...
compiling gpio.c...
compiling main.c...
compiling iwdg.c...
compiling tim.c...
compiling can.c...
compiling stm32f1xx_it.c...
compiling usart.c...
compiling stm32f1xx_hal_msp.c...
compiling stm32f1xx_hal_gpio_ex.c...
compiling stm32f1xx_hal_timebase_tim.c...
compiling stm32f1xx_hal.c...
compiling stm32f1xx_hal_rcc_ex.c...
compiling stm32f1xx_hal_gpio.c...
compiling stm32f1xx_hal_rcc.c...
compiling stm32f1xx_hal_can.c...
compiling stm32f1xx_hal_cortex.c...
compiling stm32f1xx_hal_pwr.c...
compiling stm32f1xx_hal_flash.c...
compiling stm32f1xx_hal_dma.c...
compiling stm32f1xx_hal_flash_ex.c...
compiling stm32f1xx_hal_iwdg.c...
compiling stm32f1xx_hal_exti.c...
compiling stm32f1xx_hal_tim_ex.c...
compiling system_stm32f1xx.c...
compiling stm32f1xx_hal_uart.c...
compiling stm32f1xx_hal_tim.c...
linking...
Program Size: Code=21556 RO-data=380 RW-data=20 ZI-data=3916
Program Size: Code=22692 RO-data=380 RW-data=20 ZI-data=3956
FromELF: creating hex file...
"uksvep_2_2_v1\uksvep_2_2_v1.axf" - 0 Error(s), 0 Warning(s).
@ -56,7 +86,7 @@ Package Vendor: Keil
* Component: ARM::CMSIS:CORE:5.6.0
Include file: CMSIS/Core/Include/tz_context.h
Build Time Elapsed: 00:00:01
Build Time Elapsed: 00:00:02
</pre>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
<title>Static Call Graph - [uksvep_2_2_v1\uksvep_2_2_v1.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image uksvep_2_2_v1\uksvep_2_2_v1.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6190004: Last Updated: Fri Aug 22 17:30:16 2025
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 6190004: Last Updated: Fri Aug 22 18:34:16 2025
<BR><P>
<H3>Maximum Stack Usage = 328 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@ -116,9 +116,9 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry
</UL>
<P><STRONG><a name="[c8]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[ca]"></a>__scatterload_rt2_thumb_only</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[c9]"></a>__scatterload_null</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[cb]"></a>__scatterload_null</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED)
<P><STRONG><a name="[4c]"></a>__scatterload_copy</STRONG> (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
@ -126,80 +126,80 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[4c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_copy
</UL>
<P><STRONG><a name="[ca]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[cc]"></a>__scatterload_zeroinit</STRONG> (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED)
<P><STRONG><a name="[50]"></a>__rt_lib_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_li
</UL>
<P><STRONG><a name="[cb]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[cd]"></a>__rt_lib_init_alloca_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030))
<P><STRONG><a name="[cc]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[ce]"></a>__rt_lib_init_argv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E))
<P><STRONG><a name="[cd]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[cf]"></a>__rt_lib_init_atexit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D))
<P><STRONG><a name="[ce]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[d0]"></a>__rt_lib_init_clock_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023))
<P><STRONG><a name="[cf]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034))
<P><STRONG><a name="[d1]"></a>__rt_lib_init_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000034))
<P><STRONG><a name="[d0]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[d2]"></a>__rt_lib_init_exceptions_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032))
<P><STRONG><a name="[d1]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[d3]"></a>__rt_lib_init_fp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002))
<P><STRONG><a name="[d2]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[d4]"></a>__rt_lib_init_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021))
<P><STRONG><a name="[d3]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[d5]"></a>__rt_lib_init_getenv_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025))
<P><STRONG><a name="[d4]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[d6]"></a>__rt_lib_init_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C))
<P><STRONG><a name="[d5]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[d7]"></a>__rt_lib_init_lc_collate_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013))
<P><STRONG><a name="[d6]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[d8]"></a>__rt_lib_init_lc_ctype_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015))
<P><STRONG><a name="[d7]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[d9]"></a>__rt_lib_init_lc_monetary_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017))
<P><STRONG><a name="[d8]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[da]"></a>__rt_lib_init_lc_numeric_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019))
<P><STRONG><a name="[d9]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[db]"></a>__rt_lib_init_lc_time_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B))
<P><STRONG><a name="[da]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006))
<P><STRONG><a name="[dc]"></a>__rt_lib_init_preinit_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000006))
<P><STRONG><a name="[db]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010))
<P><STRONG><a name="[dd]"></a>__rt_lib_init_rand_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000010))
<P><STRONG><a name="[dc]"></a>__rt_lib_init_relocate_pie_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[de]"></a>__rt_lib_init_relocate_pie_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004))
<P><STRONG><a name="[dd]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035))
<P><STRONG><a name="[df]"></a>__rt_lib_init_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000035))
<P><STRONG><a name="[de]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[e0]"></a>__rt_lib_init_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F))
<P><STRONG><a name="[df]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027))
<P><STRONG><a name="[e1]"></a>__rt_lib_init_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000027))
<P><STRONG><a name="[e0]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[e2]"></a>__rt_lib_init_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E))
<P><STRONG><a name="[55]"></a>__rt_lib_shutdown</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_ls
</UL>
<P><STRONG><a name="[e1]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[e3]"></a>__rt_lib_shutdown_cpp_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002))
<P><STRONG><a name="[e2]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007))
<P><STRONG><a name="[e4]"></a>__rt_lib_shutdown_fp_trap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000007))
<P><STRONG><a name="[e3]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F))
<P><STRONG><a name="[e5]"></a>__rt_lib_shutdown_heap_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F))
<P><STRONG><a name="[e4]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010))
<P><STRONG><a name="[e6]"></a>__rt_lib_shutdown_return</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000010))
<P><STRONG><a name="[e5]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A))
<P><STRONG><a name="[e7]"></a>__rt_lib_shutdown_signal_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000A))
<P><STRONG><a name="[e6]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[e8]"></a>__rt_lib_shutdown_stdio_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004))
<P><STRONG><a name="[e7]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[e9]"></a>__rt_lib_shutdown_user_alloc_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C))
<P><STRONG><a name="[4a]"></a>__rt_entry</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload_rt2
<LI><a href="#[47]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__main
</UL>
<P><STRONG><a name="[e8]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[ea]"></a>__rt_entry_presh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002))
<P><STRONG><a name="[4d]"></a>__rt_entry_sh</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
@ -212,7 +212,7 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[50]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_init
</UL>
<P><STRONG><a name="[e9]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[eb]"></a>__rt_entry_postsh_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009))
<P><STRONG><a name="[51]"></a>__rt_entry_main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D))
<BR><BR>[Stack]<UL><LI>Max Depth = 328 + Unknown Stack Size
@ -222,7 +222,7 @@ Global Symbols
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
</UL>
<P><STRONG><a name="[ea]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[ec]"></a>__rt_entry_postli_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C))
<P><STRONG><a name="[5a]"></a>__rt_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000))
<BR><BR>[Called By]<UL><LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;exit
@ -232,7 +232,7 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_lib_shutdown
</UL>
<P><STRONG><a name="[eb]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[ed]"></a>__rt_exit_prels_1</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002))
<P><STRONG><a name="[56]"></a>__rt_exit_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sys_exit
@ -414,21 +414,21 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[c1]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<P><STRONG><a name="[c3]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL>
<P><STRONG><a name="[ec]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED)
<P><STRONG><a name="[ee]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED)
<P><STRONG><a name="[ed]"></a>__rt_memclr_w</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED)
<P><STRONG><a name="[ef]"></a>__rt_memclr_w</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED)
<P><STRONG><a name="[ee]"></a>_memset_w</STRONG> (Thumb, 74 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED)
<P><STRONG><a name="[f0]"></a>_memset_w</STRONG> (Thumb, 74 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED)
<P><STRONG><a name="[ef]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[f1]"></a>__use_two_region_memory</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[f0]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[f2]"></a>__rt_heap_escrow$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[f1]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[f3]"></a>__rt_heap_expand$2region</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED)
<P><STRONG><a name="[4e]"></a>__user_setup_stackheap</STRONG> (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
@ -449,23 +449,23 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL>
<P><STRONG><a name="[f2]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[f4]"></a>__user_libspace</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[58]"></a>__user_perproc_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__user_setup_stackheap
</UL>
<P><STRONG><a name="[f3]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[f5]"></a>__user_perthread_libspace</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[57]"></a>_sys_exit</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[56]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_exit_exit
</UL>
<P><STRONG><a name="[f4]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[f6]"></a>__I$use$semihosting</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[f5]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[f7]"></a>__use_no_semihosting_swi</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED)
<P><STRONG><a name="[f6]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[f8]"></a>__semihosting_library_function</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED)
<P><STRONG><a name="[4]"></a>BusFault_Handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.BusFault_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
@ -485,21 +485,21 @@ Global Symbols
<P><STRONG><a name="[7]"></a>DebugMon_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.DebugMon_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[b1]"></a>Default_params</STRONG> (Thumb, 218 bytes, Stack size 8 bytes, message.o(.text.Default_params))
<P><STRONG><a name="[b2]"></a>Default_params</STRONG> (Thumb, 218 bytes, Stack size 8 bytes, message.o(.text.Default_params))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = Default_params
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
</UL>
<P><STRONG><a name="[b5]"></a>Error_Handler</STRONG> (Thumb, 14 bytes, Stack size 4 bytes, main.o(.text.Error_Handler))
<P><STRONG><a name="[b6]"></a>Error_Handler</STRONG> (Thumb, 14 bytes, Stack size 4 bytes, main.o(.text.Error_Handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = Error_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_UART4_Init
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_IWDG_Init
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
<LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_CAN_Init
<LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<BR>[Called By]<UL><LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_UART4_Init
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_IWDG_Init
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_CAN_Init
<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL>
<P><STRONG><a name="[7a]"></a>FLASH_PageErase</STRONG> (Thumb, 56 bytes, Stack size 4 bytes, stm32f1xx_hal_flash_ex.o(.text.FLASH_PageErase))
@ -563,7 +563,7 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_CAN_MspInit
</UL>
<BR>[Called By]<UL><LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_CAN_Init
<BR>[Called By]<UL><LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_CAN_Init
</UL>
<P><STRONG><a name="[73]"></a>HAL_CAN_MspInit</STRONG> (Thumb, 190 bytes, Stack size 56 bytes, can.o(.text.HAL_CAN_MspInit))
@ -664,16 +664,16 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_CAN_IRQHandler
</UL>
<P><STRONG><a name="[a7]"></a>HAL_DMA_Abort</STRONG> (Thumb, 124 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort))
<P><STRONG><a name="[a8]"></a>HAL_DMA_Abort</STRONG> (Thumb, 124 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = HAL_DMA_Abort
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<P><STRONG><a name="[a5]"></a>HAL_DMA_Abort_IT</STRONG> (Thumb, 792 bytes, Stack size 96 bytes, stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort_IT))
<P><STRONG><a name="[a6]"></a>HAL_DMA_Abort_IT</STRONG> (Thumb, 792 bytes, Stack size 96 bytes, stm32f1xx_hal_dma.o(.text.HAL_DMA_Abort_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = HAL_DMA_Abort_IT
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<P><STRONG><a name="[77]"></a>HAL_Delay</STRONG> (Thumb, 66 bytes, Stack size 24 bytes, stm32f1xx_hal.o(.text.HAL_Delay))
@ -691,11 +691,11 @@ Global Symbols
<LI><a href="#[7a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_PageErase
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_WaitForLastOperation
</UL>
<BR>[Called By]<UL><LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
</UL>
<P><STRONG><a name="[c7]"></a>HAL_FLASH_Lock</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_flash.o(.text.HAL_FLASH_Lock))
<BR><BR>[Called By]<UL><LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
<P><STRONG><a name="[c9]"></a>HAL_FLASH_Lock</STRONG> (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_flash.o(.text.HAL_FLASH_Lock))
<BR><BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
</UL>
<P><STRONG><a name="[7b]"></a>HAL_FLASH_Program</STRONG> (Thumb, 300 bytes, Stack size 40 bytes, stm32f1xx_hal_flash.o(.text.HAL_FLASH_Program))
@ -704,29 +704,30 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_WaitForLastOperation
<LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;FLASH_Program_HalfWord
</UL>
<BR>[Called By]<UL><LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
</UL>
<P><STRONG><a name="[c6]"></a>HAL_FLASH_Unlock</STRONG> (Thumb, 90 bytes, Stack size 4 bytes, stm32f1xx_hal_flash.o(.text.HAL_FLASH_Unlock))
<P><STRONG><a name="[c8]"></a>HAL_FLASH_Unlock</STRONG> (Thumb, 90 bytes, Stack size 4 bytes, stm32f1xx_hal_flash.o(.text.HAL_FLASH_Unlock))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = HAL_FLASH_Unlock
</UL>
<BR>[Called By]<UL><LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
<BR>[Called By]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
</UL>
<P><STRONG><a name="[74]"></a>HAL_GPIO_Init</STRONG> (Thumb, 854 bytes, Stack size 72 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = HAL_GPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<BR>[Called By]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_CAN_MspInit
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_MCOConfig
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
</UL>
<P><STRONG><a name="[bd]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_ReadPin))
<P><STRONG><a name="[c0]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_ReadPin))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadJumpers
<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadEnteres
<BR>[Called By]<UL><LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TestJumper
<LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadJumpers
<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadEnteres
</UL>
<P><STRONG><a name="[5e]"></a>HAL_GPIO_TogglePin</STRONG> (Thumb, 38 bytes, Stack size 12 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_TogglePin))
@ -736,10 +737,11 @@ Global Symbols
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b7]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_WritePin))
<P><STRONG><a name="[b8]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(.text.HAL_GPIO_WritePin))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Millisecond
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@ -759,7 +761,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_IWDG_Init
<BR>[Called By]<UL><LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_IWDG_Init
</UL>
<P><STRONG><a name="[a1]"></a>HAL_IncTick</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal.o(.text.HAL_IncTick))
@ -802,7 +804,7 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__NVIC_EnableIRQ
</UL>
<BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_MspInit
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_CAN_MspInit
</UL>
@ -815,7 +817,7 @@ Global Symbols
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__NVIC_GetPriorityGrouping
</UL>
<BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
<LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_MspInit
<LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_CAN_MspInit
</UL>
@ -835,7 +837,7 @@ Global Symbols
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
<LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
</UL>
<BR>[Called By]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<BR>[Called By]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL>
<P><STRONG><a name="[82]"></a>HAL_RCC_GetClockConfig</STRONG> (Thumb, 84 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetClockConfig))
@ -854,7 +856,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetHCLKFreq
</UL>
<BR>[Called By]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
<BR>[Called By]<UL><LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
</UL>
<P><STRONG><a name="[83]"></a>HAL_RCC_GetPCLK2Freq</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetPCLK2Freq))
@ -863,7 +865,7 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetHCLKFreq
</UL>
<BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
</UL>
<P><STRONG><a name="[8c]"></a>HAL_RCC_GetSysClockFreq</STRONG> (Thumb, 188 bytes, Stack size 24 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_GetSysClockFreq))
@ -877,7 +879,7 @@ Global Symbols
</UL>
<BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<BR>[Called By]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL>
<P><STRONG><a name="[90]"></a>HAL_RCC_OscConfig</STRONG> (Thumb, 1658 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(.text.HAL_RCC_OscConfig))
@ -886,7 +888,7 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_Delay
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GetTick
</UL>
<BR>[Called By]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<BR>[Called By]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
</UL>
<P><STRONG><a name="[9e]"></a>HAL_TIMEx_BreakCallback</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_BreakCallback))
@ -901,10 +903,10 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL>
<P><STRONG><a name="[ba]"></a>HAL_TIMEx_MasterConfigSynchronization</STRONG> (Thumb, 256 bytes, Stack size 20 bytes, stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization))
<P><STRONG><a name="[bb]"></a>HAL_TIMEx_MasterConfigSynchronization</STRONG> (Thumb, 256 bytes, Stack size 20 bytes, stm32f1xx_hal_tim_ex.o(.text.HAL_TIMEx_MasterConfigSynchronization))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = HAL_TIMEx_MasterConfigSynchronization
</UL>
<BR>[Called By]<UL><LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
<BR>[Called By]<UL><LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
</UL>
<P><STRONG><a name="[84]"></a>HAL_TIM_Base_Init</STRONG> (Thumb, 156 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(.text.HAL_TIM_Base_Init))
@ -914,7 +916,7 @@ Global Symbols
<LI><a href="#[92]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_MspInit
</UL>
<BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_InitTick
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
</UL>
<P><STRONG><a name="[92]"></a>HAL_TIM_Base_MspInit</STRONG> (Thumb, 78 bytes, Stack size 24 bytes, tim.o(.text.HAL_TIM_Base_MspInit))
@ -940,7 +942,7 @@ Global Symbols
<LI><a href="#[96]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_TI1_ConfigInputStage
<LI><a href="#[95]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_ETR_SetConfig
</UL>
<BR>[Called By]<UL><LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
<BR>[Called By]<UL><LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
</UL>
<P><STRONG><a name="[9a]"></a>HAL_TIM_IC_CaptureCallback</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, stm32f1xx_hal_tim.o(.text.HAL_TIM_IC_CaptureCallback))
@ -950,7 +952,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[99]"></a>HAL_TIM_IRQHandler</STRONG> (Thumb, 538 bytes, Stack size 24 bytes, stm32f1xx_hal_tim.o(.text.HAL_TIM_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = HAL_TIM_IRQHandler &rArr; HAL_TIM_PeriodElapsedCallback
<BR><BR>[Stack]<UL><LI>Max Depth = 88<LI>Call Chain = HAL_TIM_IRQHandler &rArr; HAL_TIM_PeriodElapsedCallback &rArr; Millisecond &rArr; ReadJumpers &rArr; HAL_GPIO_ReadPin
</UL>
<BR>[Calls]<UL><LI><a href="#[9c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PWM_PulseFinishedCallback
<LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
@ -976,10 +978,11 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL>
<P><STRONG><a name="[9d]"></a>HAL_TIM_PeriodElapsedCallback</STRONG> (Thumb, 34 bytes, Stack size 16 bytes, main.o(.text.HAL_TIM_PeriodElapsedCallback))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_TIM_PeriodElapsedCallback
<P><STRONG><a name="[9d]"></a>HAL_TIM_PeriodElapsedCallback</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, main.o(.text.HAL_TIM_PeriodElapsedCallback))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = HAL_TIM_PeriodElapsedCallback &rArr; Millisecond &rArr; ReadJumpers &rArr; HAL_GPIO_ReadPin
</UL>
<BR>[Calls]<UL><LI><a href="#[a1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_IncTick
<LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Millisecond
</UL>
<BR>[Called By]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL>
@ -990,136 +993,136 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL>
<P><STRONG><a name="[a8]"></a>HAL_UARTEx_RxEventCallback</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback))
<P><STRONG><a name="[a9]"></a>HAL_UARTEx_RxEventCallback</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, stm32f1xx_hal_uart.o(.text.HAL_UARTEx_RxEventCallback))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = HAL_UARTEx_RxEventCallback
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
</UL>
<P><STRONG><a name="[a6]"></a>HAL_UART_ErrorCallback</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_ErrorCallback))
<P><STRONG><a name="[a7]"></a>HAL_UART_ErrorCallback</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_ErrorCallback))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = HAL_UART_ErrorCallback
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_DMAAbortOnError
</UL>
<P><STRONG><a name="[a2]"></a>HAL_UART_IRQHandler</STRONG> (Thumb, 1066 bytes, Stack size 80 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler))
<P><STRONG><a name="[a3]"></a>HAL_UART_IRQHandler</STRONG> (Thumb, 1066 bytes, Stack size 80 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = HAL_UART_IRQHandler &rArr; HAL_DMA_Abort_IT
</UL>
<BR>[Calls]<UL><LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UARTEx_RxEventCallback
<LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
<LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndTransmit_IT
<LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Transmit_IT
<LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndRxTransfer
<BR>[Calls]<UL><LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort_IT
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_DMA_Abort
<LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UARTEx_RxEventCallback
<LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
<LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndTransmit_IT
<LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Transmit_IT
<LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
<LI><a href="#[a5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndRxTransfer
</UL>
<BR>[Called By]<UL><LI><a href="#[3e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART4_IRQHandler
</UL>
<P><STRONG><a name="[ab]"></a>HAL_UART_Init</STRONG> (Thumb, 158 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_Init))
<P><STRONG><a name="[ac]"></a>HAL_UART_Init</STRONG> (Thumb, 158 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = HAL_UART_Init &rArr; HAL_UART_MspInit &rArr; HAL_GPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
<BR>[Calls]<UL><LI><a href="#[ad]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_MspInit
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_SetConfig
</UL>
<BR>[Called By]<UL><LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_UART4_Init
<BR>[Called By]<UL><LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_UART4_Init
</UL>
<P><STRONG><a name="[ac]"></a>HAL_UART_MspInit</STRONG> (Thumb, 172 bytes, Stack size 56 bytes, usart.o(.text.HAL_UART_MspInit))
<P><STRONG><a name="[ad]"></a>HAL_UART_MspInit</STRONG> (Thumb, 172 bytes, Stack size 56 bytes, usart.o(.text.HAL_UART_MspInit))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = HAL_UART_MspInit &rArr; HAL_GPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_NVIC_EnableIRQ
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_NVIC_SetPriority
<LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
<BR>[Called By]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
</UL>
<P><STRONG><a name="[c3]"></a>HAL_UART_RxCpltCallback</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_RxCpltCallback))
<P><STRONG><a name="[c5]"></a>HAL_UART_RxCpltCallback</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_RxCpltCallback))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = HAL_UART_RxCpltCallback
</UL>
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
<BR>[Called By]<UL><LI><a href="#[a4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_Receive_IT
</UL>
<P><STRONG><a name="[c2]"></a>HAL_UART_TxCpltCallback</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_TxCpltCallback))
<P><STRONG><a name="[c4]"></a>HAL_UART_TxCpltCallback</STRONG> (Thumb, 8 bytes, Stack size 4 bytes, stm32f1xx_hal_uart.o(.text.HAL_UART_TxCpltCallback))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = HAL_UART_TxCpltCallback
</UL>
<BR>[Called By]<UL><LI><a href="#[aa]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndTransmit_IT
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART_EndTransmit_IT
</UL>
<P><STRONG><a name="[2]"></a>HardFault_Handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.HardFault_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[b3]"></a>Init_packMask</STRONG> (Thumb, 144 bytes, Stack size 4 bytes, message.o(.text.Init_packMask))
<P><STRONG><a name="[b4]"></a>Init_packMask</STRONG> (Thumb, 144 bytes, Stack size 4 bytes, message.o(.text.Init_packMask))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = Init_packMask
</UL>
<BR>[Called By]<UL><LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
<BR>[Called By]<UL><LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
</UL>
<P><STRONG><a name="[c5]"></a>Isit</STRONG> (Thumb, 214 bytes, Stack size 32 bytes, main.o(.text.Isit))
<P><STRONG><a name="[c7]"></a>Isit</STRONG> (Thumb, 214 bytes, Stack size 32 bytes, main.o(.text.Isit))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = Isit
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[ae]"></a>Load_params</STRONG> (Thumb, 220 bytes, Stack size 32 bytes, message.o(.text.Load_params))
<P><STRONG><a name="[af]"></a>Load_params</STRONG> (Thumb, 220 bytes, Stack size 32 bytes, message.o(.text.Load_params))
<BR><BR>[Stack]<UL><LI>Max Depth = 180<LI>Call Chain = Load_params &rArr; Save_params &rArr; putIntoEeprom &rArr; HAL_FLASH_Program &rArr; FLASH_WaitForLastOperation &rArr; FLASH_SetErrorCode
</UL>
<BR>[Calls]<UL><LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_packMask
<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Save_params
<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Default_params
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;watInTheFlash
<LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_crc16
<BR>[Calls]<UL><LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Init_packMask
<LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Save_params
<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Default_params
<LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;watInTheFlash
<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_crc16
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b4]"></a>MX_CAN_Init</STRONG> (Thumb, 78 bytes, Stack size 16 bytes, can.o(.text.MX_CAN_Init))
<P><STRONG><a name="[b5]"></a>MX_CAN_Init</STRONG> (Thumb, 78 bytes, Stack size 16 bytes, can.o(.text.MX_CAN_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 168<LI>Call Chain = MX_CAN_Init &rArr; HAL_CAN_Init &rArr; HAL_CAN_MspInit &rArr; HAL_GPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[72]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_CAN_Init
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b6]"></a>MX_GPIO_Init</STRONG> (Thumb, 304 bytes, Stack size 72 bytes, gpio.o(.text.MX_GPIO_Init))
<P><STRONG><a name="[b7]"></a>MX_GPIO_Init</STRONG> (Thumb, 304 bytes, Stack size 72 bytes, gpio.o(.text.MX_GPIO_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = MX_GPIO_Init &rArr; HAL_GPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_Init
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b8]"></a>MX_IWDG_Init</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, iwdg.o(.text.MX_IWDG_Init))
<P><STRONG><a name="[b9]"></a>MX_IWDG_Init</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, iwdg.o(.text.MX_IWDG_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = MX_IWDG_Init &rArr; HAL_IWDG_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_IWDG_Init
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[b9]"></a>MX_TIM4_Init</STRONG> (Thumb, 130 bytes, Stack size 40 bytes, tim.o(.text.MX_TIM4_Init))
<P><STRONG><a name="[ba]"></a>MX_TIM4_Init</STRONG> (Thumb, 130 bytes, Stack size 40 bytes, tim.o(.text.MX_TIM4_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 144<LI>Call Chain = MX_TIM4_Init &rArr; HAL_TIM_Base_Init &rArr; HAL_TIM_Base_MspInit &rArr; HAL_NVIC_SetPriority &rArr; NVIC_EncodePriority
</UL>
<BR>[Calls]<UL><LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIMEx_MasterConfigSynchronization
<BR>[Calls]<UL><LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIMEx_MasterConfigSynchronization
<LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[bb]"></a>MX_UART4_Init</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, usart.o(.text.MX_UART4_Init))
<P><STRONG><a name="[bc]"></a>MX_UART4_Init</STRONG> (Thumb, 64 bytes, Stack size 16 bytes, usart.o(.text.MX_UART4_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 160<LI>Call Chain = MX_UART4_Init &rArr; HAL_UART_Init &rArr; HAL_UART_MspInit &rArr; HAL_GPIO_Init
</UL>
<BR>[Calls]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
<BR>[Calls]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@ -1127,42 +1130,53 @@ Global Symbols
<P><STRONG><a name="[3]"></a>MemManage_Handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.MemManage_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[a2]"></a>Millisecond</STRONG> (Thumb, 1102 bytes, Stack size 16 bytes, main.o(.text.Millisecond))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = Millisecond &rArr; ReadJumpers &rArr; HAL_GPIO_ReadPin
</UL>
<BR>[Calls]<UL><LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TestJumper
<LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadJumpers
</UL>
<BR>[Called By]<UL><LI><a href="#[9d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_PeriodElapsedCallback
</UL>
<P><STRONG><a name="[1]"></a>NMI_Handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.NMI_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[8]"></a>PendSV_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.PendSV_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[bc]"></a>ReadEnteres</STRONG> (Thumb, 592 bytes, Stack size 40 bytes, lampa.o(.text.ReadEnteres))
<P><STRONG><a name="[bf]"></a>ReadEnteres</STRONG> (Thumb, 592 bytes, Stack size 40 bytes, lampa.o(.text.ReadEnteres))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = ReadEnteres &rArr; HAL_GPIO_ReadPin
</UL>
<BR>[Calls]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<BR>[Calls]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[be]"></a>ReadJumpers</STRONG> (Thumb, 156 bytes, Stack size 24 bytes, lampa.o(.text.ReadJumpers))
<P><STRONG><a name="[bd]"></a>ReadJumpers</STRONG> (Thumb, 156 bytes, Stack size 24 bytes, lampa.o(.text.ReadJumpers))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = ReadJumpers &rArr; HAL_GPIO_ReadPin
</UL>
<BR>[Calls]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<BR>[Calls]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Millisecond
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[6]"></a>SVC_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.SVC_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[b2]"></a>Save_params</STRONG> (Thumb, 134 bytes, Stack size 24 bytes, message.o(.text.Save_params))
<P><STRONG><a name="[b3]"></a>Save_params</STRONG> (Thumb, 134 bytes, Stack size 24 bytes, message.o(.text.Save_params))
<BR><BR>[Stack]<UL><LI>Max Depth = 148<LI>Call Chain = Save_params &rArr; putIntoEeprom &rArr; HAL_FLASH_Program &rArr; FLASH_WaitForLastOperation &rArr; FLASH_SetErrorCode
</UL>
<BR>[Calls]<UL><LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
<LI><a href="#[b0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_crc16
<BR>[Calls]<UL><LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;putIntoEeprom
<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_crc16
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
</UL>
<P><STRONG><a name="[c4]"></a>Setup_CAN_addr</STRONG> (Thumb, 62 bytes, Stack size 4 bytes, can.o(.text.Setup_CAN_addr))
<P><STRONG><a name="[c6]"></a>Setup_CAN_addr</STRONG> (Thumb, 62 bytes, Stack size 4 bytes, can.o(.text.Setup_CAN_addr))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = Setup_CAN_addr
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@ -1171,15 +1185,15 @@ Global Symbols
<P><STRONG><a name="[9]"></a>SysTick_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.SysTick_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[c0]"></a>SystemClock_Config</STRONG> (Thumb, 120 bytes, Stack size 72 bytes, main.o(.text.SystemClock_Config))
<P><STRONG><a name="[c2]"></a>SystemClock_Config</STRONG> (Thumb, 120 bytes, Stack size 72 bytes, main.o(.text.SystemClock_Config))
<BR><BR>[Stack]<UL><LI>Max Depth = 256 + Unknown Stack Size
<LI>Call Chain = SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_InitTick &rArr; HAL_TIM_Base_Init &rArr; HAL_TIM_Base_MspInit &rArr; HAL_NVIC_SetPriority &rArr; NVIC_EncodePriority
</UL>
<BR>[Calls]<UL><LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_MCOConfig
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_ClockConfig
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Error_Handler
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_OscConfig
<LI><a href="#[c1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Called By]<UL><LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@ -1188,14 +1202,14 @@ Global Symbols
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(.text)
</UL>
<P><STRONG><a name="[28]"></a>TIM4_IRQHandler</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, stm32f1xx_it.o(.text.TIM4_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = TIM4_IRQHandler &rArr; HAL_TIM_IRQHandler &rArr; HAL_TIM_PeriodElapsedCallback
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = TIM4_IRQHandler &rArr; HAL_TIM_IRQHandler &rArr; HAL_TIM_PeriodElapsedCallback &rArr; Millisecond &rArr; ReadJumpers &rArr; HAL_GPIO_ReadPin
</UL>
<BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[36]"></a>TIM8_UP_IRQHandler</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, stm32f1xx_it.o(.text.TIM8_UP_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = TIM8_UP_IRQHandler &rArr; HAL_TIM_IRQHandler &rArr; HAL_TIM_PeriodElapsedCallback
<BR><BR>[Stack]<UL><LI>Max Depth = 96<LI>Call Chain = TIM8_UP_IRQHandler &rArr; HAL_TIM_IRQHandler &rArr; HAL_TIM_PeriodElapsedCallback &rArr; Millisecond &rArr; ReadJumpers &rArr; HAL_GPIO_ReadPin
</UL>
<BR>[Calls]<UL><LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_IRQHandler
</UL>
@ -1213,10 +1227,18 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource
</UL>
<P><STRONG><a name="[be]"></a>TestJumper</STRONG> (Thumb, 26 bytes, Stack size 8 bytes, lampa.o(.text.TestJumper))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = TestJumper &rArr; HAL_GPIO_ReadPin
</UL>
<BR>[Calls]<UL><LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Millisecond
</UL>
<P><STRONG><a name="[3e]"></a>UART4_IRQHandler</STRONG> (Thumb, 16 bytes, Stack size 8 bytes, stm32f1xx_it.o(.text.UART4_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = UART4_IRQHandler &rArr; HAL_UART_IRQHandler &rArr; HAL_DMA_Abort_IT
</UL>
<BR>[Calls]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR>[Calls]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
@ -1237,11 +1259,11 @@ Global Symbols
<P><STRONG><a name="[5]"></a>UsageFault_Handler</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(.text.UsageFault_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f103xe.o(RESET)
</UL>
<P><STRONG><a name="[b0]"></a>get_crc16</STRONG> (Thumb, 186 bytes, Stack size 20 bytes, crc16.o(.text.get_crc16))
<P><STRONG><a name="[b1]"></a>get_crc16</STRONG> (Thumb, 186 bytes, Stack size 20 bytes, crc16.o(.text.get_crc16))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = get_crc16
</UL>
<BR>[Called By]<UL><LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Save_params
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
<BR>[Called By]<UL><LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Save_params
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
</UL>
<P><STRONG><a name="[52]"></a>main</STRONG> (Thumb, 3496 bytes, Stack size 72 bytes, main.o(.text.main))
@ -1249,42 +1271,42 @@ Global Symbols
<LI>Call Chain = main &rArr; SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_InitTick &rArr; HAL_TIM_Base_Init &rArr; HAL_TIM_Base_MspInit &rArr; HAL_NVIC_SetPriority &rArr; NVIC_EncodePriority
</UL>
<BR>[Calls]<UL><LI><a href="#[5b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CAN_send
<LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Isit
<LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Setup_CAN_addr
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Isit
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Setup_CAN_addr
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_TogglePin
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[bb]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_UART4_Init
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_IWDG_Init
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
<LI><a href="#[b4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_CAN_Init
<LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[c0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[b8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_UART4_Init
<LI><a href="#[b9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_IWDG_Init
<LI><a href="#[ba]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM4_Init
<LI><a href="#[b5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_CAN_Init
<LI><a href="#[b7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Save_params
<LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
<LI><a href="#[b1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Default_params
<LI><a href="#[be]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadJumpers
<LI><a href="#[bc]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadEnteres
<LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Save_params
<LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
<LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Default_params
<LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadJumpers
<LI><a href="#[bf]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ReadEnteres
</UL>
<BR>[Called By]<UL><LI><a href="#[51]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__rt_entry_main
</UL>
<P><STRONG><a name="[bf]"></a>putIntoEeprom</STRONG> (Thumb, 240 bytes, Stack size 56 bytes, eeprom.o(.text.putIntoEeprom))
<P><STRONG><a name="[c1]"></a>putIntoEeprom</STRONG> (Thumb, 240 bytes, Stack size 56 bytes, eeprom.o(.text.putIntoEeprom))
<BR><BR>[Stack]<UL><LI>Max Depth = 124<LI>Call Chain = putIntoEeprom &rArr; HAL_FLASH_Program &rArr; FLASH_WaitForLastOperation &rArr; FLASH_SetErrorCode
</UL>
<BR>[Calls]<UL><LI><a href="#[7b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_FLASH_Program
<LI><a href="#[c7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_FLASH_Lock
<LI><a href="#[c9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_FLASH_Lock
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_FLASHEx_Erase
<LI><a href="#[c6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_FLASH_Unlock
<LI><a href="#[c8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_FLASH_Unlock
</UL>
<BR>[Called By]<UL><LI><a href="#[b2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Save_params
<BR>[Called By]<UL><LI><a href="#[b3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Save_params
</UL>
<P><STRONG><a name="[af]"></a>watInTheFlash</STRONG> (Thumb, 12 bytes, Stack size 4 bytes, eeprom.o(.text.watInTheFlash))
<P><STRONG><a name="[b0]"></a>watInTheFlash</STRONG> (Thumb, 12 bytes, Stack size 4 bytes, eeprom.o(.text.watInTheFlash))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = watInTheFlash
</UL>
<BR>[Called By]<UL><LI><a href="#[ae]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
<BR>[Called By]<UL><LI><a href="#[af]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Load_params
</UL>
<P>
<H3>
@ -1360,49 +1382,49 @@ Local Symbols
<BR>[Called By]<UL><LI><a href="#[94]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource
</UL>
<P><STRONG><a name="[ad]"></a>UART_SetConfig</STRONG> (Thumb, 186 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text.UART_SetConfig))
<P><STRONG><a name="[ae]"></a>UART_SetConfig</STRONG> (Thumb, 186 bytes, Stack size 24 bytes, stm32f1xx_hal_uart.o(.text.UART_SetConfig))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = UART_SetConfig &rArr; HAL_RCC_GetPCLK1Freq
</UL>
<BR>[Calls]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetPCLK1Freq
<LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_RCC_GetPCLK2Freq
</UL>
<BR>[Called By]<UL><LI><a href="#[ab]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
<BR>[Called By]<UL><LI><a href="#[ac]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_Init
</UL>
<P><STRONG><a name="[a4]"></a>UART_EndRxTransfer</STRONG> (Thumb, 148 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text.UART_EndRxTransfer))
<P><STRONG><a name="[a5]"></a>UART_EndRxTransfer</STRONG> (Thumb, 148 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text.UART_EndRxTransfer))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = UART_EndRxTransfer
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<P><STRONG><a name="[a3]"></a>UART_Receive_IT</STRONG> (Thumb, 362 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(.text.UART_Receive_IT))
<P><STRONG><a name="[a4]"></a>UART_Receive_IT</STRONG> (Thumb, 362 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(.text.UART_Receive_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = UART_Receive_IT &rArr; HAL_UARTEx_RxEventCallback
</UL>
<BR>[Calls]<UL><LI><a href="#[c3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_RxCpltCallback
<LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UARTEx_RxEventCallback
<BR>[Calls]<UL><LI><a href="#[c5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_RxCpltCallback
<LI><a href="#[a9]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UARTEx_RxEventCallback
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<P><STRONG><a name="[48]"></a>UART_DMAAbortOnError</STRONG> (Thumb, 32 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text.UART_DMAAbortOnError))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = UART_DMAAbortOnError &rArr; HAL_UART_ErrorCallback
</UL>
<BR>[Calls]<UL><LI><a href="#[a6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
<BR>[Calls]<UL><LI><a href="#[a7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_ErrorCallback
</UL>
<BR>[Address Reference Count : 1]<UL><LI> stm32f1xx_hal_uart.o(.text.HAL_UART_IRQHandler)
</UL>
<P><STRONG><a name="[a9]"></a>UART_Transmit_IT</STRONG> (Thumb, 148 bytes, Stack size 12 bytes, stm32f1xx_hal_uart.o(.text.UART_Transmit_IT))
<P><STRONG><a name="[aa]"></a>UART_Transmit_IT</STRONG> (Thumb, 148 bytes, Stack size 12 bytes, stm32f1xx_hal_uart.o(.text.UART_Transmit_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = UART_Transmit_IT
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<P><STRONG><a name="[aa]"></a>UART_EndTransmit_IT</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text.UART_EndTransmit_IT))
<P><STRONG><a name="[ab]"></a>UART_EndTransmit_IT</STRONG> (Thumb, 38 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(.text.UART_EndTransmit_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = UART_EndTransmit_IT &rArr; HAL_UART_TxCpltCallback
</UL>
<BR>[Calls]<UL><LI><a href="#[c2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_TxCpltCallback
<BR>[Calls]<UL><LI><a href="#[c4]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_TxCpltCallback
</UL>
<BR>[Called By]<UL><LI><a href="#[a2]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
<BR>[Called By]<UL><LI><a href="#[a3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_UART_IRQHandler
</UL>
<P>
<H3>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff