20 Commits

Author SHA1 Message Date
Razvalyaev
c61c438b8c uart для платы вэп + структурирован чуть проект и описан бутлоадер
Но надо еще его дорабатывать

+ заготовка для протокола приема (не работает скорее всего, просто из чатгпт вставил)
2025-09-19 13:38:29 +03:00
Razvalyaev
0e834dfe3d структуризирован бутлоадер. работает
надо по протоколу подумать еще, доработать его и описать
2025-09-15 14:48:13 +03:00
Razvalyaev
fbd36705f1 работает но не стабильно 2025-09-12 12:22:17 +03:00
Razvalyaev
320cce09ec сделано (проверено на can):
отправка ошибок бутлоадера по uart/can
проверка crc принятой страницы
проверка на бесконечное попадание в hardfault

в целом структура бута все еще в процессе разработки
2025-09-11 16:57:20 +03:00
Razvalyaev
05e069441c Что-то работает, но много чего еще надо сделать 2025-09-10 16:53:31 +03:00
Razvalyaev
d82a525a82 boot test init
в добавок сделано считывание частоты и скважности сети. можно по скважности определить какая фаза оборвана (в теории)

+ нормальный гитигнор
2025-09-08 12:55:30 +03:00
c46dde7c5c Прием посылок CAN. Расчет скважностей по TIM4 2025-08-28 12:44:48 +03:00
f2b52210e9 добавил freeze iwdg для debug 2025-08-25 16:48:19 +03:00
9ff61f7825 игнор проектных настроек 2025-08-25 16:46:14 +03:00
ed3ac12f75 перенес IWDG что бы инициализировался раньше 2025-08-25 16:28:23 +03:00
Razvalyaev
d9c19bf743 Исправлен id по can: был std, теперь ext (бит IDE в msgHeaderSend)
Сделано моргание диодом только по успешной отправке по CAN
2025-08-25 16:03:37 +03:00
327f65e16b add to gitingore 2025-08-22 18:43:55 +03:00
0699aee653 nothing 2025-08-22 18:36:06 +03:00
c2b7720886 add gitignore 2025-08-22 18:34:01 +03:00
072f042fe3 невыжные файлы 2025-08-22 18:33:03 +03:00
b9db537db1 потерял функцию millisecond подписал комментарии к функциям 2025-08-22 18:32:37 +03:00
a7d6faca8b смена кодировки 2025-08-22 18:25:51 +03:00
d6c3e5d7be перенес все файлы Димы в пересобраный проект 2025-08-22 17:31:23 +03:00
120ec1cd90 не значимые изменения 2025-08-22 16:14:23 +03:00
370a0a98e6 обозвал порты как в КЛГИ 2025-08-22 16:13:03 +03:00
107 changed files with 5318 additions and 10686 deletions

143
.gitignore vendored Normal file
View File

@@ -0,0 +1,143 @@
# ---> 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/
/MDK-ARM/JLinkSettings.ini

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,20 @@
#ifndef __BOOT_CAN_H
#define __BOOT_CAN_H
#include "bootloader.h"
extern CAN_HandleTypeDef hcan_boot;
extern CAN_TxHeaderTypeDef TxHeaderBoot;
extern CAN_RxHeaderTypeDef RxHeaderBoot;
extern uint32_t TxMailBoxBoot;
extern uint8_t TXDataBoot[8];
/* Инициализация CAN */
void MX_BOOT_CAN_Init(void);
/* Приём команды по CAN по протоколу */
BootloaderCommand_t Bootloader_CAN_Receive(Bootloader_t *bl);
/* Приём CAN: страница + CRC */
void Bootloader_CAN_Receive_Page(Bootloader_t *bl);
#endif //__BOOT_CAN_H

View File

@@ -0,0 +1,14 @@
#ifndef __BOOT_FLASH_H
#define __BOOT_FLASH_H
#include "bootloader.h"
// FOR APP FLASHING
HAL_StatusTypeDef FLASH_Erase_App(void);
HAL_StatusTypeDef FLASH_Write_Page(uint32_t *Address, uint8_t *Data, int Data_size);
// SERVICE
HAL_StatusTypeDef FLASH_Write_Word(uint32_t Address, uint64_t Data);
#endif //__BOOT_FLASH_H

View File

@@ -0,0 +1,14 @@
#ifndef __BOOT_GPIO_H
#define __BOOT_GPIO_H
#include "bootloader.h"
#define LED_BOOT_ON() CLEAR_BIT(LED_BOOT_GPIO_Port->ODR, LED_BOOT_Pin)
#define LED_BOOT_OFF() SET_BIT(LED_BOOT_GPIO_Port->ODR, LED_BOOT_Pin)
#define LED_BOOT_TOOGLE() LED_BOOT_GPIO_Port->ODR ^= LED_BOOT_Pin
void MX_BOOT_GPIO_Init(void);
#endif //__BOOT_GPIO_H

View File

@@ -0,0 +1,26 @@
#ifndef __BOOT_JUMP_H
#define __BOOT_JUMP_H
#include "bootloader.h"
/* Инициализация приложения */
void App_Init(void);
/* Переход в бутлоадер */
void JumpToBootloader(void);
/* Переход к основному приложению */
void JumpToApplocation(void);
/* Сброс ключа BOOT в Flash */
void ResetKey(void);
/* Установка ключа BOOT в Flash */
void SetKey(void);
/* Чтение ключа BOOT из Flash */
uint32_t ReadKey(void);
/* Стирание ключа BOOT в Flash */
void EraseKey(void);
/* Проверка валидности прошивки перед переходом к приложению */
HAL_StatusTypeDef Verify_Firmware(void);
#endif //__BOOT_JUMP_H

View File

@@ -0,0 +1,73 @@
#ifndef __BOOT_SETUP_H
#define __BOOT_SETUP_H
#include "stm32f1xx_hal.h"
// ======================== BOOTLOADER CONFIG ========================
// ---------- MAIN APPLICATION defines ----------
// Адрес и страницы Flash для основного приложения
// MAIN_APP_START_ADR начало кода основного приложения
#define MAIN_APP_START_ADR (uint32_t)0x0800C000UL
#define MAIN_APP_PAGE 21 // страница, с которой начинается приложение
#define MAIN_APP_NUM_OF_PAGE 250-MAIN_APP_PAGE // количество страниц, отведённых под приложение
// ---------- KEY defines ----------
// Адрес и страница Flash для хранения ключа бутлоадера
// Ключ используется для проверки, записано ли приложение корректно
#define BOOTLOADER_KEY_ADR (uint32_t)0x08009800UL // физический адрес ключа
#define BOOTLOADER_KEY_PAGE 20 // страница флеш, на которой хранится ключ
// ---------- RECEIVE defines ----------
// Настройки приёма прошивки
#define FW_RECEIVE_TIMEOUT_MS 500 // таймаут приёма одного байта прошивки (мс)
#define PAGE_SIZE 2048 // размер блока (страницы) прошивки для приёма и записи в Flash
// должен быть таким, чтобы размер страниц Flash был кратен ему
// ---------- LED defines ----------
#define LED_BOOT_Pin GPIO_PIN_5
#define LED_BOOT_GPIO_Port GPIOB
// ======================== RCC (CLOCK) defines ========================
// Макросы для включения тактирования периферии бутлоадера
#define __RCC_LED_BOOT_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE() // тактирование UART
#define __RCC_UART_BOOT_CLK_ENABLE() __HAL_RCC_UART4_CLK_ENABLE() // тактирование UART
#define __RCC_UART_PORT_CLK_ENABLE() __HAL_RCC_GPIOC_CLK_ENABLE() // тактирование порта UART
#define __RCC_CAN_BOOT_CLK_ENABLE() __HAL_RCC_CAN1_CLK_ENABLE() // тактирование CAN
#define __RCC_CAN_PORT_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE() // тактирование порта CAN
// ======================== UART defines ========================
// Аппаратный UART и скорость передачи
#define UART_BOOT UART4
#define UART_SPEED 115200
// Порт и пины UART
#define UART_PORT GPIOC
#define UART_PIN_TX GPIO_PIN_10
#define UART_PIN_RX GPIO_PIN_11
// ======================== CAN defines ========================
// Аппаратный CAN и режим работы
#define CAN_BOOT CAN1
#define CAN_MODE CAN_MODE_NORMAL
// Настройка скорости CAN при 8 MHz
// ------------|-----------|-----------|-----------
// CAN speed | Prescaler | BS1 | BS2
// ------------|-----------|-----------|-----------
// 125 kbps | 4 | 13TQ | 2TQ
// 250 kbps | 2 | 13TQ | 2TQ
// 500 kbps | 1 | 13TQ | 2TQ
#define CAN_SPEED_PRESCALER 4
#define CAN_SPEED_BS1 CAN_BS1_13TQ
#define CAN_SPEED_BS2 CAN_BS2_2TQ
// Порт и пины CAN
#define CAN_PORT GPIOA
#define CAN_PIN_RX GPIO_PIN_11
#define CAN_PIN_TX GPIO_PIN_12
#endif //__BOOT_SETUP_H

View File

@@ -0,0 +1,15 @@
#ifndef __BOOT_UART_H
#define __BOOT_UART_H
#include "bootloader.h"
extern UART_HandleTypeDef huart_boot;
/* Инициализация UART */
void MX_BOOT_UART_Init(void);
/* Приём команды по UART по протоколу */
BootloaderCommand_t Bootloader_UART_Receive(Bootloader_t *bl);
/* Приём UART: страница + CRC */
void Bootloader_UART_Receive_Page(Bootloader_t *bl);
#endif //__BOOT_UART_H

View File

@@ -0,0 +1,150 @@
#ifndef __BOOTLOADER_H
#define __BOOTLOADER_H
#include "boot_project_setup.h"
#include "string.h"
/* --- Настройка: подставьте значения для вашей MCU --- */
/* Адрес начала приложения (используется в вашем коде) */
#ifndef MAIN_APP_START_ADR
#error "MAIN_APP_START_ADR must be defined"
#endif
/* Flash boundaries: подставьте реальные границы флеш-памяти вашего MCU */
#ifndef FLASH_START_ADR
#define FLASH_START_ADR MAIN_APP_START_ADR
#endif
#ifndef FLASH_END_ADR
#define FLASH_END_ADR FLASH_BASE + (*((uint16_t*)FLASHSIZE_BASE) * 1024U)
#endif
/* SRAM boundaries: подставьте реальные адреса SRAM вашей MCU */
#ifndef SRAM_START_ADR
#define SRAM_START_ADR 0x20000000UL
#endif
#ifndef SRAM_END_ADR
#define SRAM_END_ADR 0x2003FFFFUL
#endif
/**
* @brief Значение ключа, указывающее что основное приложение записано
*/
#define BL_KEY_APP_WRITTEN 0xAAAA5555
/** @brief Получить сохранённый код ошибки из BKP */
#define GetErrorCode() BKP->DR1
/** @brief Получить счетчик ошибок из BKP */
#define GetErrorCnt() BKP->DR2
/**
* @brief Сохранение кода ошибки и инкремент счетчика
* @param code Код ошибки
* @details
* Включаем тактирование PWR и BKP (APB1) и разрешаем доступ к BKP domain
* Записываем напрямую в регистры RCC/APB1ENR и PWR->CR
* Записываем код ошибки и счётчик ошибок
*/
#define SaveErrorCode(code) do{ \
RCC->APB1ENR |= (RCC_APB1ENR_PWREN | RCC_APB1ENR_BKPEN); \
PWR->CR |= PWR_CR_DBP; \
GetErrorCode() = code; \
GetErrorCnt() = GetErrorCnt() + 1; \
}while(0u);
/**
* @brief Очистка кода ошибки и счетчика ошибок
*/
#define ClearErrorCode(code) do{ \
RCC->APB1ENR |= (RCC_APB1ENR_PWREN | RCC_APB1ENR_BKPEN); \
PWR->CR |= PWR_CR_DBP; \
GetErrorCode() = 0; \
GetErrorCnt() = 0; \
}while(0u);
/**
* @brief Команды для управления бутлоадером
*/
typedef enum {
NO_CMD = 0x00, ///< Нет комманды
CMD_ERASE = 0x01, ///< Команда на стирание прошивки
CMD_START_RECEIVE, ///< Команда на старт приема прошивки
CMD_WRITE, ///< Команда на запись блока прошивки
CMD_GOTOAPP, ///< Команда на переход в приложение
CMD_RESET, ///< Команда на переход в приложение
CMD_GOTOBOOT, ///< Команда на переход в приложение
CMD_PING = 0xAA, ///< Команда на пинг
}BootloaderCommand_t;
/**
* @brief Состояния конечного автомата бутлоадера
*/
typedef enum {
BL_STATE_INIT = 0, ///< Состояние: инициализация
BL_STATE_JUMP_TO_APP, ///< Состояние: запуск приложения
BL_STATE_IDLE, ///< Состояние: ожидание команд
BL_STATE_ERASE, ///< Состояние: стирание флеша
BL_STATE_RECEIVE_UART, ///< Состояние: прием прошивки по UART
BL_STATE_RECEIVE_CAN, ///< Состояние: прием прошивки по CAN
BL_STATE_WRITE, ///< Состояние: запись данных
BL_STATE_ERROR, ///< Состояние: ошибка
BL_STATE_RESET, ///< Состояние: сброс контролллера
BL_STATE_JUMP_TO_BOOT, ///< Состояние: запуск приложения
} BootloaderState_t;
/**
* @brief Ошибки бутлоадера
*/
typedef union {
uint16_t all; ///< Все ошибки одним числом
struct {
unsigned hardfault_cycle:1; ///< Прерывание HardFault
unsigned memmanage_cycle:1; ///< Прерывание MemManage
unsigned watchdog_reset:1; ///< Watchdog сброс
unsigned unknown_cmd:1; ///< Неизвестная команда
unsigned erase_err:1; ///< Ошибка стирания
unsigned write_err:1; ///< Ошибка записи
unsigned verify_err:1; ///< Ошибка проверки прошивки
unsigned overflow:1; ///< Слишком много данных
unsigned timeout_receive:1; ///< Таймаут приёма
unsigned crc_err:1; ///< Ошибка CRC
} bit;
} BootloaderError_t;
/**
* @brief Дескриптор бутлоадера
*/
typedef struct {
BootloaderState_t state; ///< текущее состояние бутлоадера
BootloaderError_t error; ///< ошибки бутлоадера
uint32_t addr; ///< текущий адрес прошивки
uint8_t fw_size; ///< размер прошивки
uint8_t fw_buffer[PAGE_SIZE]; ///< буфер для приема прошивки (UART/CAN)
uint32_t fw_len; ///< длина принятого пакета
uint32_t fw_crc; ///< контрольная сумма прошивки
UART_HandleTypeDef *huart; ///< хендлер UART
CAN_HandleTypeDef *hcan; ///< хендер CAN
CAN_TxHeaderTypeDef TxHeader; ///< Заголовок CAN сообщения для отправки
BootloaderState_t prev_state; ///< предыдущее состояние бутлоадера
} Bootloader_t;
/* Основная задача бутлоадера */
void Bootloader_Task(Bootloader_t *bl);
/* Настройка тактирования */
void Boot_SystemClock_Config(void);
/* Хендлер ошибки */
void Error_Handler(void);
/* CRC */
uint32_t CRC32_Compute(const uint8_t* data, uint32_t length);
#endif //__BOOTLOADER_H

View File

@@ -0,0 +1,162 @@
#include "boot_can.h"
#include "boot_gpio.h"
CAN_HandleTypeDef hcan_boot;
CAN_TxHeaderTypeDef TxHeaderBoot;
CAN_RxHeaderTypeDef RxHeaderBoot;
uint32_t TxMailBoxBoot = 0;
uint8_t TXDataBoot[8] = {0};
/**
* @brief Инициализация CAN для бутлоадера
*/
void MX_BOOT_CAN_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
CAN_FilterTypeDef sFilterConfig;
/* Включаем тактирование */
__RCC_CAN_BOOT_CLK_ENABLE();
__RCC_CAN_PORT_CLK_ENABLE();
/* Настройка пинов RX/TX */
GPIO_InitStruct.Pin = CAN_PIN_RX;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(CAN_PORT, &GPIO_InitStruct);
GPIO_InitStruct.Pin = CAN_PIN_TX;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(CAN_PORT, &GPIO_InitStruct);
/* Настройка CAN */
hcan_boot.Instance = CAN_BOOT;
hcan_boot.Init.Prescaler = CAN_SPEED_PRESCALER;
hcan_boot.Init.Mode = CAN_MODE;
hcan_boot.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan_boot.Init.TimeSeg1 = CAN_SPEED_BS1;
hcan_boot.Init.TimeSeg2 = CAN_SPEED_BS2;
hcan_boot.Init.TimeTriggeredMode = DISABLE;
hcan_boot.Init.AutoBusOff = DISABLE;
hcan_boot.Init.AutoWakeUp = DISABLE;
hcan_boot.Init.AutoRetransmission = ENABLE;
hcan_boot.Init.ReceiveFifoLocked = DISABLE;
hcan_boot.Init.TransmitFifoPriority = DISABLE;
if (HAL_CAN_Init(&hcan_boot) != HAL_OK)
{
Error_Handler();
}
/* Настройка фильтра: пропускать все сообщения */
sFilterConfig.FilterBank = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x0000;
sFilterConfig.FilterIdLow = 0x0000;
sFilterConfig.FilterMaskIdHigh = 0x0000;
sFilterConfig.FilterMaskIdLow = 0x0000;
sFilterConfig.FilterFIFOAssignment = CAN_FILTER_FIFO0;
sFilterConfig.FilterActivation = ENABLE;
if (HAL_CAN_ConfigFilter(&hcan_boot, &sFilterConfig) != HAL_OK)
{
Error_Handler();
}
/* Запускаем CAN */
if (HAL_CAN_Start(&hcan_boot) != HAL_OK)
{
Error_Handler();
}
}
/**
* @brief Приём команды по CAN по протоколу:
* @param bl: указатель на структуру бутлоадера
* @retval BootloaderCommand_t — принятая команда или NO_CMD
*/
BootloaderCommand_t Bootloader_CAN_Receive(Bootloader_t *bl)
{
BootloaderCommand_t cmd = NO_CMD;
uint8_t canData[8];
if (HAL_CAN_GetRxFifoFillLevel(bl->hcan, CAN_RX_FIFO0) > 0)
{
if (HAL_CAN_GetRxMessage(bl->hcan, CAN_RX_FIFO0, &RxHeaderBoot, canData) == HAL_OK)
{
cmd = canData[0]; // предполагаем, что команда в первом байте
}
}
return cmd;
}
/**
* @brief Приём CAN: страница + CRC
* @param bl: указатель на структуру бутлоадера
*/
void Bootloader_CAN_Receive_Page(Bootloader_t *bl)
{
uint16_t bytes_received = 0;
CAN_RxHeaderTypeDef canHeader;
uint8_t canData[8];
uint32_t start_tick = HAL_GetTick();
// Приём страницы прошивки
while(bytes_received < PAGE_SIZE)
{
if(HAL_CAN_GetRxFifoFillLevel(bl->hcan, CAN_RX_FIFO0) > 0)
{
if(HAL_CAN_GetRxMessage(bl->hcan, CAN_RX_FIFO0, &canHeader, canData) == HAL_OK)
{
uint8_t len = canHeader.DLC;
if(bytes_received + len > PAGE_SIZE)
len = PAGE_SIZE - bytes_received;
memcpy(&bl->fw_buffer[bytes_received], canData, len);
bytes_received += len;
start_tick = HAL_GetTick(); // сброс таймаута
LED_BOOT_TOOGLE();
}
}
// проверка таймаута
if(HAL_GetTick() - start_tick >= FW_RECEIVE_TIMEOUT_MS)
{
bl->error.bit.timeout_receive = 1;
bl->state = BL_STATE_ERROR;
return;
}
}
// Приём CRC (4 байта)
start_tick = HAL_GetTick(); // сброс таймаута
while(1)
{
if(HAL_CAN_GetRxFifoFillLevel(bl->hcan, CAN_RX_FIFO0) > 0)
{
if(HAL_CAN_GetRxMessage(bl->hcan, CAN_RX_FIFO0, &canHeader, canData) == HAL_OK)
{
// CRC в первых 4 байтах пакета
bl->fw_crc = (canData[0] << 24) |
(canData[1] << 16) |
(canData[2] << 8) |
canData[3];
break;
}
}
// Таймаут
if(HAL_GetTick() - start_tick >= FW_RECEIVE_TIMEOUT_MS)
{
bl->error.bit.timeout_receive = 1;
bl->state = BL_STATE_ERROR;
return;
}
}
bl->fw_len = PAGE_SIZE;
bl->state = BL_STATE_IDLE;
}

View File

@@ -0,0 +1,92 @@
#include "boot_flash.h"
uint32_t word_data;
HAL_StatusTypeDef FLASH_Erase_App(void) //
{
HAL_StatusTypeDef res;
uint32_t PageError = 0x00;
res = HAL_FLASH_Unlock();
if (res != HAL_OK) return res;
FLASH_EraseInitTypeDef EraseInitStruct;
EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;// erase pages
EraseInitStruct.Banks = 1;
EraseInitStruct.PageAddress = MAIN_APP_START_ADR; //address
EraseInitStruct.NbPages = MAIN_APP_NUM_OF_PAGE;// num of erased pages
res = HAL_FLASHEx_Erase(&EraseInitStruct, &PageError);
if (res != HAL_OK) return res;
res = HAL_FLASH_Lock();
return res;
}
HAL_StatusTypeDef FLASH_Write_Page(uint32_t *Address, uint8_t *Data, int Data_size)
{
//GPIOB->ODR^=(0x2000);
// GPIOB->ODR|=0x4000;
HAL_StatusTypeDef res;
int data_cnt = 0;
uint32_t adr;
res = HAL_FLASH_Unlock();
if (res != HAL_OK) return res;
for (adr = *Address; adr < *Address + Data_size; adr = adr+4)
{
word_data = (
Data[data_cnt]|
Data[data_cnt+1]<<8|
Data[data_cnt+2]<<16|
Data[data_cnt+3]<<24);
res = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, adr, word_data);
if (res != HAL_OK) return res;
data_cnt +=4;
}
*Address += Data_size;
res = HAL_FLASH_Lock();
return res;
}
HAL_StatusTypeDef FLASH_Write_Word(uint32_t Address, uint64_t Data) //Куда записывать
{
HAL_StatusTypeDef res;
res = HAL_FLASH_Unlock();
if (res != HAL_OK) return res;
res = HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, Address, (uint32_t)(Data));
if (res != HAL_OK) return res;
res = HAL_FLASH_Lock();
return res;
}

View File

@@ -0,0 +1,24 @@
#include "boot_gpio.h"
/**
* @brief Инициализация GPIO для бутлоадера
*/
void MX_BOOT_GPIO_Init(void)
{
__RCC_LED_BOOT_CLK_ENABLE();
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = LED_BOOT_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // Push-Pull выход
GPIO_InitStruct.Pull = GPIO_NOPULL; // Без подтяжки
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // Низкая скорость
HAL_GPIO_Init(LED_BOOT_GPIO_Port, &GPIO_InitStruct);
for(int cnt = 0; cnt < 5; cnt++)
{
LED_BOOT_ON();
for(int delay = 0; delay < 10000; delay++);
LED_BOOT_OFF();
for(int delay = 0; delay < 10000; delay++);
}
}

View File

@@ -0,0 +1,150 @@
/**
* @file boot_jump.c
* @brief Функции для перехода между бутлоадером и основным приложением,
* управление ключом BOOT и проверка прошивки.
*
* Основные возможности:
* - Настройка вектора прерываний для запуска приложения
* - Управление ключом BOOT в Flash
* - Проверка корректности прошивки перед прыжком
* - Функции прыжка: Bootloader <-> Application
*/
#include "boot_jump.h"
/**
* @brief Инициализация приложения.
* Устанавливает вектор прерываний на начало основного приложения.
*/
void App_Init(void)
{
__disable_irq();
SCB->VTOR = MAIN_APP_START_ADR;
__enable_irq();
}
/**
* @brief Переход в бутлоадер.
* Сбрасывает ключ BOOT и выполняет системный сброс.
*/
void JumpToBootloader(void)
{
// jump to boot
ResetKey(); // сброс ключа (не erase, просто битый ключ)
NVIC_SystemReset(); // сброс и переход в бутлоадер (т.к. нет ключа)
}
/**
* @brief Переход к основному приложению.
* Настраивает стек и переход к ResetHandler приложения.
*/
void JumpToApplocation(void)
{
//Деинициализация HAL
HAL_DeInit();
//Перенос вектора прерываний на начало зашитой программы
__disable_irq();
__set_MSP(*((volatile uint32_t*)MAIN_APP_START_ADR));
__enable_irq();
//Переход к выполнению зашитой программы
__ASM volatile(
"ldr r0, [%0, #4]\n" // r0 = *(MAIN_APP_START_ADR + 4)
"bx r0\n" // переход по адресу в r0
:
: "r"(MAIN_APP_START_ADR)
: "r0"
);
//Note: asm потому что при O0 компилятор делал локальные переменные,
// из-за чего при смене стека он не мог получить адрес для прыжка
}
/**
* @brief Сброс ключа BOOT в Flash.
* Делает ключ «битым», чтобы MCU остался в бутлоадере при следующем перезапуске.
*/
void ResetKey(void)
{
HAL_FLASH_Unlock();
HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, BOOTLOADER_KEY_ADR, 0);
HAL_FLASH_Lock();
}
/**
* @brief Установка ключа BOOT в Flash.
* Указывает, что прошивка записана корректно.
*/
void SetKey(void)
{
HAL_FLASH_Unlock();
HAL_FLASH_Program(FLASH_TYPEPROGRAM_WORD, BOOTLOADER_KEY_ADR, BL_KEY_APP_WRITTEN);
HAL_FLASH_Lock();
}
/**
* @brief Чтение ключа BOOT из Flash.
* @retval Значение ключа
*/
uint32_t ReadKey(void)
{
return (*(__IO uint32_t*)BOOTLOADER_KEY_ADR);
}
/**
* @brief Стирание ключа BOOT в Flash (одна страница).
*/
void EraseKey(void)
{
FLASH_EraseInitTypeDef EraseInitStruct;
HAL_FLASH_Unlock();
uint32_t PageError = 0x00;
EraseInitStruct.TypeErase = FLASH_TYPEERASE_PAGES;// erase pages
EraseInitStruct.PageAddress = BOOTLOADER_KEY_ADR; //address
EraseInitStruct.NbPages = 0x01;// num of erased pages
HAL_FLASHEx_Erase(&EraseInitStruct, &PageError);
HAL_FLASH_Lock();
}
/**
* @brief Проверка валидности прошивки перед переходом к приложению.
* Проверяет MSP и ResetHandler.
* @retval HAL_OK - прошивка валидна
* HAL_ERROR - прошивка повреждена или некорректна
*/
HAL_StatusTypeDef Verify_Firmware(void)
{
uint32_t msp = *((volatile uint32_t*)(MAIN_APP_START_ADR));
uint32_t reset = *((volatile uint32_t*)(MAIN_APP_START_ADR + 4));
/* 1) Проверка MSP: должен быть указателем в SRAM */
if ((msp < SRAM_START_ADR) || (msp > SRAM_END_ADR))
{
/* Некорректный стек — прошивка невалидна */
return HAL_ERROR;
}
/* 2) Проверка reset handler:
- бит0 должен быть 1 (Thumb)
- адрес без бита0 должен лежать в пределах flash (MAIN_APP_START_ADR .. FLASH_END_ADR)
*/
if ((reset & 0x1) == 0)
{
/* Не Thumb-при-старте — подозрительно */
return HAL_ERROR;
}
uint32_t reset_addr = (reset & (~1U)); /* выравненный адрес */
if ((reset_addr < FLASH_START_ADR) || (reset_addr > FLASH_END_ADR))
{
/* Reset handler вне flash */
return HAL_ERROR;
}
return HAL_OK;
}

View File

@@ -0,0 +1,189 @@
#include "bootloader.h"
Bootloader_t boot = {0};
int main()
{
__disable_irq();
SCB->VTOR = FLASH_BASE;
__enable_irq();
boot.state = BL_STATE_INIT;
while (1)
{
Bootloader_Task(&boot);
}
}
/**
* @brief This function handles System tick timer.
*/
void SysTick_Handler(void)
{
/* USER CODE BEGIN SysTick_IRQn 0 */
/* USER CODE END SysTick_IRQn 0 */
HAL_IncTick();
/* USER CODE BEGIN SysTick_IRQn 1 */
/* USER CODE END SysTick_IRQn 1 */
}
void Boot_SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
/* Включаем внутренний генератор HSI */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
RCC_OscInitStruct.HSIState = RCC_HSI_ON;
RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; // без PLL
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
{
Error_Handler();
}
/* Настройка шин AHB/APB */
RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; // HSI = 8 MHz
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; // HCLK = 8 MHz
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; // PCLK1 = 8 MHz
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; // PCLK2 = 8 MHz
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
{
Error_Handler();
}
}
/******************************************************************************/
/* Cortex-M3 Processor Interruption and Exception Handlers */
/******************************************************************************/
/**
* @brief This function handles Non maskable interrupt.
*/
void NMI_Handler(void)
{
/* USER CODE BEGIN NonMaskableInt_IRQn 0 */
/* USER CODE END NonMaskableInt_IRQn 0 */
/* USER CODE BEGIN NonMaskableInt_IRQn 1 */
while (1)
{
}
/* USER CODE END NonMaskableInt_IRQn 1 */
}
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
{
/* USER CODE BEGIN HardFault_IRQn 0 */
/* Включаем тактирование PWR и BKP (APB1) и разрешаем доступ к BKP domain */
/* Записываем напрямую в регистры RCC/APB1ENR и PWR->CR */
SaveErrorCode(0xDEAD);
NVIC_SystemReset();
/* USER CODE END HardFault_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_HardFault_IRQn 0 */
/* USER CODE END W1_HardFault_IRQn 0 */
}
}
/**
* @brief This function handles Memory management fault.
*/
void MemManage_Handler(void)
{
/* USER CODE BEGIN MemoryManagement_IRQn 0 */
SaveErrorCode(0xBEEF);
NVIC_SystemReset();
/* USER CODE END MemoryManagement_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */
/* USER CODE END W1_MemoryManagement_IRQn 0 */
}
}
/**
* @brief This function handles Prefetch fault, memory access fault.
*/
void BusFault_Handler(void)
{
/* USER CODE BEGIN BusFault_IRQn 0 */
/* USER CODE END BusFault_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_BusFault_IRQn 0 */
/* USER CODE END W1_BusFault_IRQn 0 */
}
}
/**
* @brief This function handles Undefined instruction or illegal state.
*/
void UsageFault_Handler(void)
{
/* USER CODE BEGIN UsageFault_IRQn 0 */
/* USER CODE END UsageFault_IRQn 0 */
while (1)
{
/* USER CODE BEGIN W1_UsageFault_IRQn 0 */
/* USER CODE END W1_UsageFault_IRQn 0 */
}
}
/**
* @brief This function handles System service call via SWI instruction.
*/
void SVC_Handler(void)
{
/* USER CODE BEGIN SVCall_IRQn 0 */
/* USER CODE END SVCall_IRQn 0 */
/* USER CODE BEGIN SVCall_IRQn 1 */
/* USER CODE END SVCall_IRQn 1 */
}
/**
* @brief This function handles Debug monitor.
*/
void DebugMon_Handler(void)
{
/* USER CODE BEGIN DebugMonitor_IRQn 0 */
/* USER CODE END DebugMonitor_IRQn 0 */
/* USER CODE BEGIN DebugMonitor_IRQn 1 */
/* USER CODE END DebugMonitor_IRQn 1 */
}
/**
* @brief This function handles Pendable request for system service.
*/
void PendSV_Handler(void)
{
/* USER CODE BEGIN PendSV_IRQn 0 */
/* USER CODE END PendSV_IRQn 0 */
/* USER CODE BEGIN PendSV_IRQn 1 */
/* USER CODE END PendSV_IRQn 1 */
}
void Error_Handler(void)
{
NVIC_SystemReset();
}

View File

@@ -0,0 +1,182 @@
#include "boot_uart.h"
#include "boot_gpio.h"
UART_HandleTypeDef huart_boot;
/**
* @brief Инициализация UART для бутлоадера
*/
void MX_BOOT_UART_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* Включаем тактирование */
__RCC_UART_BOOT_CLK_ENABLE();
__RCC_UART_PORT_CLK_ENABLE();
/* Настройка GPIO TX/RX */
GPIO_InitStruct.Pin = UART_PIN_TX;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(UART_PORT, &GPIO_InitStruct);
GPIO_InitStruct.Pin = UART_PIN_RX;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(UART_PORT, &GPIO_InitStruct);
/* Настройка UART */
huart_boot.Instance = UART_BOOT;
huart_boot.Init.BaudRate = UART_SPEED;
huart_boot.Init.WordLength = UART_WORDLENGTH_8B;
huart_boot.Init.StopBits = UART_STOPBITS_1;
huart_boot.Init.Parity = UART_PARITY_NONE;
huart_boot.Init.Mode = UART_MODE_TX_RX;
huart_boot.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart_boot.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart_boot) != HAL_OK)
{
Error_Handler(); // твоя функция обработки ошибок
}
}
/**
* @brief Приём команды по UART по протоколу:
* [SOH][CMD][LEN_H][LEN_L][DATA ...][CRC32_H..CRC32_L]
* Idle — не блокируется до SOH
* После SOH — блокирующий приём всего пакета
* @param bl: указатель на структуру бутлоадера
* @retval BootloaderCommand_t — принятая команда или NO_CMD
*/
BootloaderCommand_t Bootloader_UART_Receive(Bootloader_t *bl)
{
BootloaderCommand_t cmd;
uint8_t byte = 0;
HAL_StatusTypeDef res;
// -----------------------------
// 1. Ждём SOH в неблокирующем режиме
res = HAL_UART_Receive(bl->huart, &byte, 1, 1); // 1 ms таймаут
if(res != HAL_OK)
return NO_CMD; // пакета нет
if(byte != 0xAA)
return NO_CMD; // игнорируем мусор
// -----------------------------
// 2. Блокирующий приём CMD + LEN_H + LEN_L
uint8_t header[3];
res = HAL_UART_Receive(bl->huart, header, 3, FW_RECEIVE_TIMEOUT_MS);
if(res != HAL_OK)
{
bl->error.bit.timeout_receive = 1;
bl->state = BL_STATE_ERROR;
return NO_CMD;
}
cmd = (BootloaderCommand_t)header[0];
bl->fw_len = ((uint16_t)header[1] << 8) | header[2];
if(bl->fw_len > PAGE_SIZE)
{
bl->error.bit.overflow = 1;
bl->state = BL_STATE_ERROR;
return NO_CMD;
}
// -----------------------------
// 3. Блокирующий приём DATA
for(uint16_t i = 0; i < bl->fw_len; i++)
{
res = HAL_UART_Receive(bl->huart, &bl->fw_buffer[i], 1, FW_RECEIVE_TIMEOUT_MS);
if(res != HAL_OK)
{
bl->error.bit.timeout_receive = 1;
bl->state = BL_STATE_ERROR;
return NO_CMD;
}
}
// -----------------------------
// 4. Приём CRC32
uint8_t crc_buf[4];
res = HAL_UART_Receive(bl->huart, crc_buf, 4, FW_RECEIVE_TIMEOUT_MS);
if(res != HAL_OK)
{
bl->error.bit.timeout_receive = 1;
bl->state = BL_STATE_ERROR;
return NO_CMD;
}
bl->fw_crc = (crc_buf[0]<<24) | (crc_buf[1]<<16) | (crc_buf[2]<<8) | crc_buf[3];
// -----------------------------
// 5. Проверка CRC по всему пакету (CMD + LEN + DATA)
uint32_t crc_calc = CRC32_Compute(header, 3); // CMD + LEN
crc_calc = CRC32_Compute(bl->fw_buffer, bl->fw_len) ^ crc_calc; // DATA
if(crc_calc != bl->fw_crc)
{
bl->error.bit.crc_err = 1;
bl->state = BL_STATE_ERROR;
return NO_CMD;
}
// -----------------------------
// 6. Всё верно — возвращаем команду
return cmd;
}
/**
* @brief Приём UART: страница + CRC
* @param bl: указатель на структуру бутлоадера
*/
void Bootloader_UART_Receive_Page(Bootloader_t *bl)
{
uint16_t bytes_received = 0;
uint8_t crc_buf[4];
HAL_StatusTypeDef res;
uint32_t start_tick = HAL_GetTick(); // старт таймера
// Приём данных страницы
while(bytes_received < PAGE_SIZE)
{
uint8_t byte = 0;
res = HAL_UART_Receive(bl->huart, &byte, 1, FW_RECEIVE_TIMEOUT_MS); // блокирующий приём 100ms
if(res == HAL_OK)
{
bl->fw_buffer[bytes_received++] = byte;
start_tick = HAL_GetTick(); // сброс таймера при успешном приёме
LED_BOOT_TOOGLE();
}
else
{
bl->error.bit.timeout_receive = 1;
bl->state = BL_STATE_ERROR; // превышен таймаут
return;
}
}
// Приём CRC (4 байта)
for(uint8_t i = 0; i < 4; i++)
{
res = HAL_UART_Receive(bl->huart, &crc_buf[i], 1, FW_RECEIVE_TIMEOUT_MS);
if(res == HAL_OK)
{
start_tick = HAL_GetTick(); // сброс таймера
}
else
{
bl->error.bit.timeout_receive = 1;
bl->state = BL_STATE_ERROR;
return;
}
}
// Сохраняем CRC в структуру
bl->fw_crc = (crc_buf[0] << 24) | (crc_buf[1] << 16) | (crc_buf[2] << 8) | crc_buf[3];
bl->fw_len = bytes_received;
bl->state = BL_STATE_IDLE;
}

View File

@@ -0,0 +1,487 @@
/******************************************************************************
* @file bootloader.c
* @brief Бутлоадер STM32 — реализован как конечный автомат (state machine).
*
* @details
* Логика работы:
* - Структура Bootloader_t содержит текущее состояние и ошибки.
* - После сброса проверяются предыдущие ошибки.
* - Проверяется BOOT KEY, чтобы определить: запускать основное приложение или оставаться в бутлоадере.
* - Основной цикл — state machine:
* INIT — проверка ключа, инициализация периферии
* IDLE — ожидание команд по UART/CAN
* RECEIVE_UART/RECEIVE_CAN — приём страницы прошивки
* WRITE — запись страницы во Flash
* ERASE — стирание приложения
* JUMP_TO_APP — проверка прошивки и переход к приложению
* JUMP_TO_BOOT— возврат в бутлоадер
* RESET — программный сброс
* ERROR — обработка ошибок и уведомление внешнего интерфейса
* - Команды прошивки (BootloaderCommand_t) обрабатываются через Receive_FW_Command().
* - Проверка целостности данных осуществляется через CRC32.
*
* Подключение бутлоадера в основном приложении:
* 0) Подключить boot_jump.h и boot_jump.c для взаимодействия с бутлоадером:
* @code #include "boot_jump.h" @endcode
* 1) В начале main() вызвать App_Init(), чтобы установить VTOR на
* начало приложения:
* @code App_Init(); @endcode
* 2) Для перехода в бутлоадер (например, при ошибке или обновлении):
* @code JumpToBootloader(); @endcode
******************************************************************************/
#include "bootloader.h"
#include "boot_gpio.h"
#include "boot_flash.h"
#include "boot_uart.h"
#include "boot_can.h"
#include "boot_jump.h"
// -----------------------------------------------------------------------------
// Глобальные переменные для HAL-периферии
// -----------------------------------------------------------------------------
HAL_StatusTypeDef res_hal;
uint32_t led_err_lasttick = 0;
// -----------------------------------------------------------------------------
// Локальные (static) функции
// -----------------------------------------------------------------------------
static uint8_t Receive_FW_Command(Bootloader_t *bl);
/**
* @brief Проверка после сброса MCU.
* Определяет причину предыдущего сброса, проверяет ошибки и при необходимости
* выставляет соответствующие биты в структуре ошибок бутлоадера.
*/
void Bootloader_StartCheck(Bootloader_t *bl)
{
uint32_t ErrCodeBoot = 0;
uint32_t ErrCntBoot = 0;
// Проверка watchdog reset (IWDGRSTF или WWDGRSTF в RCC->CSR)
if (__HAL_RCC_GET_FLAG(RCC_FLAG_IWDGRST) || __HAL_RCC_GET_FLAG(RCC_FLAG_WWDGRST))
{
//SaveErrorCode(0x0D0D);
__HAL_RCC_CLEAR_RESET_FLAGS(); // Очистить флаги сброса, чтобы не повторялось
}
// Чтение сохранённого кода ошибки и количества сбоев
ErrCodeBoot = GetErrorCode();
ErrCntBoot = GetErrorCnt();
// Если ошибок было больше 5, фиксируем тип ошибки и уходим в бутлоадер
// Данные ошибки фиксируются только в прерываниях бутлоадера. Hardfault в прерывании приложения не считается
if(ErrCntBoot > 5)
{
ClearErrorCode();
if(ErrCodeBoot == 0xDEAD) // HardFault
{
ResetKey();
bl->error.bit.hardfault_cycle = 1;
bl->state = BL_STATE_ERROR;
}
else if(ErrCodeBoot == 0xBEEF) // MemManage
{
ResetKey();
bl->error.bit.memmanage_cycle = 1;
bl->state = BL_STATE_ERROR;
}
/*else if(ErrCodeBoot == 0x0D0D) пока хз надо ли
{
ResetKey();
bl->error.bit.watchdog_reset = 1; // Добавь бит в структуру BootloaderError_
bl->state = BL_STATE_ERROR;
}*/
}
}
/**
* @brief Инициализация периферии бутлоадера (UART, CAN, системный такт).
* Привязывает дескрипторы HAL к структуре бутлоадера и задаёт
* начальный адрес приложения.
*/
void Bootloader_Init(Bootloader_t *bl)
{
HAL_Init();
Boot_SystemClock_Config();
MX_BOOT_UART_Init();
MX_BOOT_CAN_Init();
// Привязка дескрипторов к структуре бутлоадера
bl->huart = &huart_boot;
bl->hcan = &hcan_boot;
bl->TxHeader.DLC = 8;
bl->TxHeader.StdId = 123;
bl->addr = MAIN_APP_START_ADR; // адрес начала приложения
}
/**
* @brief Основной цикл работы бутлоадера (машина состояний).
* Обрабатывает состояния INIT, IDLE, RECEIVE, WRITE, ERASE, JUMP и ERROR.
*/
void Bootloader_Task(Bootloader_t *bl)
{
int receive_uart_flag;
switch (bl->state)
{
case BL_STATE_INIT:
/*
* Состояние инициализации.
* - включаем индикацию (LED),
* - проверяем ошибки,
* - читаем "ключ" (метку, что приложение уже записано).
* Если ключ установлен -> сразу переход в приложение.
* Иначе -> переходим в режим ожидания команд от хоста (IDLE),
* инициализируем интерфейсы (CAN/UART, CRC и т.д.).
*/
bl->prev_state = bl->state;
MX_BOOT_GPIO_Init();
Bootloader_StartCheck(bl);
if ((ReadKey() == BL_KEY_APP_WRITTEN))
{
bl->state = BL_STATE_JUMP_TO_APP;
}
else
{
bl->state = BL_STATE_IDLE;
Bootloader_Init(bl);
}
break;
case BL_STATE_IDLE:
/*
* Состояние ожидания команд.
* - если ошибка уже зафиксирована -> переход в ERROR,
* - если это первый вход в IDLE -> отправляем "готов" (0x00) по CAN/UART,
* - далее слушаем команды от хоста (erase, write, jump и т.п.).
* Неизвестная команда -> ошибка.
*/
if(bl->error.all)
{
bl->prev_state = bl->state;
bl->state = BL_STATE_ERROR;
break;
}
if((bl->state != bl->prev_state) && (bl->prev_state != BL_STATE_ERROR))
{
TXDataBoot[0] = 0x00;
res_hal = HAL_CAN_AddTxMessage(bl->hcan, &bl->TxHeader, TXDataBoot, &TxMailBoxBoot);
res_hal = HAL_UART_Transmit(bl->huart, TXDataBoot, 1, 100);
}
bl->prev_state = bl->state;
if (Receive_FW_Command(bl) == 0xFF)
{
bl->error.bit.unknown_cmd = 1;
bl->state = BL_STATE_ERROR;
}
break;
case BL_STATE_RESET:
/*
* Состояние сброса.
* Вызывает системный reset через NVIC -> контроллер запускается заново.
*/
NVIC_SystemReset();
break;
case BL_STATE_ERASE:
/*
* Состояние стирания Flash.
* - сбрасываем "ключ" приложения,
* - стираем область памяти под приложение,
* - при успехе возвращаемся в IDLE,
* - при ошибке отмечаем ошибку стирания и уходим в ERROR.
* По завершению гасим LED.
*/
bl->prev_state = bl->state;
EraseKey();
if (FLASH_Erase_App() == HAL_OK)
{
HAL_Delay(50);
bl->state = BL_STATE_IDLE;
}
else
{
bl->error.bit.erase_err = 1;
bl->state = BL_STATE_ERROR;
}
LED_BOOT_OFF();
break;
case BL_STATE_RECEIVE_UART:
case BL_STATE_RECEIVE_CAN:
/*
* Состояние приёма страницы прошивки от хоста.
* - различаем, пришло ли по UART или CAN,
* - отправляем ACK (0x00),
* - читаем блок данных (страницу) в буфер,
* - после приёма проверяем CRC полученного блока,
* - если CRC не совпадает -> очищаем буфер, фиксируем ошибку и уходим в ERROR.
* По завершению приёма гасим LED.
*/
receive_uart_flag = (bl->state == BL_STATE_RECEIVE_UART) ? 1 : 0;
TXDataBoot[0] = 0x00;
bl->prev_state = bl->state;
if(receive_uart_flag)
{
res_hal = HAL_UART_Transmit(bl->huart, TXDataBoot, 1, 100);
Bootloader_UART_Receive_Page(bl);
}
else
{
res_hal = HAL_CAN_AddTxMessage(bl->hcan, &bl->TxHeader, TXDataBoot, &TxMailBoxBoot);
Bootloader_CAN_Receive_Page(bl);
}
uint32_t crc_calculated = CRC32_Compute((uint8_t *)bl->fw_buffer, bl->fw_len);
if(crc_calculated != bl->fw_crc)
{
for(int i = 0; i < bl->fw_len; i++)
{
bl->fw_buffer[i] = 0;
}
bl->error.bit.crc_err = 1;
bl->state = BL_STATE_ERROR;
}
LED_BOOT_OFF();
break;
case BL_STATE_WRITE:
/*
* Состояние записи страницы прошивки во Flash.
* - пытаемся записать буфер в указанную область памяти,
* - если успешно -> возвращаемся в IDLE (ждём следующего блока),
* - если ошибка -> фиксируем ошибку записи и уходим в ERROR.
* После завершения гасим LED.
*/
bl->prev_state = bl->state;
if (FLASH_Write_Page(&bl->addr, bl->fw_buffer, bl->fw_len) == HAL_OK)
{
bl->state = BL_STATE_IDLE;
}
else
{
bl->error.bit.write_err = 1;
bl->state = BL_STATE_ERROR;
}
LED_BOOT_OFF();
break;
case BL_STATE_JUMP_TO_APP:
/*
* Состояние перехода в приложение.
* - выполняем проверку корректности прошивки (Verify_Firmware),
* - если проверка пройдена -> устанавливаем "ключ" приложения,
* чтобы пометить прошивку как валидную,
* - если проверка не пройдена -> ошибка verify и переход в ERROR.
* В случае успеха вызываем JumpToApplication(), передавая управление основному коду.
*/
bl->prev_state = bl->state;
if (Verify_Firmware() == HAL_OK)
{
EraseKey();
SetKey();
}
else
{
bl->error.bit.verify_err = 1;
bl->state = BL_STATE_ERROR;
break;
}
JumpToApplocation();
break;
case BL_STATE_JUMP_TO_BOOT:
/*
* Состояние возврата в bootloader.
*/
bl->prev_state = bl->state;
JumpToBootloader();
break;
case BL_STATE_ERROR:
/*
* Состояние ошибки.
* - при первом входе в ERROR отправляем код ошибки (0xFF + код ошибки),
* - продолжаем слушать команды, чтобы можно было сбросить или стереть Flash,
* - мигаем LED раз в 500 мс для визуальной индикации ошибки.
*/
if(bl->state != bl->prev_state)
{
TXDataBoot[0] = 0xFF;
TXDataBoot[1] = (bl->error.all >> 8) & (0xFF);
TXDataBoot[2] = bl->error.all & (0xFF);
res_hal = HAL_CAN_AddTxMessage(bl->hcan, &bl->TxHeader, TXDataBoot, &TxMailBoxBoot);
res_hal = HAL_UART_Transmit(bl->huart, TXDataBoot, 1, 100);
}
bl->prev_state = bl->state;
if (Receive_FW_Command(bl) == 0xFF)
{
bl->error.bit.unknown_cmd = 1;
bl->state = BL_STATE_ERROR;
}
if(HAL_GetTick() - led_err_lasttick > 500)
{
led_err_lasttick = HAL_GetTick();
LED_BOOT_TOOGLE();
}
break;
default:
/*
* Попадание в неизвестное состояние.
* Считается ошибкой: ставим unknown_cmd и переходим в ERROR.
*/
bl->error.bit.unknown_cmd = 1;
bl->state = BL_STATE_ERROR;
break;
}
}
/**
* @brief Устанавливает новое состояние бутлоадера в зависимости от команды.
* @param bl: указатель на структуру бутлоадера
* @param cmd: команда бутлоадера (BootloaderCommand_t)
* @param uart_flag: 1 — команда пришла по UART, 0 — по CAN
* @retval 0x00 — команда успешно обработана, 0xFF — неизвестная команда
*/
static uint8_t SetBootState(Bootloader_t *bl, BootloaderCommand_t cmd, uint8_t uart_flag)
{
switch(cmd)
{
case CMD_ERASE: // команда: стереть Flash
bl->state = BL_STATE_ERASE;
return 0x00;
case CMD_START_RECEIVE: // команда: принять блок
if(uart_flag)
bl->state = BL_STATE_RECEIVE_UART;
else
bl->state = BL_STATE_RECEIVE_CAN;
return 0x00;
case CMD_WRITE: // команда: записать блок
bl->state = BL_STATE_WRITE;
return 0x00;
case CMD_GOTOAPP: // команда: прыжок в приложение
bl->state = BL_STATE_JUMP_TO_APP;
return 0x00;
case CMD_RESET: // команда: прыжок в приложение
bl->state = BL_STATE_RESET;
return 0x00;
case CMD_GOTOBOOT: // команда: прыжок в бутлоадер
bl->state = BL_STATE_JUMP_TO_BOOT;
case CMD_PING: // команда: пинг, отправка текущего состояния бутлоадера
bl->prev_state = 0; // обнуляем предыдущее состоояние, чтобы снова отправить комманду с текущим состоянием
return 0x00;
default:
return 0xFF; // неизвестная команда
}
}
/**
* @brief Обработка команд прошивки по UART или CAN
* @param bl: указатель на структуру бутлоадера
* @retval 0x00 - команда принята и обработана, 0xFF - ошибка
*/
static uint8_t Receive_FW_Command(Bootloader_t *bl)
{
BootloaderCommand_t cmd = 0;
HAL_StatusTypeDef res = HAL_ERROR;
uint8_t ret_val = 0x00;
// ---------------------------
// Чтение команды по UART
// ---------------------------
cmd = Bootloader_UART_Receive(bl); // таймаут 10 ms
if (cmd != NO_CMD)
{
ret_val = SetBootState(bl, cmd, 1);
}
// ---------------------------
// Чтение команды по CAN
// ---------------------------
cmd = Bootloader_CAN_Receive(bl);
if (cmd != NO_CMD)
{
ret_val = SetBootState(bl, cmd, 0);
}
#ifdef TEST_CAN
TxHeaderBoot.StdId = 0x200; // ID OF MESSAGE
TxHeaderBoot.ExtId = 0; // STANDART FRAME (NOT EXTENTED)
TxHeaderBoot.RTR = CAN_RTR_DATA; // TRANSMIT DATA OR
TxHeaderBoot.IDE = CAN_ID_STD; // STANDART FRAME
TxHeaderBoot.DLC = 8; // DATA SIZE
TxHeaderBoot.TransmitGlobalTime = DISABLE; //THIS MODE IS NOT USED, SO DISABLE
uint8_t asd[8] = "ABCDEFGL";
res_hal = HAL_CAN_AddTxMessage(&hcan_boot, &TxHeaderBoot, asd, &TxMailBoxBoot); // add to mail for transmit
HAL_Delay(1000);
#endif
if((bl->state != BL_STATE_IDLE) && (bl->state != BL_STATE_ERROR))
{
LED_BOOT_ON();
}
return ret_val;
}
/**
* @brief Вычисление CRC32 блока данных.
* @param data: указатель на массив данных
* @param length: длина массива в байтах
* @retval CRC32 вычисленное значение
*/
uint32_t CRC32_Compute(const uint8_t* data, uint32_t length)
{
const uint32_t polynomial = 0x04C11DB7;
uint32_t crc = 0xFFFFFFFF;
for(uint32_t i = 0; i < length; i++)
{
crc ^= ((uint32_t)data[i] << 24);
for(uint8_t j = 0; j < 8; j++)
{
if(crc & 0x80000000)
crc = (crc << 1) ^ polynomial;
else
crc <<= 1;
}
}
return crc ^ 0xFFFFFFFF;
}
/**
* @brief Конфигурация системного тактирования (должна быть переопределена пользователем).
*/
__WEAK void Boot_SystemClock_Config(void)
{
}
/**
* @brief Обработчик ошибок (может быть переопределён пользователем).
*/
__WEAK void Error_Handler(void)
{
while(1);
}

View File

@@ -41,7 +41,9 @@ extern CAN_HandleTypeDef hcan;
void MX_CAN_Init(void);
/* USER CODE BEGIN Prototypes */
int CAN_send(uint16_t data[], int Addr, int Qua);
void Setup_CAN_addr(uint8_t mode);
void CAN_filterConfig(void);
/* USER CODE END Prototypes */
#ifdef __cplusplus

10
Core/Inc/crc16.h Normal file
View File

@@ -0,0 +1,10 @@
#include "stdint.h"
typedef unsigned short WORD;
typedef unsigned char byte;
unsigned int get_crc_ccitt(unsigned int crc, unsigned int *buf, unsigned long size );
unsigned int get_crc_16(unsigned int crc,unsigned int *buf,unsigned long size );
unsigned int get_crc_16b(unsigned int crc,unsigned int *buf,unsigned long size );
int get_crc16(uint16_t *buf, int size );

20
Core/Inc/eeprom.h Normal file
View File

@@ -0,0 +1,20 @@
#ifndef __EEPROM_H
#define __EEPROM_H
#ifdef __cplusplus
extern "C" {
#endif
#include "stm32f1xx_hal.h"
#define FLASH_EEPROM_BASE 0x0801F800
#define FLASH_STARTO 0xBABEFACE
void putIntoEeprom(uint16_t, uint16_t*);
uint16_t watInTheFlash(uint32_t);
#ifdef __cplusplus
}
#endif
#endif /* __EEPROM_H */

30
Core/Inc/lampa.h Normal file
View File

@@ -0,0 +1,30 @@
#ifndef __LAMPA_H
#define __LAMPA_H
/*
* Применяется метод Слой аппаратных абстракции(HAL) так он последний(модный),
* тут описано библиотечные вызовы
*/
#ifdef __cplusplus
extern "C" {
#endif
#include "main.h"
#include "stdbool.h"
#define Delay 1000
#define numUno 1
#define numNul 0
void ReadEnteres(void);
uint16_t ReadJumpers(void);
uint16_t TestJumper(void);
void ReadSeanus(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -63,10 +63,10 @@ void Error_Handler(void);
#define SELEKT_PCH_GPIO_Port GPIOC
#define IN_05_Pin GPIO_PIN_15
#define IN_05_GPIO_Port GPIOC
#define LED1_Pin GPIO_PIN_2
#define LED1_GPIO_Port GPIOC
#define LED2_Pin GPIO_PIN_3
#define LED2_Pin GPIO_PIN_2
#define LED2_GPIO_Port GPIOC
#define LED3_Pin GPIO_PIN_3
#define LED3_GPIO_Port GPIOC
#define IN_04_Pin GPIO_PIN_0
#define IN_04_GPIO_Port GPIOA
#define IN_03_Pin GPIO_PIN_1
@@ -79,20 +79,20 @@ void Error_Handler(void);
#define IN_14_GPIO_Port GPIOA
#define IN_13_Pin GPIO_PIN_5
#define IN_13_GPIO_Port GPIOA
#define J0_Pin GPIO_PIN_7
#define J0_Pin GPIO_PIN_6
#define J0_GPIO_Port GPIOA
#define J1_Pin GPIO_PIN_4
#define J1_GPIO_Port GPIOC
#define J2_Pin GPIO_PIN_5
#define J1_Pin GPIO_PIN_7
#define J1_GPIO_Port GPIOA
#define J2_Pin GPIO_PIN_4
#define J2_GPIO_Port GPIOC
#define J3_Pin GPIO_PIN_0
#define J3_GPIO_Port GPIOB
#define IN_12_Pin GPIO_PIN_1
#define J3_Pin GPIO_PIN_5
#define J3_GPIO_Port GPIOC
#define IN_12_Pin GPIO_PIN_0
#define IN_12_GPIO_Port GPIOB
#define IN_11_Pin GPIO_PIN_1
#define IN_11_GPIO_Port GPIOB
#define BOOT1_Pin GPIO_PIN_2
#define BOOT1_GPIO_Port GPIOB
#define IN_11_Pin GPIO_PIN_10
#define IN_11_GPIO_Port GPIOB
#define IN_10_Pin GPIO_PIN_12
#define IN_10_GPIO_Port GPIOB
#define IN_09_Pin GPIO_PIN_13
@@ -101,6 +101,7 @@ void Error_Handler(void);
#define IN_08_GPIO_Port GPIOB
#define IN_07_Pin GPIO_PIN_15
#define IN_07_GPIO_Port GPIOB
#define IN_07_EXTI_IRQn EXTI15_10_IRQn
#define PVT4_Pin GPIO_PIN_6
#define PVT4_GPIO_Port GPIOC
#define PVT3_Pin GPIO_PIN_7
@@ -109,9 +110,88 @@ void Error_Handler(void);
#define PVT2_GPIO_Port GPIOC
#define PVT1_Pin GPIO_PIN_9
#define PVT1_GPIO_Port GPIOC
#define LED0_Pin GPIO_PIN_5
#define LED0_GPIO_Port GPIOB
#define LED1_Pin GPIO_PIN_6
#define LED1_GPIO_Port GPIOB
/* USER CODE BEGIN Private defines */
/////////// USER define /////////
#define Jselect HAL_GPIO_ReadPin(Jselect_GPIO_Port, Jselect_Pin)
#define Jselect_Pin GPIO_PIN_14
#define Jselect_GPIO_Port GPIOC
#define LED_0_OFF HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET) //Set or clear the selected data port bit
#define LED_0_ON HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET) //??? ?????? ?? ??????????
#define LED_0_TGL HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin)
#define LED_1_OFF HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET) //Set or clear the selected data port bit
#define LED_1_ON HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET) //??? ?????? ?? ??????????
#define LED_1_TGL HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin)
#define LED_2_ON HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_SET) //Set or clear the selected data port bit
#define LED_2_OFF HAL_GPIO_WritePin(LED2_GPIO_Port, LED2_Pin, GPIO_PIN_RESET) //??? ?????? ?? ??????????
#define LED_2_TGL HAL_GPIO_TogglePin(LED2_GPIO_Port, LED2_Pin)
#define LED_3_ON HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_SET) //Set or clear the selected data port bit
#define LED_3_OFF HAL_GPIO_WritePin(LED3_GPIO_Port, LED3_Pin, GPIO_PIN_RESET) //??? ?????? ?? ??????????
#define LED_3_TGL HAL_GPIO_TogglePin(LED3_GPIO_Port, LED3_Pin)
#define Pvt1_ON HAL_GPIO_WritePin(PVT1_GPIO_Port, PVT1_Pin, GPIO_PIN_SET) //Set or clear the selected data port bit
#define Pvt1_OFF HAL_GPIO_WritePin(PVT1_GPIO_Port, PVT1_Pin, GPIO_PIN_RESET) //??? ?????? ?? ??????????
#define Pvt1_TGL HAL_GPIO_TogglePin(PVT1_GPIO_Port, PVT1_Pin)
#define Pvt2_ON HAL_GPIO_WritePin(PVT2_GPIO_Port, PVT2_Pin, GPIO_PIN_SET) //set - ????????????? ???, reset - ??????? ???
#define Pvt2_OFF HAL_GPIO_WritePin(PVT2_GPIO_Port, PVT2_Pin, GPIO_PIN_RESET) //????? ??????? ? main.h ??????? ?????? ?????????????
#define Pvt2_TGL HAL_GPIO_TogglePin(PVT2_GPIO_Port, PVT2_Pin)
#define Pvt3_ON HAL_GPIO_WritePin(PVT3_GPIO_Port, PVT3_Pin, GPIO_PIN_SET)
#define Pvt3_OFF HAL_GPIO_WritePin(PVT3_GPIO_Port, PVT3_Pin, GPIO_PIN_RESET)
#define Pvt3_TGL HAL_GPIO_TogglePin(PVT3_GPIO_Port, PVT3_Pin)
#define Pvt4_ON HAL_GPIO_WritePin(PVT4_GPIO_Port, PVT4_Pin, GPIO_PIN_SET)
#define Pvt4_OFF HAL_GPIO_WritePin(PVT4_GPIO_Port, PVT4_Pin, GPIO_PIN_RESET)
#define Pvt4_TGL HAL_GPIO_TogglePin(PVT4_GPIO_Port, PVT4_Pin)
#define IN_01 HAL_GPIO_ReadPin(IN_01_GPIO_Port, IN_01_Pin) // ???????? ??1 (??????? ???????????? ???????????)
#define IN_02 HAL_GPIO_ReadPin(IN_02_GPIO_Port, IN_02_Pin) // ???????? ??2 (??????? ???????????? ?????????)
#define IN_03 HAL_GPIO_ReadPin(IN_03_GPIO_Port, IN_03_Pin) // ???????? ??3 (??????? ??. ??????, ???? ?????????, ????)
#define IN_04 HAL_GPIO_ReadPin(IN_04_GPIO_Port, IN_04_Pin) // ???????? ??4 (??????? ???????? ???? ? ?????????? +)
#define IN_05 HAL_GPIO_ReadPin(IN_05_GPIO_Port, IN_05_Pin) // ???????? ??5 (??????? ???????? ???? ? ?????????? )
#define IN_06 HAL_GPIO_ReadPin(IN_06_GPIO_Port, IN_06_Pin) // ???????? ??6 (??????? ?????????)
#define IN_07 HAL_GPIO_ReadPin(IN_07_GPIO_Port, IN_07_Pin) // ???????? 3? ??????? 380 ?
#define IN_08 HAL_GPIO_ReadPin(IN_08_GPIO_Port, IN_08_Pin) // ????? ??????????
#define IN_09 HAL_GPIO_ReadPin(IN_09_GPIO_Port, IN_09_Pin) // ?????? ??????????
#define IN_10 HAL_GPIO_ReadPin(IN_10_GPIO_Port, IN_10_Pin) // ?????? ? ???? 24 ?
#define IN_11 HAL_GPIO_ReadPin(IN_11_GPIO_Port, IN_11_Pin) // ???????? ??????? ???
#define IN_12 HAL_GPIO_ReadPin(IN_12_GPIO_Port, IN_12_Pin) // ??????
#define IN_13 HAL_GPIO_ReadPin(IN_13_GPIO_Port, IN_13_Pin) // ??????
#define IN_14 HAL_GPIO_ReadPin(IN_14_GPIO_Port, IN_14_Pin) // ???????? ??????? ???
#define J0 HAL_GPIO_ReadPin(J0_GPIO_Port, J0_Pin) //Read the specified input port pin
#define J1 HAL_GPIO_ReadPin(J1_GPIO_Port, J1_Pin)
#define J2 HAL_GPIO_ReadPin(J2_GPIO_Port, J2_Pin)
#define J3 HAL_GPIO_ReadPin(J3_GPIO_Port, J3_Pin)
/////////////////////////////////
int Isit(int num, int i, int z);
typedef struct // ñòðóêòóðà ôëàãîâ
{
uint8_t force_pause:1;
uint32_t pause;
// uint8_t
// uint16_t
}FLAG;
/* USER CODE END Private defines */
#ifdef __cplusplus

25
Core/Inc/message.h Normal file
View File

@@ -0,0 +1,25 @@
#ifndef MESSAGE_H
#define MESSAGE_H
#include "stdint.h"
#include "struc.h"
typedef unsigned char CHAR;
#define Modbus_LEN 0x000080
#define Modbus ((WORDE *)modbus)
#define Params ((WORDE *)params)
extern uint16_t Mode;
extern uint16_t modbus[],params[],archiv[],county[],espero[];
extern LONGE* outputs;
extern uint16_t Maska[][8];
void Save_params(void);
void Load_params(void);
void Default_params(void);
#endif //MESSAGE_H

77
Core/Inc/package.h Normal file
View File

@@ -0,0 +1,77 @@
#ifndef PACKAGE
#define PACKAGE
#define PROTOKOL 3
#define m_FAST 0
#define m_SLOW 1
#define keys 0x0 // адрес повтораемой посылки «keys»
#define Inputs Modbus[0x0]
#define Alarms Modbus[0x1]
#define Errors Modbus[0x2]
#define Alarm_mask Modbus[0x8]
#define Error_mask Modbus[0x9]
#define Jumpers Modbus[0x10]
#define Buttons Modbus[0x11]
#define jumpers modbus[0x10]
#define buttons modbus[0x11]
#define Squazh_U (modbus+0x18)
#define Sleep_time modbus[0x48]
#define Squazh_L (modbus+0x30)
#define Cancount (modbus+0x60) // пауза между посылками CAN
#define CanWait (modbus+0x62) // пауза после прохождениа цикла
#define CanRestart (modbus+0x64) // перезапуск посылки
#define CanRptVez modbus[0x66] // кол-во повторений посылки «keys»
#define CanRptLen modbus[0x67] // длина повтораемой посылки «keys»
#define Brightness modbus[0x68] // аркость сигнальной лампочки
#define Lightness modbus[0x6A] // управление сигнальной лампочки
#define cancyclo 0x78 // его адрес
#define CanCycle (modbus+0x78) // счетчик циклов CAN
#define CanRound (modbus+0x7A) // счетчик еще более полных циклов CAN
#define Protokol modbus[125]
#define LastMode modbus[126]
#define Commands modbus[127]
#define command params[128]
#define bit_command Params[128]
#define cTestLamp bit_command.bit.bit0
#define cDefParam bit_command.bit.bit1
#define cSaveParam bit_command.bit.bit2
#define cLoadParam bit_command.bit.bit3
#define cTermoCal bit_command.bit.bit4
#define cKoefCalc bit_command.bit.bit5
#define cSecretBt bit_command.bit.bit6
#define cCanReset bit_command.bit.bit7
#define cRawMeat bit_command.bit.bit8
#define cCanReset bit_command.bit.bit7
#define cReset bit_command.bit.bitF
/*
#define cTestLamp Modbus[127].bit.bit0
#define cDefParam Modbus[127].bit.bit1
#define cSaveParam Modbus[127].bit.bit2
#define cLoadParam Modbus[127].bit.bit3
#define cTermoCal Modbus[127].bit.bit4
#define cKoefCalc Modbus[127].bit.bit5
#define cSecretBt Modbus[127].bit.bit6
#define cCanReset Modbus[127].bit.bit7
#define cRawMeat Modbus[127].bit.bit8
#define cCanReset Modbus[127].bit.bit7
#define cReset Modbus[127].bit.bitF
*/
#endif //PACKAGE

View File

@@ -65,7 +65,7 @@
/*#define HAL_SPI_MODULE_ENABLED */
/*#define HAL_SRAM_MODULE_ENABLED */
#define HAL_TIM_MODULE_ENABLED
/*#define HAL_UART_MODULE_ENABLED */
#define HAL_UART_MODULE_ENABLED
/*#define HAL_USART_MODULE_ENABLED */
/*#define HAL_WWDG_MODULE_ENABLED */

View File

@@ -58,7 +58,9 @@ void SysTick_Handler(void);
void USB_HP_CAN1_TX_IRQHandler(void);
void USB_LP_CAN1_RX0_IRQHandler(void);
void TIM4_IRQHandler(void);
void EXTI15_10_IRQHandler(void);
void TIM8_UP_IRQHandler(void);
void UART4_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */

153
Core/Inc/struc.h Normal file
View File

@@ -0,0 +1,153 @@
#ifndef __STRUC_H
#define __STRUC_H
#ifdef __cplusplus
extern "C" {
#endif
typedef union
{
struct
{
unsigned char bit0: 1;
unsigned char bit1: 1;
unsigned char bit2: 1;
unsigned char bit3: 1;
unsigned char bit4: 1;
unsigned char bit5: 1;
unsigned char bit6: 1;
unsigned char bit7: 1;
} bit;
struct
{
unsigned char quad_0 :4;
unsigned char quad_1 :4;
} qua;
unsigned char all;
} BAITE;
typedef union
{
struct
{
unsigned short int bit0: 1;
unsigned short int bit1: 1;
unsigned short int bit2: 1;
unsigned short int bit3: 1;
unsigned short int bit4: 1;
unsigned short int bit5: 1;
unsigned short int bit6: 1;
unsigned short int bit7: 1;
unsigned short int bit8: 1;
unsigned short int bit9: 1;
unsigned short int bitA: 1;
unsigned short int bitB: 1;
unsigned short int bitC: 1;
unsigned short int bitD: 1;
unsigned short int bitE: 1;
unsigned short int bitF: 1;
} bit;
struct
{
unsigned short int quad_0 :4;
unsigned short int quad_1 :4;
unsigned short int quad_2 :4;
unsigned short int quad_3 :4;
} qua;
struct
{
unsigned short int byte_0 :8;
unsigned short int byte_1 :8;
} byt;
unsigned short int all;
} WORDE;
typedef union
{
struct
{
unsigned int bit00: 1;
unsigned int bit01: 1;
unsigned int bit02: 1;
unsigned int bit03: 1;
unsigned int bit04: 1;
unsigned int bit05: 1;
unsigned int bit06: 1;
unsigned int bit07: 1;
unsigned int bit08: 1;
unsigned int bit09: 1;
unsigned int bit0A: 1;
unsigned int bit0B: 1;
unsigned int bit0C: 1;
unsigned int bit0D: 1;
unsigned int bit0E: 1;
unsigned int bit0F: 1;
unsigned int bit10: 1;
unsigned int bit11: 1;
unsigned int bit12: 1;
unsigned int bit13: 1;
unsigned int bit14: 1;
unsigned int bit15: 1;
unsigned int bit16: 1;
unsigned int bit17: 1;
unsigned int bit18: 1;
unsigned int bit19: 1;
unsigned int bit1A: 1;
unsigned int bit1B: 1;
unsigned int bit1C: 1;
unsigned int bit1D: 1;
unsigned int bit1E: 1;
unsigned int bit1F: 1;
} bit;
struct
{
unsigned int quad_0 :4;
unsigned int quad_1 :4;
unsigned int quad_2 :4;
unsigned int quad_3 :4;
unsigned int quad_4 :4;
unsigned int quad_5 :4;
unsigned int quad_6 :4;
unsigned int quad_7 :4;
} qua;
struct
{
unsigned int byte_0 :8;
unsigned int byte_1 :8;
unsigned int byte_2 :8;
unsigned int byte_3 :8;
} byt;
struct
{
unsigned int word_0 :16;
unsigned int word_1 :16;
} wrd;
unsigned int all;
} LONGE;
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -32,12 +32,15 @@ extern "C" {
/* USER CODE END Includes */
extern TIM_HandleTypeDef htim2;
extern TIM_HandleTypeDef htim4;
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
void MX_TIM2_Init(void);
void MX_TIM4_Init(void);
/* USER CODE BEGIN Prototypes */

52
Core/Inc/usart.h Normal file
View File

@@ -0,0 +1,52 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file usart.h
* @brief This file contains all the function prototypes for
* the usart.c file
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USART_H__
#define __USART_H__
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "main.h"
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
extern UART_HandleTypeDef huart4;
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
void MX_UART4_Init(void);
/* USER CODE BEGIN Prototypes */
/* USER CODE END Prototypes */
#ifdef __cplusplus
}
#endif
#endif /* __USART_H__ */

View File

@@ -21,6 +21,27 @@
#include "can.h"
/* USER CODE BEGIN 0 */
#include "message.h"
#include "gpio.h"
#include "boot_jump.h"
void CAN_filterConfig(void);
CAN_TxHeaderTypeDef TxHeader;
CAN_RxHeaderTypeDef RxHeader;
CAN_FilterTypeDef sFilterConfig;
CAN_TxHeaderTypeDef msgHeaderSend;
uint8_t msgDataSend[8];
uint32_t mailBoxNum = 0;
uint8_t TxData[8];
uint8_t RxData[8];
uint32_t TxMailbox;
uint32_t TX_box_ID = 0;
uint32_t RX_box_ID = 0;
uint32_t BC_box_ID = 0;
/* USER CODE END 0 */
@@ -55,6 +76,20 @@ void MX_CAN_Init(void)
}
/* USER CODE BEGIN CAN_Init 2 */
CAN_filterConfig();
// CAN start
if (HAL_CAN_Start(&hcan) != HAL_OK)
{
Error_Handler();
}
// CAN notifications (interrupts)
if (HAL_CAN_ActivateNotification(&hcan, CAN_IT_RX_FIFO0_MSG_PENDING | CAN_IT_TX_MAILBOX_EMPTY) != HAL_OK)
{
Error_Handler();
}
/* USER CODE END CAN_Init 2 */
}
@@ -124,5 +159,151 @@ void HAL_CAN_MspDeInit(CAN_HandleTypeDef* canHandle)
}
/* USER CODE BEGIN 1 */
void CAN_filterConfig(void)
{
sFilterConfig.FilterBank = 0;
sFilterConfig.FilterMode = CAN_FILTERMODE_IDMASK;
sFilterConfig.FilterScale = CAN_FILTERSCALE_32BIT;
sFilterConfig.FilterIdHigh = 0x0000;
sFilterConfig.FilterIdLow = 0x0000;
sFilterConfig.FilterMaskIdHigh = 0x0000;
sFilterConfig.FilterMaskIdLow = 0x0000;
sFilterConfig.FilterFIFOAssignment = CAN_RX_FIFO0;
sFilterConfig.FilterActivation = ENABLE;
sFilterConfig.SlaveStartFilterBank = 14;
if (HAL_CAN_ConfigFilter(&hcan, &sFilterConfig) != HAL_OK)
{
Error_Handler();
} }
void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan_i)
{
CAN_RxHeaderTypeDef msgHeader;
uint8_t msgData[8];
unsigned int adr,qua;
unsigned short Data[4];
if (HAL_CAN_GetRxMessage(hcan_i, CAN_RX_FIFO0, &msgHeader, msgData) != HAL_OK)
{
/* Reception Error */
Error_Handler();
}
if(msgData[0] == CMD_GOTOBOOT)
{
JumpToBootloader();
}
else if(msgData[0] == CMD_RESET)
{
NVIC_SystemReset();
}
if((msgHeader.ExtId & 0xFF00000) != RX_box_ID)
if((msgHeader.ExtId & 0xFF00000) != BC_box_ID) return;
adr = msgHeader.ExtId & 0xFFFF;
qua = msgHeader.DLC/2;
Data[0] = msgData[0]; Data[0] = (Data[0]<<8) | msgData[1];
Data[1] = msgData[2]; Data[1] = (Data[1]<<8) | msgData[3];
Data[2] = msgData[4]; Data[2] = (Data[2]<<8) | msgData[5];
Data[3] = msgData[6]; Data[3] = (Data[3]<<8) | msgData[7];
if(qua ) if(adr < Modbus_LEN) modbus[adr] = Data[0]; adr++;
if(qua>1) if(adr < Modbus_LEN) modbus[adr] = Data[1]; adr++;
if(qua>2) if(adr < Modbus_LEN) modbus[adr] = Data[2]; adr++;
if(qua>3) if(adr < Modbus_LEN) modbus[adr] = Data[3];
LED_1_TGL;
}
int CAN_send(uint16_t data[], int Addr, int Qua)
{
uint16_t wait = 1000;
static uint8_t att=0;
uint8_t i;
while(wait-- && (HAL_CAN_GetTxMailboxesFreeLevel(&hcan) == 0));
if (HAL_CAN_GetTxMailboxesFreeLevel(&hcan) != 0)
{
msgHeaderSend.IDE = CAN_ID_EXT;
msgHeaderSend.ExtId = TX_box_ID | (Addr & 0xFFFF);
msgHeaderSend.DLC = Qua*2;
msgDataSend[0] = (data[Addr ]>>8) & 0x00ff;
msgDataSend[1] = (data[Addr ] ) & 0x00ff;
msgDataSend[2] = (data[Addr+1]>>8) & 0x00ff;
msgDataSend[3] = (data[Addr+1] ) & 0x00ff;
msgDataSend[4] = (data[Addr+2]>>8) & 0x00ff;
msgDataSend[5] = (data[Addr+2] ) & 0x00ff;
msgDataSend[6] = (data[Addr+3]>>8) & 0x00ff;
msgDataSend[7] = (data[Addr+3] ) & 0x00ff;
HAL_CAN_AddTxMessage(&hcan, &msgHeaderSend, msgDataSend, &mailBoxNum);
att=0;
return 1;
}
else
{
if(att>=3)
{
MX_CAN_Init();
LED_0_OFF;
LED_1_OFF;
for(i=0;i<8;i++)
{
LED_1_TGL; HAL_Delay(30);
LED_1_TGL; HAL_Delay(30);
LED_0_TGL; HAL_Delay(30);
LED_0_TGL; HAL_Delay(30);
} }
else
{
att++;
HAL_CAN_Stop(&hcan);
HAL_CAN_Start(&hcan);
LED_0_OFF;
LED_1_OFF;
for(i=0;i<10;i++)
{
LED_0_TGL;
LED_1_TGL; HAL_Delay(30);
} }
return 0;
} }
void Setup_CAN_addr(uint8_t mode)
{
BC_box_ID = 0x9F<<20;
RX_box_ID = (0x80+mode)<<20;
TX_box_ID = RX_box_ID | (1L<<28);
}
// Успешная отправка - моргание диодом
void HAL_CAN_TxMailbox0CompleteCallback(CAN_HandleTypeDef *hcan)
{
LED_0_TGL;
}
void HAL_CAN_TxMailbox1CompleteCallback(CAN_HandleTypeDef *hcan)
{
LED_0_TGL;
}
void HAL_CAN_TxMailbox2CompleteCallback(CAN_HandleTypeDef *hcan)
{
LED_0_TGL;
}
// Ошибки: выключение диода
void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan)
{
LED_0_OFF;
}
/* USER CODE END 1 */

196
Core/Src/crc16.c Normal file
View File

@@ -0,0 +1,196 @@
#include "crc16.h"
#define MAKE_TABS 0 /* Builds tables below */
#define FAST_CRC 1 /* If fast CRC should be used */
#define ONLY_CRC16 1
#define Poln 0xA001
#if FAST_CRC & !MAKE_TABS
#if !ONLY_CRC16
static WORD crc_ccitt_tab[] = {
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
};
#endif
WORD crc_16_tab[] = {
0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,
0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,
0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,
0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,
0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,
0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,
0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,
0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,
0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,
0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,
0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,
0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,
0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,
0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,
0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,
0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,
0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,
0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,
0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,
0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,
0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,
0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,
0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,
0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,
0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,
0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,
0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,
0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,
0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,
0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,
0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,
0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040
};
#endif
#if !ONLY_CRC16
/* CRC-CCITT is based on the polynomial x^16 + x^12 + x^5 + 1. Bits */
/* are sent MSB to LSB. */
unsigned int get_crc_ccitt(unsigned int crc,unsigned int *buf,unsigned long size )
{
#if !(FAST_CRC & !MAKE_TABS)
register int i;
#endif
while (size--) {
#if FAST_CRC & !MAKE_TABS
crc = (crc << 8) ^ crc_ccitt_tab[ (crc >> 8) ^ *buf++ ];
#else
crc ^= (WORD)(*buf++) << 8;
for (i = 0; i < 8; i++) {
if (crc & 0x8000)
crc = (crc << 1) ^ 0x1021;
else
crc <<= 1;
}
#endif
} return crc;
}
#endif
/* CRC-16 is based on the polynomial x^16 + x^15 + x^2 + 1. Bits are */
/* sent LSB to MSB. */
unsigned int get_crc_16(unsigned int crc,unsigned int *buf,unsigned long size )
{
#if !(FAST_CRC & !MAKE_TABS)
register unsigned int i;
register unsigned int ch;
#endif
while (size--) {
#if FAST_CRC & !MAKE_TABS
crc = (crc >> 8) ^ crc_16_tab[ (crc ^ *buf++) & 0xff ];
crc = crc & 0xffff;
#else
ch = *buf++;
for (i = 0; i < 8; i++) {
if ((crc ^ ch) & 1)
crc = (crc >> 1) ^ 0xa001;
else
crc >>= 1;
ch >>= 1;
}
#endif
} return (crc & 0xffff);
}
unsigned int get_crc_16b(unsigned int crc,unsigned int *buf,unsigned long size )
{
unsigned int x, dword, byte;
unsigned long i;
for (i = 0; i < size; i++)
{
x = i % 2;
dword = buf[i/2];
// dword = *buf;
if (x == 0)
{
byte = ((dword >> 8)&0xFF);
}
if (x == 1)
{
byte = (dword & 0xFF);
}
crc = (crc >> 8) ^ crc_16_tab[ (crc ^ (byte) ) & 0xff ];
crc = crc & 0xffff;
// crc = crc + ((byte) & 0xff);
}
return (crc & 0xffff);
}
int get_crc16(uint16_t *buf, int size )
{
int crc16,i,j;
crc16=0xFFFF;
for(i=0;i<size;i++)
{
crc16=crc16^(buf[i]&0xFF);
for (j=0;j<8;j++)
if(crc16&1) crc16=(crc16>>1)^Poln;
else crc16=crc16>>1;
crc16=crc16^((buf[i]>>8)&0xFF);
for (j=0;j<8;j++)
if(crc16&1) crc16=(crc16>>1)^Poln;
else crc16=crc16>>1;
}
return crc16;
}

49
Core/Src/eeprom.c Normal file
View File

@@ -0,0 +1,49 @@
#include "eeprom.h"
void putIntoEeprom(uint16_t lenght, uint16_t* param)
{
uint32_t adr = FLASH_EEPROM_BASE;
//uint32_t p = FLASH_STARTO;
HAL_StatusTypeDef flash_ok = HAL_ERROR;
while(flash_ok != HAL_OK)
{flash_ok = HAL_FLASH_Unlock();}
FLASH_EraseInitTypeDef erase;
uint32_t pageError = 0x0;
erase.TypeErase = FLASH_TYPEERASE_PAGES;
erase.PageAddress = FLASH_EEPROM_BASE;
erase.NbPages = 0x01;
flash_ok = HAL_FLASHEx_Erase(&erase, &pageError);
flash_ok = HAL_ERROR;
while(flash_ok != HAL_OK)
{flash_ok = HAL_FLASH_Lock();}
flash_ok = HAL_ERROR;
while(flash_ok != HAL_OK)
{flash_ok = HAL_FLASH_Unlock();}
flash_ok = HAL_ERROR;
while(flash_ok != HAL_OK)
{
for(int i=0; i<(lenght); i++)
{
flash_ok = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, adr, *param);
param++;
adr += 0x2;
}
}
flash_ok = HAL_ERROR;
while(flash_ok != HAL_OK)
{flash_ok = HAL_FLASH_Lock();}
}
uint16_t watInTheFlash(uint32_t adress)
{
return (*(uint32_t*) adress);
}

View File

@@ -22,7 +22,7 @@
#include "gpio.h"
/* USER CODE BEGIN 0 */
#include "tim.h"
/* USER CODE END 0 */
/*----------------------------------------------------------------------------*/
@@ -42,31 +42,27 @@ void MX_GPIO_Init(void)
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOD_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_GPIOB_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, LED1_Pin|LED2_Pin|PVT4_Pin|PVT3_Pin
HAL_GPIO_WritePin(GPIOC, LED2_Pin|LED3_Pin|PVT4_Pin|PVT3_Pin
|PVT2_Pin|PVT1_Pin, GPIO_PIN_RESET);
/*Configure GPIO pins : PCPin PCPin PCPin PC0
PC1 PCPin PCPin */
GPIO_InitStruct.Pin = IN_06_Pin|SELEKT_PCH_Pin|IN_05_Pin|GPIO_PIN_0
|GPIO_PIN_1|J1_Pin|J2_Pin;
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOB, LED0_Pin|LED1_Pin, GPIO_PIN_SET);
/*Configure GPIO pins : PCPin PCPin PCPin PCPin
PCPin */
GPIO_InitStruct.Pin = IN_06_Pin|SELEKT_PCH_Pin|IN_05_Pin|J2_Pin
|J3_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pins : PD0 PD1 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/*Configure GPIO pins : PCPin PCPin PCPin PCPin
PCPin PCPin */
GPIO_InitStruct.Pin = LED1_Pin|LED2_Pin|PVT4_Pin|PVT3_Pin
GPIO_InitStruct.Pin = LED2_Pin|LED3_Pin|PVT4_Pin|PVT3_Pin
|PVT2_Pin|PVT1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
@@ -74,34 +70,82 @@ void MX_GPIO_Init(void)
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pins : PAPin PAPin PAPin PAPin
PAPin PAPin PA6 PAPin */
PAPin PAPin PAPin PAPin */
GPIO_InitStruct.Pin = IN_04_Pin|IN_03_Pin|IN_02_Pin|IN_01_Pin
|IN_14_Pin|IN_13_Pin|GPIO_PIN_6|J0_Pin;
|IN_14_Pin|IN_13_Pin|J0_Pin|J1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure GPIO pins : PBPin PBPin PBPin PBPin
PB11 PBPin PBPin PBPin
PBPin */
GPIO_InitStruct.Pin = J3_Pin|IN_12_Pin|BOOT1_Pin|IN_11_Pin
|GPIO_PIN_11|IN_10_Pin|IN_09_Pin|IN_08_Pin
|IN_07_Pin;
PBPin PBPin */
GPIO_InitStruct.Pin = IN_12_Pin|IN_11_Pin|BOOT1_Pin|IN_10_Pin
|IN_09_Pin|IN_08_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = IN_07_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING_FALLING;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(IN_07_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PA8 */
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
/*Configure peripheral I/O remapping */
__HAL_AFIO_REMAP_PD01_ENABLE();
/*Configure GPIO pins : PBPin PBPin */
GPIO_InitStruct.Pin = LED0_Pin|LED1_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
}
/* USER CODE BEGIN 2 */
#define MEASURE_PIN IN_07_Pin
#define MEASURE_PORT IN_07_GPIO_Port
volatile uint32_t last_tick = 0;
volatile uint32_t high_time = 0;
volatile uint32_t period_time = 0;
volatile uint8_t first_edge = 1;
float duty_cycle = 0.0f;
float frequency = 0.0f;
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if (GPIO_Pin != MEASURE_PIN) return;
static uint16_t last_tick = 0;
static uint16_t low_time = 0;
static uint16_t high_time = 0;
uint16_t now = (uint16_t)__HAL_TIM_GET_COUNTER(&htim2);
uint16_t delta = (now >= last_tick) ? (now - last_tick) : (uint16_t)(0x10000 + now - last_tick);
last_tick = now;
if (HAL_GPIO_ReadPin(MEASURE_PORT, MEASURE_PIN) == GPIO_PIN_SET) {
// RISING → закончился LOW
low_time = delta;
} else {
// FALLING → закончился HIGH
high_time = delta;
uint32_t period = (uint32_t)high_time + (uint32_t)low_time;
if (period > 0) {
frequency = 1e6f / period; // Гц
duty_cycle = (high_time * 100.0f) / period; // %
}
}
}
/* USER CODE END 2 */

104
Core/Src/lampa.c Normal file
View File

@@ -0,0 +1,104 @@
#include "main.h"
#include "gpio.h"
#include "lampa.h"
#include "struc.h"
#include "message.h"
#include "package.h"
void ReadEnteres(void)
{
WORDE input, alarm, error;
input.all=0;
input.bit.bit0 = !IN_06; // Контроль ИП1 (питание управляющего контроллера)
input.bit.bit1 = !IN_05; // Контроль ИП2 (питание периферийных устройств)
input.bit.bit2 = !IN_04; // Контроль ИП3 (питание эл. замков, ламп освещения, УКСИ)
input.bit.bit3 = !IN_03; // Контроль ИП4 (питание датчиков тока и напряжения +)
input.bit.bit4 = !IN_02; // Контроль ИП5 (питание датчиков тока и напряжения )
input.bit.bit5 = !IN_01; // Контроль ИП6 (питание драйверов)
input.bit.bit6 = !IN_07; // Контроль 3х фазного 380 В
input.bit.bit7 = !IN_08; // Заряд накопителя
input.bit.bit8 = !IN_09; // Разряд накопителя
input.bit.bit9 = IN_10; // Авария в сети 24 В, единственный нормально замкнутый сигнал
input.bit.bitA = (Squazh_U[0] > Squazh_L[0]); // Контроль питания ЛСУ
input.bit.bitB = (Squazh_U[1] > Squazh_L[1]); // Контроль питания СВО
input.bit.bitC = (Squazh_U[2] > Squazh_L[2]); // резерв
input.bit.bitD = (Squazh_U[3] > Squazh_L[3]); // Контроль питания СКК
/*
input.bit.bitA = !IN_11; // Контроль питания ЛСУ
input.bit.bitB = !IN_12; // Контроль питания СВО
input.bit.bitC = !IN_13; // резерв
input.bit.bitD = !IN_14; // Контроль питания СКК
*/
Inputs.all = input.all;
// Обычно неисправность это отсутствие сигнала, который есть в маске неисправностей
alarm.all = ~Inputs.all & Alarm_mask.all;
alarm.bit.bit7 = 0; // Заряд накопителя никогда не неисправность
alarm.bit.bit8 = Inputs.bit.bit8; // Разряд накопителя всегда неисправность
alarm.bit.bit9 = Inputs.bit.bit9; // Авария в сети 24 В всегда неисправность
Alarms = alarm;
// Обычно авария это отсутствие сигнала, который есть в маске аварий
error.all = ~Inputs.all & Error_mask.all;
error.bit.bit9 = Inputs.bit.bit9; // Авария в сети 24 В всегда авария
Errors = error;
}
uint16_t ReadJumpers(void)
{
WORDE input;
input.all = 0;
input.bit.bit0 = !J0;
input.bit.bit1 = !J1;
input.bit.bit2 = !J2;
input.bit.bit3 = !J3;
return input.all;
}
uint16_t TestJumper(void)
{
return !Jselect;
}
void ReadSeanus(void)
{
static uint32_t cownt=0;
static uint32_t sum_u[4];
static float flt_u[4];
static uint8_t Ist=1;
uint8_t i;
if(Ist)
{
Ist=0;
for(i=0;i<4;i++)
{
Squazh_U[i]=100;
flt_u[i]=10000.0;
sum_u[i]=0;
} }
sum_u[0] += !IN_11;
sum_u[1] += !IN_12;
sum_u[2] += !IN_13;
sum_u[3] += !IN_14;
if(++cownt>=10000)
{
cownt=0;
for(i=0;i<4;i++)
{
flt_u[i] +=((float)sum_u[i]-flt_u[i])/3+1;
Squazh_U[i]=flt_u[i]/100;
sum_u[i] = 0;
} } }

View File

@@ -21,11 +21,15 @@
#include "can.h"
#include "iwdg.h"
#include "tim.h"
#include "usart.h"
#include "gpio.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "package.h"
#include "message.h"
#include "lampa.h"
#include "boot_jump.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@@ -47,6 +51,16 @@
/* USER CODE BEGIN PV */
FLAG flag;
static long Falling_asleep;
uint8_t CanGO=0, timGo=0;
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
@@ -68,7 +82,11 @@ int main(void)
{
/* USER CODE BEGIN 1 */
static int i,j,n,z,mask,qua;
static int cancount[2]={1,2},cancell[2]={0,0},candid[2]={0,0};
static unsigned int masca[8];
static uint16_t precom=0;
App_Init();
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
@@ -84,26 +102,275 @@ int main(void)
SystemClock_Config();
/* USER CODE BEGIN SysInit */
MX_IWDG_Init();
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_CAN_Init();
MX_TIM2_Init();
MX_TIM4_Init();
MX_IWDG_Init();
MX_UART4_Init();
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start(&htim2);
LED_0_ON;
LED_1_OFF;
LED_2_ON;
LED_3_OFF;
for(i=0;i<10;i++)
{
LED_0_TGL;
LED_1_TGL;
LED_2_TGL;
LED_3_TGL;
HAL_Delay(50);
}
Mode = ReadJumpers()+1;
Setup_CAN_addr(Mode-1);
Load_params();
LastMode = Mode;
Protokol = PROTOKOL;
command=0;
for(i=0;i<0x80;i++)
county[i]=1;
for(i=0;i<8;i++)
masca[i]=0;
for(i=0;i<2;i++)
CanRound[i]=
CanCycle[i]=0;
timGo=1;
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
{
//=== БЛОК ПРИНУДИТЕЛЬНОЙ ПАУЗЫ ===//
if (flag.force_pause)
{
__disable_irq(); // Отключаем все прерывания
for(int i = 0; i < flag.pause; i++); // Пустой цикл для задержки
__enable_irq(); // Включаем прерывания обратно
}
//=== ОБРАБОТКА CAN-ШИНЫ ===//
if (CanGO) // Флаг разрешения работы с CAN-шиной
{
CanGO = 0; // Сбрасываем флаг
// Увеличиваем счетчики ожидания для всех элементов (ограничение 30000)
for(i = 0; i < 0x80; i++)
if(espero[i] < 30000)
espero[i]++;
// Уменьшаем счетчики задержки для двух CAN-каналов
for(i = 0; i < 2; i++)
if(cancount[i])
cancount[i]--;
else
cancell[i] = 0; // Сброс позиции, если счетчик обнулился
}
//=== ОБРАБОТКА КАНАЛОВ CAN ===//
for(i = 0; i < 2; i++) // Для каждого из двух CAN-каналов
{
if (Cancount[i] && !cancount[i]) // Если есть задержка и счетчик обнулился
{
// Поиск следующего элемента для обработки
while(1)
{
if (cancell[i] >= 0x80) // Если достигли конца диапазона
{
cancell[i] = 0; // Сброс позиции
if (candid[i]) // Если есть кандидат для обработки
{
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; // Переход к следующей группе
else
{
// Поиск первого установленного бита в маске
while (!(mask & 1))
{
cancell[i]++;
mask >>= 1;
}
break; // Найден активный элемент
}
}
z = 1; // Флаг нормального состояния
// Проверка превышения времени ожидания
if (espero[cancell[i]] > CanRestart[i])
{
county[cancell[i]] = 1; // Установка флага необходимости отправки
z = 0; // Флаг аварийного состояния
}
// Проверка изменения данных для отправки
if (modbus[cancell[i]] != archiv[cancell[i]])
{
if (cancell[i] == keys) // Если это ключевой элемент
{
// Установка флагов для группы элементов
for(j = 0; j < CanRptLen; j++)
county[cancell[i] + j] = CanRptVez;
}
else
{
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; // Корректировка позиции
// Обработка каждого элемента в группе
for(j = 0; j < qua; j++)
{
n = cancell[i] + j;
archiv[n] = modbus[n]; // Сохранение текущего значения
espero[n] = 0; // Сброс счетчика ожидания
if (county[n]) // Если элемент требует обработки
{
county[n]--; // Уменьшение счетчика
// Если счетчик обнулился и это не циклический элемент
if (!county[n] && n != cancyclo + i)
candid[i] = 1; // Установка флага кандидата
}
// Обновление маски активных элементов
if (!county[n])
masca[n / 0x10] |= (1 << (n & 0x0F));
}
// Отправка данных через CAN-шину
CAN_send(archiv, 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) // Если все элементы обработаны
{
// Сброс соответствующих битов маски
for(j = 0; j < 8; j++)
masca[j] &= ~Maska[i][j];
CanRound[i]++; // Увеличение счетчика раундов
}
// Управление параллельной обработкой каналов
if (Cancount[i] > 1 && !cancount[!i])
cancount[!i] = 1; // Запуск другого канала
}
else
{
cancell[i]++; // Переход к следующему элементу
}
}
}
Next: // Метка для перехода к следующей части цикла
//=== ЧТЕНИЕ ВХОДНЫХ СИГНАЛОВ ===//
ReadEnteres(); // Функция чтения дискретных входов
//=== УПРАВЛЕНИЕ ВЫХОДНЫМИ СИГНАЛАМИ ===//
if (Errors.all | Alarms.all)
Pvt4_OFF; // Выключение сигнала "Система ВЭП в норме"
else
Pvt4_ON; // Включение сигнала "Система ВЭП в норме"
if (Errors.all)
Pvt3_ON; // Включение сигнала "Авария системы ВЭП"
else
Pvt3_OFF; // Выключение сигнала "Авария системы ВЭП"
if (Falling_asleep)
Pvt2_ON; // Включение сигнала управления
else
Pvt2_OFF; // Выключение сигнала управления
//=== ОБРАБОТКА КОМАНД ===//
if (Commands != precom) // Если команды изменились
{
command = (~precom | command) & Commands; // Обновление активных команд
}
precom = Commands; // Сохранение текущих команд для следующей итерации
//=== ОБРАБОТКА СИСТЕМНЫХ КОМАНД ===//
if (cDefParam) // Команда сброса параметров по умолчанию
{
cDefParam = 0;
Default_params(); // Вызов функции сброса параметров
}
if (cSaveParam) // Команда сохранения параметров
{
cSaveParam = 0;
Save_params(); // Вызов функции сохранения параметров
}
if (cLoadParam) // Команда загрузки параметров
{
cLoadParam = 0;
Load_params(); // Вызов функции загрузки параметров
}
if (cCanReset) // Команда сброса CAN-системы
{
cCanReset = 0;
// Сброс всех счетчиков и состояний CAN-системы
for(i = 0; i < 0x80; i++)
county[i] = 1; // Установка флагов отправки для всех элементов
for(i = 0; i < 2; i++)
{
CanCycle[i] = 0; // Сброс счетчиков циклов
CanRound[i] = 0; // Сброс счетчиков раундов
cancount[i] = 0; // Сброс счетчиков задержки
cancell[i] = 0; // Сброс позиций
}
for(i = 0; i < 8; i++)
masca[i] = 0; // Сброс масок
}
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
}
/* USER CODE END 3 */
}
@@ -144,10 +411,182 @@ void SystemClock_Config(void)
{
Error_Handler();
}
HAL_RCC_MCOConfig(RCC_MCO, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
HAL_RCC_MCOConfig(RCC_MCO, RCC_MCO1SOURCE_PLLCLK, RCC_MCODIV_1);
}
/* 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;
//=== ПРОВЕРКА ДИАПАЗОНА ===//
// Если номер элемента вне допустимого диапазона (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; // Выключение нормального светодиода
}
/////////////////////////////////////////////
/* USER CODE END 4 */
@@ -163,12 +602,15 @@ void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
/* USER CODE BEGIN Callback 0 */
if(htim->Instance == TIM4) //check if the interrupt comes from TIM4
ReadSeanus();
/* USER CODE END Callback 0 */
if (htim->Instance == TIM8) {
HAL_IncTick();
}
Millisecond();
}
/* USER CODE BEGIN Callback 1 */
/* USER CODE END Callback 1 */
}

129
Core/Src/message.c Normal file
View File

@@ -0,0 +1,129 @@
#include "stm32f1xx_hal.h"
#include "struc.h"
#include "crc16.h"
#include "package.h"
#include "message.h"
#include "eeprom.h"
uint16_t params[Modbus_LEN+1],
modbus[Modbus_LEN],
archiv[Modbus_LEN],
county[Modbus_LEN],
espero[Modbus_LEN];
uint16_t Mode;
LONGE* outputs;
void Init_packMask(void);
uint16_t Maska[2][8];
void Default_params()
{
unsigned int i;
for(i=0;i<Modbus_LEN;i++)
{
modbus[i] = 0;
}
Alarm_mask.all = 0x3FFF;
Alarm_mask.bit.bit7 = 0; // Заряд накопителя
Alarm_mask.bit.bitC = 0; // резерв
Error_mask.all = 0;
Error_mask.bit.bit9 = 1; // Авария в сети 24 В
for(i=0;i<4;i++)
Squazh_L[i] = 90;
LastMode = Mode;
Sleep_time = 60; // минута чтобы отключиться
Cancount[m_FAST] = 5; // * 10msec, пауза между посылками CAN
Cancount[m_SLOW] = 100; // * 10msec, пауза между посылками CAN
CanWait[m_FAST] = 1; // * 10msec, пауза после цикла
CanWait[m_SLOW] = 1; // * 10msec, пауза после цикла
CanRestart[m_FAST] = 500; // * 10msec, перезапуск посылки
CanRestart[m_SLOW] = 1000; // * 10msec, перезапуск посылки
CanRptVez = 3; // кол-во повторений посылки «keys»
CanRptLen = 3; // длина повтораемой посылки «keys»
Brightness = 10;
Protokol = PROTOKOL;
}
void Load_params()
{
unsigned int i,crc;
unsigned int adr = FLASH_EEPROM_BASE;
for(int j=0; j<Modbus_LEN+1; j+=1)
{
params[j] = watInTheFlash(adr) & 0xFFFF;
adr += 0x2;
}
crc = get_crc16(params,Modbus_LEN);
if( (crc==params[Modbus_LEN]) &&
(crc !=0xFFFF) &&
(Mode == params[126]))
{
for(i=0;i<Modbus_LEN;i++) modbus[i] = params[i];
Commands=0;
}
else
{
Default_params();
Save_params();
}
Init_packMask();
}
void Save_params()
{
unsigned int i,dif=0;
for(i=0;i<Modbus_LEN;i++)
if(params[i] != modbus[i])
{
params[i] = modbus[i];
dif=1;
}
if(dif)
{
params[Modbus_LEN] = get_crc16(params,Modbus_LEN);
putIntoEeprom(Modbus_LEN+1, params);
} }
void Init_packMask()
{
int i;
for(i=0;i<8;i++)
{
Maska[m_FAST][i] = 0;
Maska[m_SLOW][i] = 0;
}
Maska[m_FAST][0]|= 0x0007; // Дискретные входы, неисправности и аварии
Maska[m_SLOW][0]|= 0x0300; // Маски на неисправности и аварии
Maska[m_SLOW][1]|= 0x0003; // Состояние джамперов
Maska[m_SLOW][1]|= 0x0F00; // Скважность датчика напряжения
Maska[m_SLOW][3]|= 0x000F; // Аварийная уставка скважности
Maska[m_SLOW][4]|= 0x0100; // Время автоматического отключения
Maska[m_SLOW][6]|= 0x05FF; // Яркость лампы и периоды посылок
Maska[m_FAST][7]|= 0x0100; // Счетчик посылок
Maska[m_SLOW][7]|= 0x0E00; // Счетчик посылок
Maska[m_SLOW][7]|= 0xE000; // Протокол, адрес, команды
}

View File

@@ -57,6 +57,7 @@
/* External variables --------------------------------------------------------*/
extern CAN_HandleTypeDef hcan;
extern TIM_HandleTypeDef htim4;
extern UART_HandleTypeDef huart4;
extern TIM_HandleTypeDef htim8;
/* USER CODE BEGIN EV */
@@ -243,6 +244,20 @@ void TIM4_IRQHandler(void)
/* USER CODE END TIM4_IRQn 1 */
}
/**
* @brief This function handles EXTI line[15:10] interrupts.
*/
void EXTI15_10_IRQHandler(void)
{
/* USER CODE BEGIN EXTI15_10_IRQn 0 */
/* USER CODE END EXTI15_10_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(IN_07_Pin);
/* USER CODE BEGIN EXTI15_10_IRQn 1 */
/* USER CODE END EXTI15_10_IRQn 1 */
}
/**
* @brief This function handles TIM8 update interrupt.
*/
@@ -257,6 +272,20 @@ void TIM8_UP_IRQHandler(void)
/* USER CODE END TIM8_UP_IRQn 1 */
}
/**
* @brief This function handles UART4 global interrupt.
*/
void UART4_IRQHandler(void)
{
/* USER CODE BEGIN UART4_IRQn 0 */
/* USER CODE END UART4_IRQn 0 */
HAL_UART_IRQHandler(&huart4);
/* USER CODE BEGIN UART4_IRQn 1 */
/* USER CODE END UART4_IRQn 1 */
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

View File

@@ -42,7 +42,8 @@
*
******************************************************************************
*/
#ifndef SYSTEM_STM32F1XX_C
#define SYSTEM_STM32F1XX_C
/** @addtogroup CMSIS
* @{
*/
@@ -404,3 +405,5 @@ void SystemInit_ExtMemCtl(void)
/**
* @}
*/
#endif /* SYSTEM_STM32F1XX_C */

View File

@@ -24,8 +24,49 @@
/* USER CODE END 0 */
TIM_HandleTypeDef htim2;
TIM_HandleTypeDef htim4;
/* TIM2 init function */
void MX_TIM2_Init(void)
{
/* USER CODE BEGIN TIM2_Init 0 */
/* USER CODE END TIM2_Init 0 */
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
TIM_MasterConfigTypeDef sMasterConfig = {0};
/* USER CODE BEGIN TIM2_Init 1 */
/* USER CODE END TIM2_Init 1 */
htim2.Instance = TIM2;
htim2.Init.Prescaler = 64-1;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 65535;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
if (HAL_TIM_Base_Init(&htim2) != HAL_OK)
{
Error_Handler();
}
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) != HAL_OK)
{
Error_Handler();
}
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN TIM2_Init 2 */
/* USER CODE END TIM2_Init 2 */
}
/* TIM4 init function */
void MX_TIM4_Init(void)
{
@@ -63,6 +104,10 @@ void MX_TIM4_Init(void)
}
/* USER CODE BEGIN TIM4_Init 2 */
HAL_TIM_Base_MspInit(&htim4);
HAL_TIM_Base_Start_IT(&htim4);
/* USER CODE END TIM4_Init 2 */
}
@@ -70,7 +115,18 @@ void MX_TIM4_Init(void)
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM4)
if(tim_baseHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspInit 0 */
/* USER CODE END TIM2_MspInit 0 */
/* TIM2 clock enable */
__HAL_RCC_TIM2_CLK_ENABLE();
/* USER CODE BEGIN TIM2_MspInit 1 */
/* USER CODE END TIM2_MspInit 1 */
}
else if(tim_baseHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspInit 0 */
@@ -90,7 +146,18 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
{
if(tim_baseHandle->Instance==TIM4)
if(tim_baseHandle->Instance==TIM2)
{
/* USER CODE BEGIN TIM2_MspDeInit 0 */
/* USER CODE END TIM2_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_TIM2_CLK_DISABLE();
/* USER CODE BEGIN TIM2_MspDeInit 1 */
/* USER CODE END TIM2_MspDeInit 1 */
}
else if(tim_baseHandle->Instance==TIM4)
{
/* USER CODE BEGIN TIM4_MspDeInit 0 */

121
Core/Src/usart.c Normal file
View File

@@ -0,0 +1,121 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file usart.c
* @brief This file provides code for the configuration
* of the USART instances.
******************************************************************************
* @attention
*
* Copyright (c) 2025 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "usart.h"
/* USER CODE BEGIN 0 */
/* USER CODE END 0 */
UART_HandleTypeDef huart4;
/* UART4 init function */
void MX_UART4_Init(void)
{
/* USER CODE BEGIN UART4_Init 0 */
/* USER CODE END UART4_Init 0 */
/* USER CODE BEGIN UART4_Init 1 */
/* USER CODE END UART4_Init 1 */
huart4.Instance = UART4;
huart4.Init.BaudRate = 115200;
huart4.Init.WordLength = UART_WORDLENGTH_8B;
huart4.Init.StopBits = UART_STOPBITS_1;
huart4.Init.Parity = UART_PARITY_NONE;
huart4.Init.Mode = UART_MODE_TX_RX;
huart4.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart4.Init.OverSampling = UART_OVERSAMPLING_16;
if (HAL_UART_Init(&huart4) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN UART4_Init 2 */
/* USER CODE END UART4_Init 2 */
}
void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
if(uartHandle->Instance==UART4)
{
/* USER CODE BEGIN UART4_MspInit 0 */
/* USER CODE END UART4_MspInit 0 */
/* UART4 clock enable */
__HAL_RCC_UART4_CLK_ENABLE();
__HAL_RCC_GPIOC_CLK_ENABLE();
/**UART4 GPIO Configuration
PC10 ------> UART4_TX
PC11 ------> UART4_RX
*/
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
GPIO_InitStruct.Pin = GPIO_PIN_11;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* UART4 interrupt Init */
HAL_NVIC_SetPriority(UART4_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(UART4_IRQn);
/* USER CODE BEGIN UART4_MspInit 1 */
/* USER CODE END UART4_MspInit 1 */
}
}
void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle)
{
if(uartHandle->Instance==UART4)
{
/* USER CODE BEGIN UART4_MspDeInit 0 */
/* USER CODE END UART4_MspDeInit 0 */
/* Peripheral clock disable */
__HAL_RCC_UART4_CLK_DISABLE();
/**UART4 GPIO Configuration
PC10 ------> UART4_TX
PC11 ------> UART4_RX
*/
HAL_GPIO_DeInit(GPIOC, GPIO_PIN_10|GPIO_PIN_11);
/* UART4 interrupt Deinit */
HAL_NVIC_DisableIRQ(UART4_IRQn);
/* USER CODE BEGIN UART4_MspDeInit 1 */
/* USER CODE END UART4_MspDeInit 1 */
}
}
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */

View File

@@ -0,0 +1,36 @@
// File: STM32F101_102_103_105_107.dbgconf
// Version: 1.0.0
// Note: refer to STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx Reference manual (RM0008)
// STM32F101xx STM32F102xx STM32F103xx STM32F105xx STM32F107xx datasheets
// <<< Use Configuration Wizard in Context Menu >>>
// <h> Debug MCU configuration register (DBGMCU_CR)
// <i> Reserved bits must be kept at reset value
// <o.30> DBG_TIM11_STOP <i> TIM11 counter stopped when core is halted
// <o.29> DBG_TIM10_STOP <i> TIM10 counter stopped when core is halted
// <o.28> DBG_TIM9_STOP <i> TIM9 counter stopped when core is halted
// <o.27> DBG_TIM14_STOP <i> TIM14 counter stopped when core is halted
// <o.26> DBG_TIM13_STOP <i> TIM13 counter stopped when core is halted
// <o.25> DBG_TIM12_STOP <i> TIM12 counter stopped when core is halted
// <o.21> DBG_CAN2_STOP <i> Debug CAN2 stopped when core is halted
// <o.20> DBG_TIM7_STOP <i> TIM7 counter stopped when core is halted
// <o.19> DBG_TIM6_STOP <i> TIM6 counter stopped when core is halted
// <o.18> DBG_TIM5_STOP <i> TIM5 counter stopped when core is halted
// <o.17> DBG_TIM8_STOP <i> TIM8 counter stopped when core is halted
// <o.16> DBG_I2C2_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.15> DBG_I2C1_SMBUS_TIMEOUT <i> SMBUS timeout mode stopped when core is halted
// <o.14> DBG_CAN1_STOP <i> Debug CAN1 stopped when Core is halted
// <o.13> DBG_TIM4_STOP <i> TIM4 counter stopped when core is halted
// <o.12> DBG_TIM3_STOP <i> TIM3 counter stopped when core is halted
// <o.11> DBG_TIM2_STOP <i> TIM2 counter stopped when core is halted
// <o.10> DBG_TIM1_STOP <i> TIM1 counter stopped when core is halted
// <o.9> DBG_WWDG_STOP <i> Debug window watchdog stopped when core is halted
// <o.8> DBG_IWDG_STOP <i> Debug independent watchdog stopped when core is halted
// <o.2> DBG_STANDBY <i> Debug standby mode
// <o.1> DBG_STOP <i> Debug stop mode
// <o.0> DBG_SLEEP <i> Debug sleep mode
// </h>
DbgMCU_CR = 0x00000007;
// <<< end of configuration section >>>

View File

@@ -1,2864 +0,0 @@
T1658 000:003.790 SEGGER J-Link V8.10g Log File
T1658 000:003.892 DLL Compiled: Nov 14 2024 08:38:33
T1658 000:003.897 Logging started @ 2025-08-22 11:50
T1658 000:003.902 Process: C:\Keil_v5\UV4\UV4.exe
T1658 000:003.913 - 3.906ms
T1658 000:003.921 JLINK_SetWarnOutHandler(...)
T1658 000:003.925 - 0.005ms
T1658 000:003.934 JLINK_OpenEx(...)
T1658 000:006.710 Firmware: J-Link V9 compiled May 7 2021 16:26:12
T1658 000:007.233 Firmware: J-Link V9 compiled May 7 2021 16:26:12
T1658 000:007.385 Decompressing FW timestamp took 123 us
T1658 000:012.904 Hardware: V9.10
T1658 000:012.916 S/N: 60145543
T1658 000:012.922 OEM: SEGGER
T1658 000:012.929 Feature(s): RDI, FlashBP, FlashDL, JFlash, GDB
T1658 000:013.562 Bootloader: (FW returned invalid version)
T1658 000:014.306 TELNET listener socket opened on port 19021
T1658 000:014.446 WEBSRV WEBSRV_Init(): Starting webserver thread(s)
T1658 000:014.589 WEBSRV Webserver running on local port 19080
T1658 000:014.692 Looking for J-Link GUI Server exe at: C:\Keil_v5\ARM\Segger\JLinkGUIServer.exe
T1658 000:014.787 Looking for J-Link GUI Server exe at: C:\Program Files\SEGGER\JLink_V810g\JLinkGUIServer.exe
T1658 000:014.823 Forking J-Link GUI Server: C:\Program Files\SEGGER\JLink_V810g\JLinkGUIServer.exe
T1658 000:017.225 J-Link GUI Server info: "J-Link GUI server V8.10g "
T1658 000:017.593 - 13.654ms returns "O.K."
T1658 000:017.612 JLINK_GetEmuCaps()
T1658 000:017.619 - 0.005ms returns 0xB9FF7BBF
T1658 000:017.625 JLINK_TIF_GetAvailable(...)
T1658 000:017.819 - 0.194ms
T1658 000:017.833 JLINK_SetErrorOutHandler(...)
T1658 000:017.837 - 0.004ms
T1658 000:017.868 JLINK_ExecCommand("ProjectFile = "F:\set\from_Dima_Bog\UKSVEP_23550.2_WD\MDK-ARM\JLinkSettings.ini"", ...).
T1658 000:029.107 Ref file found at: C:\Keil_v5\ARM\Segger\JLinkDevices.ref
T1658 000:029.205 REF file references invalid XML file: C:\Program Files\SEGGER\JLink_V810g\JLinkDevices.xml
T1658 000:030.211 - 12.344ms returns 0x00
T1658 000:032.996 JLINK_ExecCommand("Device = STM32F103RC", ...).
T1658 000:035.451 Device "STM32F103RC" selected.
T1658 000:035.739 - 2.721ms returns 0x00
T1658 000:035.751 JLINK_ExecCommand("DisableConnectionTimeout", ...).
T1658 000:035.766 ERROR: Unknown command
T1658 000:035.773 - 0.015ms returns 0x01
T1658 000:035.779 JLINK_GetHardwareVersion()
T1658 000:035.784 - 0.004ms returns 91000
T1658 000:035.789 JLINK_GetDLLVersion()
T1658 000:035.794 - 0.004ms returns 81007
T1658 000:035.800 JLINK_GetOEMString(...)
T1658 000:035.807 JLINK_GetFirmwareString(...)
T1658 000:035.811 - 0.005ms
T1658 000:040.953 JLINK_GetDLLVersion()
T1658 000:040.969 - 0.015ms returns 81007
T1658 000:040.975 JLINK_GetCompileDateTime()
T1658 000:040.979 - 0.004ms
T1658 000:042.323 JLINK_GetFirmwareString(...)
T1658 000:042.333 - 0.009ms
T1658 000:043.699 JLINK_GetHardwareVersion()
T1658 000:043.711 - 0.011ms returns 91000
T1658 000:046.006 JLINK_GetSN()
T1658 000:046.018 - 0.011ms returns 60145543
T1658 000:047.516 JLINK_GetOEMString(...)
T1658 000:050.764 JLINK_TIF_Select(JLINKARM_TIF_JTAG)
T1658 000:051.406 - 0.641ms returns 0x00
T1658 000:051.418 JLINK_HasError()
T1658 000:051.431 JLINK_SetSpeed(50000)
T1658 000:051.482 - 0.050ms
T1658 000:051.491 JLINK_GetIdData(pIdData)
T1658 000:053.045 InitTarget() start
T1658 000:053.059 J-Link Script File: Executing InitTarget()
T1658 000:054.594 JTAG selected. Identifying JTAG Chain...
T1658 000:056.850 TotalIRLen = 9, IRPrint = 0x0011
T1658 000:058.617 JTAG chain detection found 2 devices:
T1658 000:060.052 #0 Id: 0x3BA00477, IRLen: 04, CoreSight JTAG-DP
T1658 000:061.462 #1 Id: 0x06414041, IRLen: 05, STM32 Boundary Scan
T1658 000:062.903 JTAG Chain Identified. Connecting to DAP TAP...
T1658 000:064.358 Successfully connected to selected DAP TAP.
T1658 000:067.294 DAP initialized successfully.
T1658 000:072.083 InitTarget() end - Took 17.5ms
T1658 000:074.274 TotalIRLen = 9, IRPrint = 0x0011
T1658 000:076.285 JTAG chain detection found 2 devices:
T1658 000:077.845 #0 Id: 0x3BA00477, IRLen: 04, CoreSight JTAG-DP
T1658 000:079.305 #1 Id: 0x06414041, IRLen: 05, STM32 Boundary Scan
T1658 000:081.874 DPv0 detected
T1658 000:083.486 Scanning AP map to find all available APs
T1658 000:085.494 AP[1]: Stopped AP scan as end of AP map has been reached
T1658 000:086.986 AP[0]: AHB-AP (IDR: 0x14770011, ADDR: 0x00000000)
T1658 000:088.456 Iterating through AP map to find AHB-AP to use
T1658 000:090.573 AP[0]: Core found
T1658 000:092.464 AP[0]: AHB-AP ROM base: 0xE00FF000
T1658 000:094.416 CPUID register: 0x411FC231. Implementer code: 0x41 (ARM)
T1658 000:098.244 Found Cortex-M3 r1p1, Little endian.
T1658 000:098.517 -- Max. mem block: 0x00010E60
T1658 000:099.520 CPU_ReadMem(4 bytes @ 0xE000EDF0)
T1658 000:099.730 CPU_ReadMem(4 bytes @ 0xE0002000)
T1658 000:101.550 FPUnit: 6 code (BP) slots and 2 literal slots
T1658 000:101.566 CPU_ReadMem(4 bytes @ 0xE000EDFC)
T1658 000:101.761 CPU_WriteMem(4 bytes @ 0xE000EDFC)
T1658 000:101.918 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:102.122 CPU_WriteMem(4 bytes @ 0xE0001000)
T1658 000:102.295 CPU_ReadMem(4 bytes @ 0xE000ED88)
T1658 000:102.467 CPU_WriteMem(4 bytes @ 0xE000ED88)
T1658 000:102.642 CPU_ReadMem(4 bytes @ 0xE000ED88)
T1658 000:102.850 CPU_WriteMem(4 bytes @ 0xE000ED88)
T1658 000:104.519 CoreSight components:
T1658 000:105.984 ROMTbl[0] @ E00FF000
T1658 000:105.999 CPU_ReadMem(64 bytes @ 0xE00FF000)
T1658 000:106.303 CPU_ReadMem(32 bytes @ 0xE000EFE0)
T1658 000:107.994 [0][0]: E000E000 CID B105E00D PID 001BB000 SCS
T1658 000:108.008 CPU_ReadMem(32 bytes @ 0xE0001FE0)
T1658 000:109.714 [0][1]: E0001000 CID B105E00D PID 001BB002 DWT
T1658 000:109.727 CPU_ReadMem(32 bytes @ 0xE0002FE0)
T1658 000:111.440 [0][2]: E0002000 CID B105E00D PID 000BB003 FPB
T1658 000:111.453 CPU_ReadMem(32 bytes @ 0xE0000FE0)
T1658 000:113.265 [0][3]: E0000000 CID B105E00D PID 001BB001 ITM
T1658 000:113.279 CPU_ReadMem(32 bytes @ 0xE0040FE0)
T1658 000:115.091 [0][4]: E0040000 CID B105900D PID 001BB923 TPIU-Lite
T1658 000:115.115 CPU_ReadMem(32 bytes @ 0xE0041FE0)
T1658 000:116.921 [0][5]: E0041000 CID B105900D PID 101BB924 ETM-M3
T1658 000:116.963 pIdData->ScanLen=9
T1658 000:116.971 pIdData->NumDevices=2
T1658 000:116.977 pIdData->aId[0]=0x3BA00477
T1658 000:116.983 pIdData->aIrRead[0]=0
T1658 000:116.989 pIdData->aScanLen[0]=0
T1658 000:116.996 pIdData->aScanRead[0]=0
T1658 000:117.003 - 65.511ms
T1658 000:117.014 JLINK_JTAG_GetDeviceID(DeviceIndex = 0)
T1658 000:117.020 - 0.006ms returns 1000342647
T1658 000:117.025 JLINK_JTAG_GetDeviceInfo(DeviceIndex = 0)
T1658 000:117.030 - 0.004ms returns 0
T1658 000:117.035 JLINK_JTAG_GetDeviceID(DeviceIndex = 1)
T1658 000:117.040 - 0.004ms returns 104939585
T1658 000:117.045 JLINK_JTAG_GetDeviceInfo(DeviceIndex = 1)
T1658 000:117.049 - 0.004ms returns 0
T1658 000:117.057 JLINK_GetDLLVersion()
T1658 000:117.061 - 0.004ms returns 81007
T1658 000:117.066 JLINK_CORE_GetFound()
T1658 000:117.071 - 0.004ms returns 0x30000FF
T1658 000:117.077 JLINK_GetDebugInfo(0x100 = JLINKARM_ROM_TABLE_ADDR_INDEX)
T1658 000:117.082 Value=0xE00FF000
T1658 000:117.088 - 0.011ms returns 0
T1658 000:119.448 JLINK_GetDebugInfo(0x100 = JLINKARM_ROM_TABLE_ADDR_INDEX)
T1658 000:119.459 Value=0xE00FF000
T1658 000:119.466 - 0.017ms returns 0
T1658 000:119.471 JLINK_GetDebugInfo(0x101 = JLINKARM_DEBUG_INFO_ETM_ADDR_INDEX)
T1658 000:119.476 Value=0xE0041000
T1658 000:119.482 - 0.011ms returns 0
T1658 000:119.488 JLINK_ReadMemEx(0xE0041FD0, 0x20 Bytes, Flags = 0x02000004)
T1658 000:119.519 CPU_ReadMem(32 bytes @ 0xE0041FD0)
T1658 000:119.805 Data: 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...
T1658 000:119.814 - 0.325ms returns 32 (0x20)
T1658 000:119.820 JLINK_GetDebugInfo(0x102 = JLINKARM_DEBUG_INFO_MTB_ADDR_INDEX)
T1658 000:119.825 Value=0x00000000
T1658 000:119.831 - 0.011ms returns 0
T1658 000:119.837 JLINK_GetDebugInfo(0x103 = JLINKARM_DEBUG_INFO_TPIU_ADDR_INDEX)
T1658 000:119.845 Value=0xE0040000
T1658 000:119.853 - 0.016ms returns 0
T1658 000:119.858 JLINK_GetDebugInfo(0x104 = JLINKARM_DEBUG_INFO_ITM_ADDR_INDEX)
T1658 000:119.863 Value=0xE0000000
T1658 000:119.869 - 0.011ms returns 0
T1658 000:119.874 JLINK_GetDebugInfo(0x105 = JLINKARM_DEBUG_INFO_DWT_ADDR_INDEX)
T1658 000:119.879 Value=0xE0001000
T1658 000:119.885 - 0.010ms returns 0
T1658 000:119.890 JLINK_GetDebugInfo(0x106 = JLINKARM_DEBUG_INFO_FPB_ADDR_INDEX)
T1658 000:119.895 Value=0xE0002000
T1658 000:119.901 - 0.011ms returns 0
T1658 000:119.906 JLINK_GetDebugInfo(0x107 = JLINKARM_DEBUG_INFO_NVIC_ADDR_INDEX)
T1658 000:119.911 Value=0xE000E000
T1658 000:119.917 - 0.010ms returns 0
T1658 000:119.922 JLINK_GetDebugInfo(0x10C = JLINKARM_DEBUG_INFO_DBG_ADDR_INDEX)
T1658 000:119.926 Value=0xE000EDF0
T1658 000:119.933 - 0.010ms returns 0
T1658 000:119.938 JLINK_GetDebugInfo(0x01 = Unknown)
T1658 000:119.942 Value=0x00000000
T1658 000:119.949 - 0.010ms returns 0
T1658 000:119.954 JLINK_ReadMemU32(0xE000ED00, 0x1 Items)
T1658 000:119.962 CPU_ReadMem(4 bytes @ 0xE000ED00)
T1658 000:120.170 Data: 31 C2 1F 41
T1658 000:120.178 Debug reg: CPUID
T1658 000:120.184 - 0.230ms returns 1 (0x1)
T1658 000:120.191 JLINK_GetDebugInfo(0x10F = JLINKARM_DEBUG_INFO_HAS_CORTEX_M_SECURITY_EXT_INDEX)
T1658 000:120.195 Value=0x00000000
T1658 000:120.202 - 0.011ms returns 0
T1658 000:120.207 JLINK_HasError()
T1658 000:120.213 JLINK_SetResetType(JLINKARM_CM3_RESET_TYPE_NORMAL)
T1658 000:120.218 - 0.005ms returns JLINKARM_CM3_RESET_TYPE_NORMAL
T1658 000:120.223 JLINK_Reset()
T1658 000:120.231 JLINK_GetResetTypeDesc
T1658 000:120.236 - 0.004ms
T1658 000:121.710 Reset type: NORMAL (https://wiki.segger.com/J-Link_Reset_Strategies)
T1658 000:121.726 CPU is running
T1658 000:121.735 CPU_WriteMem(4 bytes @ 0xE000EDF0)
T1658 000:121.920 CPU is running
T1658 000:121.929 CPU_WriteMem(4 bytes @ 0xE000EDFC)
T1658 000:124.105 Reset: Halt core after reset via DEMCR.VC_CORERESET.
T1658 000:125.569 Reset: Reset device via AIRCR.SYSRESETREQ.
T1658 000:125.584 CPU is running
T1658 000:125.593 CPU_WriteMem(4 bytes @ 0xE000ED0C)
T1658 000:177.219 CPU_ReadMem(4 bytes @ 0xE000EDF0)
T1658 000:177.508 CPU_ReadMem(4 bytes @ 0xE000EDF0)
T1658 000:178.887 CPU_WriteMem(4 bytes @ 0xE000EDFC)
T1658 000:185.193 CPU_ReadMem(4 bytes @ 0xE000EDF0)
T1658 000:186.443 CPU_WriteMem(4 bytes @ 0xE000EDFC)
T1658 000:186.678 CPU_WriteMem(4 bytes @ 0xE0001028)
T1658 000:186.908 CPU_WriteMem(4 bytes @ 0xE0001038)
T1658 000:187.142 CPU_WriteMem(4 bytes @ 0xE0001048)
T1658 000:187.316 CPU_WriteMem(4 bytes @ 0xE0001058)
T1658 000:187.499 CPU_WriteMem(4 bytes @ 0xE0002000)
T1658 000:187.723 CPU_ReadMem(4 bytes @ 0xE000EDFC)
T1658 000:187.894 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:188.072 - 67.848ms
T1658 000:188.084 JLINK_Halt()
T1658 000:188.089 - 0.005ms returns 0x00
T1658 000:188.096 JLINK_ReadMemU32(0xE000EDF0, 0x1 Items)
T1658 000:188.105 CPU_ReadMem(4 bytes @ 0xE000EDF0)
T1658 000:188.274 Data: 03 00 03 00
T1658 000:188.282 Debug reg: DHCSR
T1658 000:188.289 - 0.193ms returns 1 (0x1)
T1658 000:188.296 JLINK_WriteU32(0xE000EDF0, 0xA05F0003)
T1658 000:188.301 Debug reg: DHCSR
T1658 000:188.506 CPU_WriteMem(4 bytes @ 0xE000EDF0)
T1658 000:188.727 - 0.430ms returns 0 (0x00000000)
T1658 000:188.741 JLINK_WriteU32(0xE000EDFC, 0x01000000)
T1658 000:188.746 Debug reg: DEMCR
T1658 000:188.757 CPU_WriteMem(4 bytes @ 0xE000EDFC)
T1658 000:188.928 - 0.186ms returns 0 (0x00000000)
T1658 000:194.805 JLINK_GetHWStatus(...)
T1658 000:194.994 - 0.187ms returns 0
T1658 000:202.115 JLINK_GetNumBPUnits(Type = 0xFFFFFF00)
T1658 000:202.132 - 0.017ms returns 0x06
T1658 000:202.138 JLINK_GetNumBPUnits(Type = 0xF0)
T1658 000:202.143 - 0.005ms returns 0x2000
T1658 000:202.149 JLINK_GetNumWPUnits()
T1658 000:202.153 - 0.004ms returns 4
T1658 000:206.301 JLINK_GetSpeed()
T1658 000:206.313 - 0.012ms returns 15000
T1658 000:208.972 JLINK_ReadMemU32(0xE000E004, 0x1 Items)
T1658 000:208.998 CPU_ReadMem(4 bytes @ 0xE000E004)
T1658 000:209.234 Data: 01 00 00 00
T1658 000:209.246 - 0.274ms returns 1 (0x1)
T1658 000:209.253 JLINK_ReadMemU32(0xE000E004, 0x1 Items)
T1658 000:209.261 CPU_ReadMem(4 bytes @ 0xE000E004)
T1658 000:209.452 Data: 01 00 00 00
T1658 000:209.463 - 0.210ms returns 1 (0x1)
T1658 000:209.471 JLINK_WriteMemEx(0xE0001000, 0x0000001C Bytes, Flags = 0x02000004)
T1658 000:209.476 Data: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ...
T1658 000:209.488 CPU_WriteMem(28 bytes @ 0xE0001000)
T1658 000:209.753 - 0.282ms returns 0x1C
T1658 000:209.768 JLINK_Halt()
T1658 000:209.773 - 0.005ms returns 0x00
T1658 000:209.778 JLINK_IsHalted()
T1658 000:209.784 - 0.005ms returns TRUE
T1658 000:211.956 JLINK_WriteMem(0x20000000, 0x164 Bytes, ...)
T1658 000:211.966 Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ...
T1658 000:212.162 CPU_WriteMem(356 bytes @ 0x20000000)
T1658 000:213.077 - 1.121ms returns 0x164
T1658 000:213.108 JLINK_HasError()
T1658 000:213.116 JLINK_WriteReg(R0, 0x08000000)
T1658 000:213.123 - 0.006ms returns 0
T1658 000:213.128 JLINK_WriteReg(R1, 0x007A1200)
T1658 000:213.133 - 0.004ms returns 0
T1658 000:213.138 JLINK_WriteReg(R2, 0x00000001)
T1658 000:213.143 - 0.004ms returns 0
T1658 000:213.148 JLINK_WriteReg(R3, 0x00000000)
T1658 000:213.153 - 0.004ms returns 0
T1658 000:213.158 JLINK_WriteReg(R4, 0x00000000)
T1658 000:213.163 - 0.004ms returns 0
T1658 000:213.168 JLINK_WriteReg(R5, 0x00000000)
T1658 000:213.173 - 0.004ms returns 0
T1658 000:213.178 JLINK_WriteReg(R6, 0x00000000)
T1658 000:213.183 - 0.004ms returns 0
T1658 000:213.188 JLINK_WriteReg(R7, 0x00000000)
T1658 000:213.192 - 0.004ms returns 0
T1658 000:213.207 JLINK_WriteReg(R8, 0x00000000)
T1658 000:213.213 - 0.015ms returns 0
T1658 000:213.218 JLINK_WriteReg(R9, 0x20000160)
T1658 000:213.223 - 0.004ms returns 0
T1658 000:213.228 JLINK_WriteReg(R10, 0x00000000)
T1658 000:213.233 - 0.004ms returns 0
T1658 000:213.241 JLINK_WriteReg(R11, 0x00000000)
T1658 000:213.246 - 0.008ms returns 0
T1658 000:213.252 JLINK_WriteReg(R12, 0x00000000)
T1658 000:213.256 - 0.004ms returns 0
T1658 000:213.262 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:213.267 - 0.005ms returns 0
T1658 000:213.272 JLINK_WriteReg(R14, 0x20000001)
T1658 000:213.277 - 0.004ms returns 0
T1658 000:213.286 JLINK_WriteReg(R15 (PC), 0x20000038)
T1658 000:213.292 - 0.009ms returns 0
T1658 000:213.297 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:213.302 - 0.005ms returns 0
T1658 000:213.307 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:213.312 - 0.004ms returns 0
T1658 000:213.317 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:213.322 - 0.004ms returns 0
T1658 000:213.327 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:213.332 - 0.004ms returns 0
T1658 000:213.337 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:213.346 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:213.550 - 0.212ms returns 0x00000001
T1658 000:213.561 JLINK_Go()
T1658 000:213.569 CPU_WriteMem(2 bytes @ 0x20000000)
T1658 000:213.770 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:213.979 CPU_WriteMem(4 bytes @ 0xE0002008)
T1658 000:213.991 CPU_WriteMem(4 bytes @ 0xE000200C)
T1658 000:213.998 CPU_WriteMem(4 bytes @ 0xE0002010)
T1658 000:214.005 CPU_WriteMem(4 bytes @ 0xE0002014)
T1658 000:214.011 CPU_WriteMem(4 bytes @ 0xE0002018)
T1658 000:214.018 CPU_WriteMem(4 bytes @ 0xE000201C)
T1658 000:214.716 CPU_WriteMem(4 bytes @ 0xE0001004)
T1658 000:217.571 Memory map 'after startup completion point' is active
T1658 000:217.587 - 4.025ms
T1658 000:217.597 JLINK_IsHalted()
T1658 000:218.648 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:218.881 - 1.283ms returns TRUE
T1658 000:218.894 JLINK_ReadReg(R15 (PC))
T1658 000:218.902 - 0.007ms returns 0x20000000
T1658 000:218.908 JLINK_ClrBPEx(BPHandle = 0x00000001)
T1658 000:218.914 - 0.005ms returns 0x00
T1658 000:218.920 JLINK_ReadReg(R0)
T1658 000:218.925 - 0.004ms returns 0x00000000
T1658 000:219.167 JLINK_HasError()
T1658 000:219.179 JLINK_WriteReg(R0, 0x08000000)
T1658 000:219.185 - 0.006ms returns 0
T1658 000:219.190 JLINK_WriteReg(R1, 0x00000800)
T1658 000:219.195 - 0.004ms returns 0
T1658 000:219.201 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:219.205 - 0.004ms returns 0
T1658 000:219.211 JLINK_WriteReg(R3, 0x00000000)
T1658 000:219.215 - 0.004ms returns 0
T1658 000:219.220 JLINK_WriteReg(R4, 0x00000000)
T1658 000:219.225 - 0.004ms returns 0
T1658 000:219.230 JLINK_WriteReg(R5, 0x00000000)
T1658 000:219.235 - 0.004ms returns 0
T1658 000:219.240 JLINK_WriteReg(R6, 0x00000000)
T1658 000:219.245 - 0.004ms returns 0
T1658 000:219.250 JLINK_WriteReg(R7, 0x00000000)
T1658 000:219.255 - 0.004ms returns 0
T1658 000:219.260 JLINK_WriteReg(R8, 0x00000000)
T1658 000:219.264 - 0.004ms returns 0
T1658 000:219.269 JLINK_WriteReg(R9, 0x20000160)
T1658 000:219.274 - 0.004ms returns 0
T1658 000:219.279 JLINK_WriteReg(R10, 0x00000000)
T1658 000:219.284 - 0.004ms returns 0
T1658 000:219.289 JLINK_WriteReg(R11, 0x00000000)
T1658 000:219.294 - 0.004ms returns 0
T1658 000:219.299 JLINK_WriteReg(R12, 0x00000000)
T1658 000:219.304 - 0.004ms returns 0
T1658 000:219.309 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:219.314 - 0.005ms returns 0
T1658 000:219.319 JLINK_WriteReg(R14, 0x20000001)
T1658 000:219.324 - 0.004ms returns 0
T1658 000:219.329 JLINK_WriteReg(R15 (PC), 0x20000020)
T1658 000:219.334 - 0.004ms returns 0
T1658 000:219.339 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:219.344 - 0.004ms returns 0
T1658 000:219.349 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:219.354 - 0.004ms returns 0
T1658 000:219.359 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:219.363 - 0.004ms returns 0
T1658 000:219.369 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:219.373 - 0.004ms returns 0
T1658 000:219.379 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:219.384 - 0.005ms returns 0x00000002
T1658 000:219.389 JLINK_Go()
T1658 000:219.400 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:220.751 - 1.361ms
T1658 000:220.763 JLINK_IsHalted()
T1658 000:221.822 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:222.057 - 1.294ms returns TRUE
T1658 000:222.069 JLINK_ReadReg(R15 (PC))
T1658 000:222.076 - 0.006ms returns 0x20000000
T1658 000:222.081 JLINK_ClrBPEx(BPHandle = 0x00000002)
T1658 000:222.087 - 0.005ms returns 0x00
T1658 000:222.092 JLINK_ReadReg(R0)
T1658 000:222.097 - 0.004ms returns 0x00000001
T1658 000:222.102 JLINK_HasError()
T1658 000:222.108 JLINK_WriteReg(R0, 0x08000000)
T1658 000:222.113 - 0.005ms returns 0
T1658 000:222.118 JLINK_WriteReg(R1, 0x00000800)
T1658 000:222.123 - 0.004ms returns 0
T1658 000:222.128 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:222.133 - 0.004ms returns 0
T1658 000:222.138 JLINK_WriteReg(R3, 0x00000000)
T1658 000:222.143 - 0.004ms returns 0
T1658 000:222.148 JLINK_WriteReg(R4, 0x00000000)
T1658 000:222.153 - 0.004ms returns 0
T1658 000:222.158 JLINK_WriteReg(R5, 0x00000000)
T1658 000:222.163 - 0.004ms returns 0
T1658 000:222.168 JLINK_WriteReg(R6, 0x00000000)
T1658 000:222.173 - 0.004ms returns 0
T1658 000:222.178 JLINK_WriteReg(R7, 0x00000000)
T1658 000:222.182 - 0.004ms returns 0
T1658 000:222.188 JLINK_WriteReg(R8, 0x00000000)
T1658 000:222.192 - 0.004ms returns 0
T1658 000:222.197 JLINK_WriteReg(R9, 0x20000160)
T1658 000:222.202 - 0.004ms returns 0
T1658 000:222.207 JLINK_WriteReg(R10, 0x00000000)
T1658 000:222.212 - 0.004ms returns 0
T1658 000:222.217 JLINK_WriteReg(R11, 0x00000000)
T1658 000:222.222 - 0.004ms returns 0
T1658 000:222.227 JLINK_WriteReg(R12, 0x00000000)
T1658 000:222.232 - 0.004ms returns 0
T1658 000:222.237 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:222.242 - 0.005ms returns 0
T1658 000:222.247 JLINK_WriteReg(R14, 0x20000001)
T1658 000:222.252 - 0.004ms returns 0
T1658 000:222.257 JLINK_WriteReg(R15 (PC), 0x200000B6)
T1658 000:222.262 - 0.004ms returns 0
T1658 000:222.267 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:222.272 - 0.004ms returns 0
T1658 000:222.277 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:222.284 - 0.007ms returns 0
T1658 000:222.291 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:222.296 - 0.004ms returns 0
T1658 000:222.301 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:222.306 - 0.004ms returns 0
T1658 000:222.312 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:222.317 - 0.005ms returns 0x00000003
T1658 000:222.322 JLINK_Go()
T1658 000:222.332 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:223.596 - 1.273ms
T1658 000:223.607 JLINK_IsHalted()
T1658 000:223.852 - 0.244ms returns FALSE
T1658 000:223.863 JLINK_HasError()
T1658 000:237.054 JLINK_IsHalted()
T1658 000:237.311 - 0.257ms returns FALSE
T1658 000:237.323 JLINK_HasError()
T1658 000:239.044 JLINK_IsHalted()
T1658 000:239.283 - 0.238ms returns FALSE
T1658 000:239.294 JLINK_HasError()
T1658 000:241.039 JLINK_IsHalted()
T1658 000:241.280 - 0.240ms returns FALSE
T1658 000:241.291 JLINK_HasError()
T1658 000:243.087 JLINK_IsHalted()
T1658 000:243.352 - 0.265ms returns FALSE
T1658 000:243.363 JLINK_HasError()
T1658 000:245.065 JLINK_IsHalted()
T1658 000:245.306 - 0.240ms returns FALSE
T1658 000:245.317 JLINK_HasError()
T1658 000:247.050 JLINK_IsHalted()
T1658 000:248.110 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:248.335 - 1.284ms returns TRUE
T1658 000:248.348 JLINK_ReadReg(R15 (PC))
T1658 000:248.355 - 0.007ms returns 0x20000000
T1658 000:248.361 JLINK_ClrBPEx(BPHandle = 0x00000003)
T1658 000:248.366 - 0.005ms returns 0x00
T1658 000:248.372 JLINK_ReadReg(R0)
T1658 000:248.377 - 0.005ms returns 0x00000000
T1658 000:248.763 JLINK_HasError()
T1658 000:248.774 JLINK_WriteReg(R0, 0x08000800)
T1658 000:248.780 - 0.005ms returns 0
T1658 000:248.785 JLINK_WriteReg(R1, 0x00000800)
T1658 000:248.790 - 0.004ms returns 0
T1658 000:248.795 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:248.800 - 0.004ms returns 0
T1658 000:248.805 JLINK_WriteReg(R3, 0x00000000)
T1658 000:248.809 - 0.004ms returns 0
T1658 000:248.814 JLINK_WriteReg(R4, 0x00000000)
T1658 000:248.819 - 0.004ms returns 0
T1658 000:248.824 JLINK_WriteReg(R5, 0x00000000)
T1658 000:248.829 - 0.004ms returns 0
T1658 000:248.834 JLINK_WriteReg(R6, 0x00000000)
T1658 000:248.839 - 0.004ms returns 0
T1658 000:248.844 JLINK_WriteReg(R7, 0x00000000)
T1658 000:248.849 - 0.004ms returns 0
T1658 000:248.854 JLINK_WriteReg(R8, 0x00000000)
T1658 000:248.859 - 0.004ms returns 0
T1658 000:248.864 JLINK_WriteReg(R9, 0x20000160)
T1658 000:248.868 - 0.004ms returns 0
T1658 000:248.874 JLINK_WriteReg(R10, 0x00000000)
T1658 000:248.878 - 0.004ms returns 0
T1658 000:248.883 JLINK_WriteReg(R11, 0x00000000)
T1658 000:248.888 - 0.004ms returns 0
T1658 000:248.893 JLINK_WriteReg(R12, 0x00000000)
T1658 000:248.898 - 0.004ms returns 0
T1658 000:248.903 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:248.908 - 0.005ms returns 0
T1658 000:248.917 JLINK_WriteReg(R14, 0x20000001)
T1658 000:248.922 - 0.005ms returns 0
T1658 000:248.927 JLINK_WriteReg(R15 (PC), 0x20000020)
T1658 000:248.932 - 0.004ms returns 0
T1658 000:248.937 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:248.942 - 0.004ms returns 0
T1658 000:248.947 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:248.952 - 0.004ms returns 0
T1658 000:248.957 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:248.962 - 0.004ms returns 0
T1658 000:248.967 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:248.972 - 0.004ms returns 0
T1658 000:248.977 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:248.983 - 0.006ms returns 0x00000004
T1658 000:248.988 JLINK_Go()
T1658 000:249.000 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:250.274 - 1.285ms
T1658 000:250.285 JLINK_IsHalted()
T1658 000:251.296 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:251.527 - 1.241ms returns TRUE
T1658 000:251.538 JLINK_ReadReg(R15 (PC))
T1658 000:251.545 - 0.006ms returns 0x20000000
T1658 000:251.551 JLINK_ClrBPEx(BPHandle = 0x00000004)
T1658 000:251.556 - 0.005ms returns 0x00
T1658 000:251.561 JLINK_ReadReg(R0)
T1658 000:251.566 - 0.004ms returns 0x00000001
T1658 000:251.571 JLINK_HasError()
T1658 000:251.577 JLINK_WriteReg(R0, 0x08000800)
T1658 000:251.586 - 0.008ms returns 0
T1658 000:251.593 JLINK_WriteReg(R1, 0x00000800)
T1658 000:251.598 - 0.004ms returns 0
T1658 000:251.603 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:251.608 - 0.004ms returns 0
T1658 000:251.613 JLINK_WriteReg(R3, 0x00000000)
T1658 000:251.618 - 0.004ms returns 0
T1658 000:251.623 JLINK_WriteReg(R4, 0x00000000)
T1658 000:251.627 - 0.004ms returns 0
T1658 000:251.633 JLINK_WriteReg(R5, 0x00000000)
T1658 000:251.637 - 0.004ms returns 0
T1658 000:251.642 JLINK_WriteReg(R6, 0x00000000)
T1658 000:251.647 - 0.004ms returns 0
T1658 000:251.652 JLINK_WriteReg(R7, 0x00000000)
T1658 000:251.657 - 0.004ms returns 0
T1658 000:251.662 JLINK_WriteReg(R8, 0x00000000)
T1658 000:251.667 - 0.004ms returns 0
T1658 000:251.672 JLINK_WriteReg(R9, 0x20000160)
T1658 000:251.677 - 0.004ms returns 0
T1658 000:251.682 JLINK_WriteReg(R10, 0x00000000)
T1658 000:251.687 - 0.004ms returns 0
T1658 000:251.692 JLINK_WriteReg(R11, 0x00000000)
T1658 000:251.696 - 0.004ms returns 0
T1658 000:251.702 JLINK_WriteReg(R12, 0x00000000)
T1658 000:251.706 - 0.004ms returns 0
T1658 000:251.711 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:251.716 - 0.005ms returns 0
T1658 000:251.722 JLINK_WriteReg(R14, 0x20000001)
T1658 000:251.726 - 0.004ms returns 0
T1658 000:251.732 JLINK_WriteReg(R15 (PC), 0x200000B6)
T1658 000:251.736 - 0.004ms returns 0
T1658 000:251.742 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:251.746 - 0.004ms returns 0
T1658 000:251.751 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:251.756 - 0.004ms returns 0
T1658 000:251.761 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:251.766 - 0.004ms returns 0
T1658 000:251.771 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:251.776 - 0.004ms returns 0
T1658 000:251.781 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:251.787 - 0.005ms returns 0x00000005
T1658 000:251.792 JLINK_Go()
T1658 000:251.802 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:253.071 - 1.278ms
T1658 000:253.082 JLINK_IsHalted()
T1658 000:253.271 - 0.188ms returns FALSE
T1658 000:253.283 JLINK_HasError()
T1658 000:255.029 JLINK_IsHalted()
T1658 000:255.239 - 0.209ms returns FALSE
T1658 000:255.250 JLINK_HasError()
T1658 000:257.041 JLINK_IsHalted()
T1658 000:257.248 - 0.207ms returns FALSE
T1658 000:257.259 JLINK_HasError()
T1658 000:259.019 JLINK_IsHalted()
T1658 000:259.238 - 0.218ms returns FALSE
T1658 000:259.249 JLINK_HasError()
T1658 000:261.031 JLINK_IsHalted()
T1658 000:261.274 - 0.242ms returns FALSE
T1658 000:261.285 JLINK_HasError()
T1658 000:263.008 JLINK_IsHalted()
T1658 000:263.220 - 0.211ms returns FALSE
T1658 000:263.232 JLINK_HasError()
T1658 000:265.002 JLINK_IsHalted()
T1658 000:265.259 - 0.256ms returns FALSE
T1658 000:265.270 JLINK_HasError()
T1658 000:266.997 JLINK_IsHalted()
T1658 000:267.234 - 0.235ms returns FALSE
T1658 000:267.245 JLINK_HasError()
T1658 000:268.994 JLINK_IsHalted()
T1658 000:269.237 - 0.242ms returns FALSE
T1658 000:269.248 JLINK_HasError()
T1658 000:270.992 JLINK_IsHalted()
T1658 000:271.257 - 0.264ms returns FALSE
T1658 000:271.268 JLINK_HasError()
T1658 000:272.981 JLINK_IsHalted()
T1658 000:273.237 - 0.255ms returns FALSE
T1658 000:273.248 JLINK_HasError()
T1658 000:274.984 JLINK_IsHalted()
T1658 000:276.046 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:276.311 - 1.326ms returns TRUE
T1658 000:276.323 JLINK_ReadReg(R15 (PC))
T1658 000:276.330 - 0.007ms returns 0x20000000
T1658 000:276.336 JLINK_ClrBPEx(BPHandle = 0x00000005)
T1658 000:276.344 - 0.008ms returns 0x00
T1658 000:276.350 JLINK_ReadReg(R0)
T1658 000:276.355 - 0.004ms returns 0x00000000
T1658 000:276.757 JLINK_HasError()
T1658 000:276.767 JLINK_WriteReg(R0, 0x08001000)
T1658 000:276.773 - 0.006ms returns 0
T1658 000:276.778 JLINK_WriteReg(R1, 0x00000800)
T1658 000:276.783 - 0.004ms returns 0
T1658 000:276.788 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:276.793 - 0.004ms returns 0
T1658 000:276.798 JLINK_WriteReg(R3, 0x00000000)
T1658 000:276.803 - 0.004ms returns 0
T1658 000:276.808 JLINK_WriteReg(R4, 0x00000000)
T1658 000:276.816 - 0.008ms returns 0
T1658 000:276.824 JLINK_WriteReg(R5, 0x00000000)
T1658 000:276.828 - 0.004ms returns 0
T1658 000:276.834 JLINK_WriteReg(R6, 0x00000000)
T1658 000:276.838 - 0.004ms returns 0
T1658 000:276.844 JLINK_WriteReg(R7, 0x00000000)
T1658 000:276.848 - 0.004ms returns 0
T1658 000:276.854 JLINK_WriteReg(R8, 0x00000000)
T1658 000:276.858 - 0.004ms returns 0
T1658 000:276.863 JLINK_WriteReg(R9, 0x20000160)
T1658 000:276.868 - 0.004ms returns 0
T1658 000:276.873 JLINK_WriteReg(R10, 0x00000000)
T1658 000:276.878 - 0.004ms returns 0
T1658 000:276.883 JLINK_WriteReg(R11, 0x00000000)
T1658 000:276.888 - 0.004ms returns 0
T1658 000:276.893 JLINK_WriteReg(R12, 0x00000000)
T1658 000:276.898 - 0.004ms returns 0
T1658 000:276.903 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:276.908 - 0.005ms returns 0
T1658 000:276.913 JLINK_WriteReg(R14, 0x20000001)
T1658 000:276.918 - 0.004ms returns 0
T1658 000:276.923 JLINK_WriteReg(R15 (PC), 0x20000020)
T1658 000:276.928 - 0.004ms returns 0
T1658 000:276.933 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:276.939 - 0.006ms returns 0
T1658 000:276.944 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:276.949 - 0.004ms returns 0
T1658 000:276.954 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:276.959 - 0.004ms returns 0
T1658 000:276.964 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:276.969 - 0.004ms returns 0
T1658 000:276.975 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:276.980 - 0.005ms returns 0x00000006
T1658 000:276.985 JLINK_Go()
T1658 000:276.996 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:278.385 - 1.398ms
T1658 000:278.396 JLINK_IsHalted()
T1658 000:279.469 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:279.779 - 1.382ms returns TRUE
T1658 000:279.791 JLINK_ReadReg(R15 (PC))
T1658 000:279.797 - 0.006ms returns 0x20000000
T1658 000:279.803 JLINK_ClrBPEx(BPHandle = 0x00000006)
T1658 000:279.808 - 0.005ms returns 0x00
T1658 000:279.813 JLINK_ReadReg(R0)
T1658 000:279.818 - 0.004ms returns 0x00000001
T1658 000:279.824 JLINK_HasError()
T1658 000:279.829 JLINK_WriteReg(R0, 0x08001000)
T1658 000:279.834 - 0.005ms returns 0
T1658 000:279.840 JLINK_WriteReg(R1, 0x00000800)
T1658 000:279.845 - 0.004ms returns 0
T1658 000:279.850 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:279.854 - 0.004ms returns 0
T1658 000:279.860 JLINK_WriteReg(R3, 0x00000000)
T1658 000:279.865 - 0.004ms returns 0
T1658 000:279.870 JLINK_WriteReg(R4, 0x00000000)
T1658 000:279.875 - 0.004ms returns 0
T1658 000:279.880 JLINK_WriteReg(R5, 0x00000000)
T1658 000:279.885 - 0.004ms returns 0
T1658 000:279.890 JLINK_WriteReg(R6, 0x00000000)
T1658 000:279.894 - 0.004ms returns 0
T1658 000:279.914 JLINK_WriteReg(R7, 0x00000000)
T1658 000:279.920 - 0.020ms returns 0
T1658 000:279.926 JLINK_WriteReg(R8, 0x00000000)
T1658 000:279.930 - 0.004ms returns 0
T1658 000:279.936 JLINK_WriteReg(R9, 0x20000160)
T1658 000:279.940 - 0.004ms returns 0
T1658 000:279.946 JLINK_WriteReg(R10, 0x00000000)
T1658 000:279.950 - 0.004ms returns 0
T1658 000:279.956 JLINK_WriteReg(R11, 0x00000000)
T1658 000:279.960 - 0.004ms returns 0
T1658 000:279.965 JLINK_WriteReg(R12, 0x00000000)
T1658 000:279.970 - 0.004ms returns 0
T1658 000:279.976 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:279.981 - 0.005ms returns 0
T1658 000:279.986 JLINK_WriteReg(R14, 0x20000001)
T1658 000:279.991 - 0.004ms returns 0
T1658 000:279.996 JLINK_WriteReg(R15 (PC), 0x200000B6)
T1658 000:280.001 - 0.004ms returns 0
T1658 000:280.006 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:280.011 - 0.004ms returns 0
T1658 000:280.016 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:280.021 - 0.004ms returns 0
T1658 000:280.026 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:280.030 - 0.004ms returns 0
T1658 000:280.036 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:280.040 - 0.004ms returns 0
T1658 000:280.046 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:280.051 - 0.005ms returns 0x00000007
T1658 000:280.056 JLINK_Go()
T1658 000:280.066 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:281.449 - 1.392ms
T1658 000:281.465 JLINK_IsHalted()
T1658 000:281.649 - 0.183ms returns FALSE
T1658 000:281.661 JLINK_HasError()
T1658 000:282.963 JLINK_IsHalted()
T1658 000:283.197 - 0.233ms returns FALSE
T1658 000:283.209 JLINK_HasError()
T1658 000:284.949 JLINK_IsHalted()
T1658 000:285.179 - 0.228ms returns FALSE
T1658 000:285.190 JLINK_HasError()
T1658 000:286.919 JLINK_IsHalted()
T1658 000:287.149 - 0.229ms returns FALSE
T1658 000:287.160 JLINK_HasError()
T1658 000:288.909 JLINK_IsHalted()
T1658 000:289.162 - 0.252ms returns FALSE
T1658 000:289.173 JLINK_HasError()
T1658 000:290.904 JLINK_IsHalted()
T1658 000:291.162 - 0.256ms returns FALSE
T1658 000:291.173 JLINK_HasError()
T1658 000:292.904 JLINK_IsHalted()
T1658 000:293.142 - 0.237ms returns FALSE
T1658 000:293.153 JLINK_HasError()
T1658 000:294.897 JLINK_IsHalted()
T1658 000:295.132 - 0.233ms returns FALSE
T1658 000:295.143 JLINK_HasError()
T1658 000:296.865 JLINK_IsHalted()
T1658 000:297.106 - 0.240ms returns FALSE
T1658 000:297.118 JLINK_HasError()
T1658 000:298.890 JLINK_IsHalted()
T1658 000:299.131 - 0.240ms returns FALSE
T1658 000:299.142 JLINK_HasError()
T1658 000:300.883 JLINK_IsHalted()
T1658 000:301.131 - 0.247ms returns FALSE
T1658 000:301.142 JLINK_HasError()
T1658 000:302.873 JLINK_IsHalted()
T1658 000:303.135 - 0.262ms returns FALSE
T1658 000:303.146 JLINK_HasError()
T1658 000:304.867 JLINK_IsHalted()
T1658 000:305.929 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:306.210 - 1.343ms returns TRUE
T1658 000:306.222 JLINK_ReadReg(R15 (PC))
T1658 000:306.230 - 0.007ms returns 0x20000000
T1658 000:306.235 JLINK_ClrBPEx(BPHandle = 0x00000007)
T1658 000:306.241 - 0.005ms returns 0x00
T1658 000:306.246 JLINK_ReadReg(R0)
T1658 000:306.251 - 0.005ms returns 0x00000000
T1658 000:306.664 JLINK_HasError()
T1658 000:306.674 JLINK_WriteReg(R0, 0x08001800)
T1658 000:306.680 - 0.005ms returns 0
T1658 000:306.685 JLINK_WriteReg(R1, 0x00000800)
T1658 000:306.690 - 0.004ms returns 0
T1658 000:306.695 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:306.700 - 0.004ms returns 0
T1658 000:306.705 JLINK_WriteReg(R3, 0x00000000)
T1658 000:306.710 - 0.004ms returns 0
T1658 000:306.715 JLINK_WriteReg(R4, 0x00000000)
T1658 000:306.720 - 0.004ms returns 0
T1658 000:306.725 JLINK_WriteReg(R5, 0x00000000)
T1658 000:306.729 - 0.004ms returns 0
T1658 000:306.735 JLINK_WriteReg(R6, 0x00000000)
T1658 000:306.739 - 0.004ms returns 0
T1658 000:306.744 JLINK_WriteReg(R7, 0x00000000)
T1658 000:306.749 - 0.004ms returns 0
T1658 000:306.754 JLINK_WriteReg(R8, 0x00000000)
T1658 000:306.759 - 0.004ms returns 0
T1658 000:306.764 JLINK_WriteReg(R9, 0x20000160)
T1658 000:306.769 - 0.004ms returns 0
T1658 000:306.774 JLINK_WriteReg(R10, 0x00000000)
T1658 000:306.779 - 0.004ms returns 0
T1658 000:306.784 JLINK_WriteReg(R11, 0x00000000)
T1658 000:306.789 - 0.004ms returns 0
T1658 000:306.794 JLINK_WriteReg(R12, 0x00000000)
T1658 000:306.799 - 0.004ms returns 0
T1658 000:306.804 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:306.809 - 0.005ms returns 0
T1658 000:306.814 JLINK_WriteReg(R14, 0x20000001)
T1658 000:306.819 - 0.004ms returns 0
T1658 000:306.824 JLINK_WriteReg(R15 (PC), 0x20000020)
T1658 000:306.830 - 0.006ms returns 0
T1658 000:306.836 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:306.840 - 0.005ms returns 0
T1658 000:306.846 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:306.850 - 0.004ms returns 0
T1658 000:306.855 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:306.869 - 0.014ms returns 0
T1658 000:306.875 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:306.879 - 0.004ms returns 0
T1658 000:306.885 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:306.890 - 0.005ms returns 0x00000008
T1658 000:306.896 JLINK_Go()
T1658 000:306.906 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:308.307 - 1.411ms
T1658 000:308.318 JLINK_IsHalted()
T1658 000:309.372 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:309.626 - 1.307ms returns TRUE
T1658 000:309.637 JLINK_ReadReg(R15 (PC))
T1658 000:309.644 - 0.006ms returns 0x20000000
T1658 000:309.655 JLINK_ClrBPEx(BPHandle = 0x00000008)
T1658 000:309.660 - 0.005ms returns 0x00
T1658 000:309.666 JLINK_ReadReg(R0)
T1658 000:309.670 - 0.004ms returns 0x00000001
T1658 000:309.676 JLINK_HasError()
T1658 000:309.681 JLINK_WriteReg(R0, 0x08001800)
T1658 000:309.687 - 0.005ms returns 0
T1658 000:309.692 JLINK_WriteReg(R1, 0x00000800)
T1658 000:309.697 - 0.004ms returns 0
T1658 000:309.702 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:309.707 - 0.004ms returns 0
T1658 000:309.712 JLINK_WriteReg(R3, 0x00000000)
T1658 000:309.717 - 0.004ms returns 0
T1658 000:309.722 JLINK_WriteReg(R4, 0x00000000)
T1658 000:309.726 - 0.004ms returns 0
T1658 000:309.732 JLINK_WriteReg(R5, 0x00000000)
T1658 000:309.736 - 0.004ms returns 0
T1658 000:309.741 JLINK_WriteReg(R6, 0x00000000)
T1658 000:309.746 - 0.004ms returns 0
T1658 000:309.751 JLINK_WriteReg(R7, 0x00000000)
T1658 000:309.756 - 0.004ms returns 0
T1658 000:309.761 JLINK_WriteReg(R8, 0x00000000)
T1658 000:309.765 - 0.004ms returns 0
T1658 000:309.771 JLINK_WriteReg(R9, 0x20000160)
T1658 000:309.775 - 0.004ms returns 0
T1658 000:309.781 JLINK_WriteReg(R10, 0x00000000)
T1658 000:309.785 - 0.004ms returns 0
T1658 000:309.790 JLINK_WriteReg(R11, 0x00000000)
T1658 000:309.795 - 0.004ms returns 0
T1658 000:309.800 JLINK_WriteReg(R12, 0x00000000)
T1658 000:309.805 - 0.004ms returns 0
T1658 000:309.810 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:309.815 - 0.005ms returns 0
T1658 000:309.820 JLINK_WriteReg(R14, 0x20000001)
T1658 000:309.826 - 0.006ms returns 0
T1658 000:309.831 JLINK_WriteReg(R15 (PC), 0x200000B6)
T1658 000:309.836 - 0.004ms returns 0
T1658 000:309.841 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:309.846 - 0.004ms returns 0
T1658 000:309.851 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:309.856 - 0.004ms returns 0
T1658 000:309.861 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:309.866 - 0.004ms returns 0
T1658 000:309.871 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:309.876 - 0.004ms returns 0
T1658 000:309.881 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:309.886 - 0.005ms returns 0x00000009
T1658 000:309.891 JLINK_Go()
T1658 000:309.901 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:311.274 - 1.382ms
T1658 000:311.285 JLINK_IsHalted()
T1658 000:311.520 - 0.234ms returns FALSE
T1658 000:311.531 JLINK_HasError()
T1658 000:312.878 JLINK_IsHalted()
T1658 000:313.082 - 0.203ms returns FALSE
T1658 000:313.093 JLINK_HasError()
T1658 000:314.851 JLINK_IsHalted()
T1658 000:315.087 - 0.235ms returns FALSE
T1658 000:315.098 JLINK_HasError()
T1658 000:316.864 JLINK_IsHalted()
T1658 000:317.098 - 0.233ms returns FALSE
T1658 000:317.109 JLINK_HasError()
T1658 000:318.859 JLINK_IsHalted()
T1658 000:319.105 - 0.245ms returns FALSE
T1658 000:319.116 JLINK_HasError()
T1658 000:320.854 JLINK_IsHalted()
T1658 000:321.101 - 0.247ms returns FALSE
T1658 000:321.112 JLINK_HasError()
T1658 000:322.849 JLINK_IsHalted()
T1658 000:323.114 - 0.264ms returns FALSE
T1658 000:323.125 JLINK_HasError()
T1658 000:324.848 JLINK_IsHalted()
T1658 000:325.108 - 0.259ms returns FALSE
T1658 000:325.119 JLINK_HasError()
T1658 000:326.837 JLINK_IsHalted()
T1658 000:327.080 - 0.242ms returns FALSE
T1658 000:327.092 JLINK_HasError()
T1658 000:328.779 JLINK_IsHalted()
T1658 000:328.981 - 0.201ms returns FALSE
T1658 000:328.993 JLINK_HasError()
T1658 000:330.798 JLINK_IsHalted()
T1658 000:331.015 - 0.216ms returns FALSE
T1658 000:331.026 JLINK_HasError()
T1658 000:332.823 JLINK_IsHalted()
T1658 000:333.055 - 0.231ms returns FALSE
T1658 000:333.067 JLINK_HasError()
T1658 000:334.812 JLINK_IsHalted()
T1658 000:335.822 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:336.055 - 1.242ms returns TRUE
T1658 000:336.067 JLINK_ReadReg(R15 (PC))
T1658 000:336.074 - 0.007ms returns 0x20000000
T1658 000:336.080 JLINK_ClrBPEx(BPHandle = 0x00000009)
T1658 000:336.085 - 0.005ms returns 0x00
T1658 000:336.090 JLINK_ReadReg(R0)
T1658 000:336.095 - 0.004ms returns 0x00000000
T1658 000:336.486 JLINK_HasError()
T1658 000:336.501 JLINK_WriteReg(R0, 0x08002000)
T1658 000:336.509 - 0.008ms returns 0
T1658 000:336.515 JLINK_WriteReg(R1, 0x00000800)
T1658 000:336.520 - 0.004ms returns 0
T1658 000:336.525 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:336.530 - 0.004ms returns 0
T1658 000:336.535 JLINK_WriteReg(R3, 0x00000000)
T1658 000:336.539 - 0.004ms returns 0
T1658 000:336.545 JLINK_WriteReg(R4, 0x00000000)
T1658 000:336.549 - 0.004ms returns 0
T1658 000:336.554 JLINK_WriteReg(R5, 0x00000000)
T1658 000:336.559 - 0.004ms returns 0
T1658 000:336.564 JLINK_WriteReg(R6, 0x00000000)
T1658 000:336.569 - 0.004ms returns 0
T1658 000:336.574 JLINK_WriteReg(R7, 0x00000000)
T1658 000:336.579 - 0.004ms returns 0
T1658 000:336.584 JLINK_WriteReg(R8, 0x00000000)
T1658 000:336.589 - 0.004ms returns 0
T1658 000:336.594 JLINK_WriteReg(R9, 0x20000160)
T1658 000:336.598 - 0.004ms returns 0
T1658 000:336.604 JLINK_WriteReg(R10, 0x00000000)
T1658 000:336.608 - 0.004ms returns 0
T1658 000:336.614 JLINK_WriteReg(R11, 0x00000000)
T1658 000:336.618 - 0.004ms returns 0
T1658 000:336.623 JLINK_WriteReg(R12, 0x00000000)
T1658 000:336.628 - 0.004ms returns 0
T1658 000:336.633 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:336.638 - 0.005ms returns 0
T1658 000:336.644 JLINK_WriteReg(R14, 0x20000001)
T1658 000:336.648 - 0.004ms returns 0
T1658 000:336.653 JLINK_WriteReg(R15 (PC), 0x20000020)
T1658 000:336.658 - 0.004ms returns 0
T1658 000:336.663 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:336.668 - 0.004ms returns 0
T1658 000:336.673 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:336.678 - 0.004ms returns 0
T1658 000:336.683 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:336.688 - 0.004ms returns 0
T1658 000:336.693 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:336.698 - 0.004ms returns 0
T1658 000:336.703 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:336.709 - 0.005ms returns 0x0000000A
T1658 000:336.714 JLINK_Go()
T1658 000:336.725 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:338.024 - 1.309ms
T1658 000:338.035 JLINK_IsHalted()
T1658 000:339.049 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:339.298 - 1.262ms returns TRUE
T1658 000:339.310 JLINK_ReadReg(R15 (PC))
T1658 000:339.316 - 0.006ms returns 0x20000000
T1658 000:339.322 JLINK_ClrBPEx(BPHandle = 0x0000000A)
T1658 000:339.327 - 0.005ms returns 0x00
T1658 000:339.332 JLINK_ReadReg(R0)
T1658 000:339.337 - 0.004ms returns 0x00000001
T1658 000:339.342 JLINK_HasError()
T1658 000:339.348 JLINK_WriteReg(R0, 0x08002000)
T1658 000:339.353 - 0.005ms returns 0
T1658 000:339.359 JLINK_WriteReg(R1, 0x00000800)
T1658 000:339.363 - 0.004ms returns 0
T1658 000:339.369 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:339.373 - 0.004ms returns 0
T1658 000:339.378 JLINK_WriteReg(R3, 0x00000000)
T1658 000:339.383 - 0.004ms returns 0
T1658 000:339.388 JLINK_WriteReg(R4, 0x00000000)
T1658 000:339.393 - 0.004ms returns 0
T1658 000:339.398 JLINK_WriteReg(R5, 0x00000000)
T1658 000:339.403 - 0.004ms returns 0
T1658 000:339.408 JLINK_WriteReg(R6, 0x00000000)
T1658 000:339.413 - 0.004ms returns 0
T1658 000:339.418 JLINK_WriteReg(R7, 0x00000000)
T1658 000:339.423 - 0.004ms returns 0
T1658 000:339.428 JLINK_WriteReg(R8, 0x00000000)
T1658 000:339.433 - 0.004ms returns 0
T1658 000:339.438 JLINK_WriteReg(R9, 0x20000160)
T1658 000:339.443 - 0.004ms returns 0
T1658 000:339.448 JLINK_WriteReg(R10, 0x00000000)
T1658 000:339.452 - 0.004ms returns 0
T1658 000:339.458 JLINK_WriteReg(R11, 0x00000000)
T1658 000:339.462 - 0.004ms returns 0
T1658 000:339.468 JLINK_WriteReg(R12, 0x00000000)
T1658 000:339.472 - 0.004ms returns 0
T1658 000:339.478 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:339.483 - 0.005ms returns 0
T1658 000:339.488 JLINK_WriteReg(R14, 0x20000001)
T1658 000:339.493 - 0.004ms returns 0
T1658 000:339.498 JLINK_WriteReg(R15 (PC), 0x200000B6)
T1658 000:339.503 - 0.004ms returns 0
T1658 000:339.508 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:339.513 - 0.004ms returns 0
T1658 000:339.518 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:339.523 - 0.004ms returns 0
T1658 000:339.530 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:339.536 - 0.006ms returns 0
T1658 000:339.542 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:339.547 - 0.004ms returns 0
T1658 000:339.552 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:339.557 - 0.005ms returns 0x0000000B
T1658 000:339.562 JLINK_Go()
T1658 000:339.572 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:340.904 - 1.340ms
T1658 000:340.915 JLINK_IsHalted()
T1658 000:341.113 - 0.197ms returns FALSE
T1658 000:341.124 JLINK_HasError()
T1658 000:342.795 JLINK_IsHalted()
T1658 000:342.976 - 0.181ms returns FALSE
T1658 000:342.988 JLINK_HasError()
T1658 000:345.763 JLINK_IsHalted()
T1658 000:346.008 - 0.245ms returns FALSE
T1658 000:346.020 JLINK_HasError()
T1658 000:347.754 JLINK_IsHalted()
T1658 000:347.974 - 0.220ms returns FALSE
T1658 000:347.987 JLINK_HasError()
T1658 000:349.756 JLINK_IsHalted()
T1658 000:349.983 - 0.226ms returns FALSE
T1658 000:349.995 JLINK_HasError()
T1658 000:351.742 JLINK_IsHalted()
T1658 000:351.982 - 0.239ms returns FALSE
T1658 000:351.993 JLINK_HasError()
T1658 000:353.736 JLINK_IsHalted()
T1658 000:353.980 - 0.244ms returns FALSE
T1658 000:353.991 JLINK_HasError()
T1658 000:355.752 JLINK_IsHalted()
T1658 000:355.965 - 0.213ms returns FALSE
T1658 000:355.976 JLINK_HasError()
T1658 000:357.725 JLINK_IsHalted()
T1658 000:357.968 - 0.242ms returns FALSE
T1658 000:357.980 JLINK_HasError()
T1658 000:359.722 JLINK_IsHalted()
T1658 000:359.961 - 0.239ms returns FALSE
T1658 000:359.973 JLINK_HasError()
T1658 000:361.715 JLINK_IsHalted()
T1658 000:361.975 - 0.260ms returns FALSE
T1658 000:361.984 JLINK_HasError()
T1658 000:363.726 JLINK_IsHalted()
T1658 000:364.782 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:364.998 - 1.270ms returns TRUE
T1658 000:365.010 JLINK_ReadReg(R15 (PC))
T1658 000:365.018 - 0.007ms returns 0x20000000
T1658 000:365.023 JLINK_ClrBPEx(BPHandle = 0x0000000B)
T1658 000:365.029 - 0.005ms returns 0x00
T1658 000:365.034 JLINK_ReadReg(R0)
T1658 000:365.039 - 0.005ms returns 0x00000000
T1658 000:365.475 JLINK_HasError()
T1658 000:365.485 JLINK_WriteReg(R0, 0x08002800)
T1658 000:365.492 - 0.006ms returns 0
T1658 000:365.497 JLINK_WriteReg(R1, 0x00000800)
T1658 000:365.502 - 0.004ms returns 0
T1658 000:365.507 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:365.512 - 0.004ms returns 0
T1658 000:365.517 JLINK_WriteReg(R3, 0x00000000)
T1658 000:365.522 - 0.005ms returns 0
T1658 000:365.527 JLINK_WriteReg(R4, 0x00000000)
T1658 000:365.532 - 0.004ms returns 0
T1658 000:365.537 JLINK_WriteReg(R5, 0x00000000)
T1658 000:365.542 - 0.004ms returns 0
T1658 000:365.547 JLINK_WriteReg(R6, 0x00000000)
T1658 000:365.552 - 0.004ms returns 0
T1658 000:365.557 JLINK_WriteReg(R7, 0x00000000)
T1658 000:365.562 - 0.004ms returns 0
T1658 000:365.567 JLINK_WriteReg(R8, 0x00000000)
T1658 000:365.572 - 0.004ms returns 0
T1658 000:365.577 JLINK_WriteReg(R9, 0x20000160)
T1658 000:365.582 - 0.004ms returns 0
T1658 000:365.587 JLINK_WriteReg(R10, 0x00000000)
T1658 000:365.592 - 0.004ms returns 0
T1658 000:365.597 JLINK_WriteReg(R11, 0x00000000)
T1658 000:365.601 - 0.004ms returns 0
T1658 000:365.607 JLINK_WriteReg(R12, 0x00000000)
T1658 000:365.611 - 0.004ms returns 0
T1658 000:365.617 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:365.622 - 0.005ms returns 0
T1658 000:365.627 JLINK_WriteReg(R14, 0x20000001)
T1658 000:365.632 - 0.004ms returns 0
T1658 000:365.637 JLINK_WriteReg(R15 (PC), 0x20000020)
T1658 000:365.641 - 0.004ms returns 0
T1658 000:365.647 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:365.652 - 0.004ms returns 0
T1658 000:365.657 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:365.661 - 0.004ms returns 0
T1658 000:365.667 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:365.677 - 0.010ms returns 0
T1658 000:365.682 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:365.687 - 0.004ms returns 0
T1658 000:365.693 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:365.698 - 0.005ms returns 0x0000000C
T1658 000:365.704 JLINK_Go()
T1658 000:365.716 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:367.136 - 1.431ms
T1658 000:367.147 JLINK_IsHalted()
T1658 000:368.201 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:368.459 - 1.311ms returns TRUE
T1658 000:368.470 JLINK_ReadReg(R15 (PC))
T1658 000:368.477 - 0.006ms returns 0x20000000
T1658 000:368.483 JLINK_ClrBPEx(BPHandle = 0x0000000C)
T1658 000:368.488 - 0.005ms returns 0x00
T1658 000:368.493 JLINK_ReadReg(R0)
T1658 000:368.498 - 0.004ms returns 0x00000001
T1658 000:368.503 JLINK_HasError()
T1658 000:368.509 JLINK_WriteReg(R0, 0x08002800)
T1658 000:368.514 - 0.005ms returns 0
T1658 000:368.520 JLINK_WriteReg(R1, 0x00000800)
T1658 000:368.525 - 0.004ms returns 0
T1658 000:368.530 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:368.534 - 0.004ms returns 0
T1658 000:368.540 JLINK_WriteReg(R3, 0x00000000)
T1658 000:368.544 - 0.004ms returns 0
T1658 000:368.550 JLINK_WriteReg(R4, 0x00000000)
T1658 000:368.554 - 0.004ms returns 0
T1658 000:368.559 JLINK_WriteReg(R5, 0x00000000)
T1658 000:368.564 - 0.004ms returns 0
T1658 000:368.569 JLINK_WriteReg(R6, 0x00000000)
T1658 000:368.574 - 0.004ms returns 0
T1658 000:368.579 JLINK_WriteReg(R7, 0x00000000)
T1658 000:368.584 - 0.004ms returns 0
T1658 000:368.589 JLINK_WriteReg(R8, 0x00000000)
T1658 000:368.594 - 0.004ms returns 0
T1658 000:368.599 JLINK_WriteReg(R9, 0x20000160)
T1658 000:368.604 - 0.004ms returns 0
T1658 000:368.609 JLINK_WriteReg(R10, 0x00000000)
T1658 000:368.614 - 0.004ms returns 0
T1658 000:368.619 JLINK_WriteReg(R11, 0x00000000)
T1658 000:368.624 - 0.004ms returns 0
T1658 000:368.629 JLINK_WriteReg(R12, 0x00000000)
T1658 000:368.634 - 0.004ms returns 0
T1658 000:368.639 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:368.644 - 0.005ms returns 0
T1658 000:368.649 JLINK_WriteReg(R14, 0x20000001)
T1658 000:368.654 - 0.004ms returns 0
T1658 000:368.660 JLINK_WriteReg(R15 (PC), 0x200000B6)
T1658 000:368.666 - 0.006ms returns 0
T1658 000:368.672 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:368.676 - 0.004ms returns 0
T1658 000:368.682 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:368.686 - 0.004ms returns 0
T1658 000:368.692 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:368.696 - 0.004ms returns 0
T1658 000:368.702 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:368.706 - 0.004ms returns 0
T1658 000:368.712 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:368.717 - 0.005ms returns 0x0000000D
T1658 000:368.722 JLINK_Go()
T1658 000:368.732 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:370.071 - 1.348ms
T1658 000:370.083 JLINK_IsHalted()
T1658 000:370.301 - 0.217ms returns FALSE
T1658 000:370.312 JLINK_HasError()
T1658 000:371.713 JLINK_IsHalted()
T1658 000:371.943 - 0.229ms returns FALSE
T1658 000:371.951 JLINK_HasError()
T1658 000:373.708 JLINK_IsHalted()
T1658 000:373.954 - 0.245ms returns FALSE
T1658 000:373.966 JLINK_HasError()
T1658 000:375.728 JLINK_IsHalted()
T1658 000:376.016 - 0.287ms returns FALSE
T1658 000:376.027 JLINK_HasError()
T1658 000:377.704 JLINK_IsHalted()
T1658 000:377.954 - 0.249ms returns FALSE
T1658 000:377.965 JLINK_HasError()
T1658 000:379.696 JLINK_IsHalted()
T1658 000:379.929 - 0.232ms returns FALSE
T1658 000:379.940 JLINK_HasError()
T1658 000:381.650 JLINK_IsHalted()
T1658 000:381.921 - 0.271ms returns FALSE
T1658 000:381.933 JLINK_HasError()
T1658 000:383.689 JLINK_IsHalted()
T1658 000:383.924 - 0.234ms returns FALSE
T1658 000:383.935 JLINK_HasError()
T1658 000:385.700 JLINK_IsHalted()
T1658 000:385.912 - 0.212ms returns FALSE
T1658 000:385.924 JLINK_HasError()
T1658 000:387.680 JLINK_IsHalted()
T1658 000:387.934 - 0.253ms returns FALSE
T1658 000:387.945 JLINK_HasError()
T1658 000:389.678 JLINK_IsHalted()
T1658 000:389.934 - 0.255ms returns FALSE
T1658 000:389.945 JLINK_HasError()
T1658 000:391.679 JLINK_IsHalted()
T1658 000:391.897 - 0.218ms returns FALSE
T1658 000:391.908 JLINK_HasError()
T1658 000:393.665 JLINK_IsHalted()
T1658 000:394.670 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:394.913 - 1.247ms returns TRUE
T1658 000:394.924 JLINK_ReadReg(R15 (PC))
T1658 000:394.935 - 0.010ms returns 0x20000000
T1658 000:394.943 JLINK_ClrBPEx(BPHandle = 0x0000000D)
T1658 000:394.948 - 0.005ms returns 0x00
T1658 000:394.954 JLINK_ReadReg(R0)
T1658 000:394.959 - 0.004ms returns 0x00000000
T1658 000:395.256 JLINK_HasError()
T1658 000:395.266 JLINK_WriteReg(R0, 0x00000001)
T1658 000:395.272 - 0.005ms returns 0
T1658 000:395.277 JLINK_WriteReg(R1, 0x00000800)
T1658 000:395.282 - 0.004ms returns 0
T1658 000:395.287 JLINK_WriteReg(R2, 0x000000FF)
T1658 000:395.292 - 0.004ms returns 0
T1658 000:395.297 JLINK_WriteReg(R3, 0x00000000)
T1658 000:395.302 - 0.004ms returns 0
T1658 000:395.307 JLINK_WriteReg(R4, 0x00000000)
T1658 000:395.311 - 0.004ms returns 0
T1658 000:395.316 JLINK_WriteReg(R5, 0x00000000)
T1658 000:395.321 - 0.004ms returns 0
T1658 000:395.326 JLINK_WriteReg(R6, 0x00000000)
T1658 000:395.331 - 0.004ms returns 0
T1658 000:395.336 JLINK_WriteReg(R7, 0x00000000)
T1658 000:395.341 - 0.004ms returns 0
T1658 000:395.346 JLINK_WriteReg(R8, 0x00000000)
T1658 000:395.351 - 0.005ms returns 0
T1658 000:395.356 JLINK_WriteReg(R9, 0x20000160)
T1658 000:395.361 - 0.004ms returns 0
T1658 000:395.366 JLINK_WriteReg(R10, 0x00000000)
T1658 000:395.371 - 0.004ms returns 0
T1658 000:395.376 JLINK_WriteReg(R11, 0x00000000)
T1658 000:395.381 - 0.004ms returns 0
T1658 000:395.386 JLINK_WriteReg(R12, 0x00000000)
T1658 000:395.391 - 0.004ms returns 0
T1658 000:395.396 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:395.401 - 0.005ms returns 0
T1658 000:395.406 JLINK_WriteReg(R14, 0x20000001)
T1658 000:395.411 - 0.004ms returns 0
T1658 000:395.416 JLINK_WriteReg(R15 (PC), 0x2000006A)
T1658 000:395.421 - 0.004ms returns 0
T1658 000:395.426 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:395.431 - 0.004ms returns 0
T1658 000:395.436 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:395.441 - 0.004ms returns 0
T1658 000:395.446 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:395.450 - 0.004ms returns 0
T1658 000:395.455 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:395.460 - 0.004ms returns 0
T1658 000:395.466 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:395.471 - 0.005ms returns 0x0000000E
T1658 000:395.476 JLINK_Go()
T1658 000:395.487 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:396.832 - 1.355ms
T1658 000:396.843 JLINK_IsHalted()
T1658 000:397.844 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:398.070 - 1.226ms returns TRUE
T1658 000:398.082 JLINK_ReadReg(R15 (PC))
T1658 000:398.089 - 0.006ms returns 0x20000000
T1658 000:398.095 JLINK_ClrBPEx(BPHandle = 0x0000000E)
T1658 000:398.100 - 0.005ms returns 0x00
T1658 000:398.106 JLINK_ReadReg(R0)
T1658 000:398.111 - 0.004ms returns 0x00000000
T1658 000:453.414 JLINK_WriteMem(0x20000000, 0x164 Bytes, ...)
T1658 000:453.428 Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ...
T1658 000:453.468 CPU_WriteMem(356 bytes @ 0x20000000)
T1658 000:454.486 - 1.071ms returns 0x164
T1658 000:454.520 JLINK_HasError()
T1658 000:454.529 JLINK_WriteReg(R0, 0x08000000)
T1658 000:454.536 - 0.007ms returns 0
T1658 000:454.541 JLINK_WriteReg(R1, 0x007A1200)
T1658 000:454.546 - 0.005ms returns 0
T1658 000:454.552 JLINK_WriteReg(R2, 0x00000002)
T1658 000:454.557 - 0.004ms returns 0
T1658 000:454.562 JLINK_WriteReg(R3, 0x00000000)
T1658 000:454.567 - 0.004ms returns 0
T1658 000:454.572 JLINK_WriteReg(R4, 0x00000000)
T1658 000:454.576 - 0.004ms returns 0
T1658 000:454.582 JLINK_WriteReg(R5, 0x00000000)
T1658 000:454.586 - 0.004ms returns 0
T1658 000:454.591 JLINK_WriteReg(R6, 0x00000000)
T1658 000:454.596 - 0.004ms returns 0
T1658 000:454.601 JLINK_WriteReg(R7, 0x00000000)
T1658 000:454.606 - 0.004ms returns 0
T1658 000:454.611 JLINK_WriteReg(R8, 0x00000000)
T1658 000:454.616 - 0.004ms returns 0
T1658 000:454.621 JLINK_WriteReg(R9, 0x20000160)
T1658 000:454.626 - 0.004ms returns 0
T1658 000:454.631 JLINK_WriteReg(R10, 0x00000000)
T1658 000:454.636 - 0.004ms returns 0
T1658 000:454.641 JLINK_WriteReg(R11, 0x00000000)
T1658 000:454.647 - 0.005ms returns 0
T1658 000:454.652 JLINK_WriteReg(R12, 0x00000000)
T1658 000:454.662 - 0.009ms returns 0
T1658 000:454.667 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:454.672 - 0.005ms returns 0
T1658 000:454.678 JLINK_WriteReg(R14, 0x20000001)
T1658 000:454.682 - 0.005ms returns 0
T1658 000:454.688 JLINK_WriteReg(R15 (PC), 0x20000038)
T1658 000:454.693 - 0.004ms returns 0
T1658 000:454.698 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:454.702 - 0.004ms returns 0
T1658 000:454.708 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:454.712 - 0.004ms returns 0
T1658 000:454.718 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:454.722 - 0.004ms returns 0
T1658 000:454.728 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:454.732 - 0.004ms returns 0
T1658 000:454.738 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:454.747 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:455.007 - 0.269ms returns 0x0000000F
T1658 000:455.019 JLINK_Go()
T1658 000:455.028 CPU_WriteMem(2 bytes @ 0x20000000)
T1658 000:455.287 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:456.651 - 1.631ms
T1658 000:456.664 JLINK_IsHalted()
T1658 000:457.693 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:457.969 - 1.304ms returns TRUE
T1658 000:457.981 JLINK_ReadReg(R15 (PC))
T1658 000:457.988 - 0.007ms returns 0x20000000
T1658 000:457.993 JLINK_ClrBPEx(BPHandle = 0x0000000F)
T1658 000:457.999 - 0.005ms returns 0x00
T1658 000:458.004 JLINK_ReadReg(R0)
T1658 000:458.009 - 0.004ms returns 0x00000000
T1658 000:458.276 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:458.285 Data: 38 09 00 20 CD 01 00 08 79 23 00 08 19 21 00 08 ...
T1658 000:458.299 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:459.778 - 1.502ms returns 0x29C
T1658 000:459.790 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:459.796 Data: C0 09 AC E8 C0 09 21 F0 07 01 8D 46 70 47 10 B5 ...
T1658 000:459.809 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:460.778 - 0.987ms returns 0x164
T1658 000:460.790 JLINK_HasError()
T1658 000:460.796 JLINK_WriteReg(R0, 0x08000000)
T1658 000:460.803 - 0.006ms returns 0
T1658 000:460.808 JLINK_WriteReg(R1, 0x00000400)
T1658 000:460.813 - 0.004ms returns 0
T1658 000:460.818 JLINK_WriteReg(R2, 0x20000164)
T1658 000:460.823 - 0.004ms returns 0
T1658 000:460.828 JLINK_WriteReg(R3, 0x00000000)
T1658 000:460.833 - 0.004ms returns 0
T1658 000:460.838 JLINK_WriteReg(R4, 0x00000000)
T1658 000:460.843 - 0.004ms returns 0
T1658 000:460.848 JLINK_WriteReg(R5, 0x00000000)
T1658 000:460.853 - 0.004ms returns 0
T1658 000:460.858 JLINK_WriteReg(R6, 0x00000000)
T1658 000:460.863 - 0.004ms returns 0
T1658 000:460.868 JLINK_WriteReg(R7, 0x00000000)
T1658 000:460.873 - 0.004ms returns 0
T1658 000:460.878 JLINK_WriteReg(R8, 0x00000000)
T1658 000:460.883 - 0.005ms returns 0
T1658 000:460.888 JLINK_WriteReg(R9, 0x20000160)
T1658 000:460.893 - 0.004ms returns 0
T1658 000:460.898 JLINK_WriteReg(R10, 0x00000000)
T1658 000:460.903 - 0.004ms returns 0
T1658 000:460.908 JLINK_WriteReg(R11, 0x00000000)
T1658 000:460.913 - 0.004ms returns 0
T1658 000:460.918 JLINK_WriteReg(R12, 0x00000000)
T1658 000:460.923 - 0.004ms returns 0
T1658 000:460.928 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:460.933 - 0.005ms returns 0
T1658 000:460.939 JLINK_WriteReg(R14, 0x20000001)
T1658 000:460.943 - 0.004ms returns 0
T1658 000:460.949 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:460.954 - 0.005ms returns 0
T1658 000:460.959 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:460.964 - 0.004ms returns 0
T1658 000:460.969 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:460.974 - 0.004ms returns 0
T1658 000:460.979 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:460.983 - 0.004ms returns 0
T1658 000:460.989 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:460.994 - 0.004ms returns 0
T1658 000:460.999 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:461.008 - 0.009ms returns 0x00000010
T1658 000:461.014 JLINK_Go()
T1658 000:461.024 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:462.309 - 1.295ms
T1658 000:462.321 JLINK_IsHalted()
T1658 000:462.520 - 0.199ms returns FALSE
T1658 000:462.535 JLINK_HasError()
T1658 000:464.445 JLINK_IsHalted()
T1658 000:464.652 - 0.205ms returns FALSE
T1658 000:464.663 JLINK_HasError()
T1658 000:466.443 JLINK_IsHalted()
T1658 000:466.650 - 0.206ms returns FALSE
T1658 000:466.661 JLINK_HasError()
T1658 000:469.438 JLINK_IsHalted()
T1658 000:469.664 - 0.226ms returns FALSE
T1658 000:469.676 JLINK_HasError()
T1658 000:471.426 JLINK_IsHalted()
T1658 000:471.630 - 0.203ms returns FALSE
T1658 000:471.642 JLINK_HasError()
T1658 000:473.421 JLINK_IsHalted()
T1658 000:473.643 - 0.221ms returns FALSE
T1658 000:473.655 JLINK_HasError()
T1658 000:475.463 JLINK_IsHalted()
T1658 000:475.709 - 0.245ms returns FALSE
T1658 000:475.721 JLINK_HasError()
T1658 000:477.411 JLINK_IsHalted()
T1658 000:477.658 - 0.246ms returns FALSE
T1658 000:477.670 JLINK_HasError()
T1658 000:479.433 JLINK_IsHalted()
T1658 000:479.671 - 0.237ms returns FALSE
T1658 000:479.682 JLINK_HasError()
T1658 000:481.404 JLINK_IsHalted()
T1658 000:481.622 - 0.217ms returns FALSE
T1658 000:481.633 JLINK_HasError()
T1658 000:483.417 JLINK_IsHalted()
T1658 000:483.665 - 0.248ms returns FALSE
T1658 000:483.677 JLINK_HasError()
T1658 000:485.397 JLINK_IsHalted()
T1658 000:485.620 - 0.222ms returns FALSE
T1658 000:485.631 JLINK_HasError()
T1658 000:487.353 JLINK_IsHalted()
T1658 000:487.504 - 0.150ms returns FALSE
T1658 000:487.512 JLINK_HasError()
T1658 000:489.372 JLINK_IsHalted()
T1658 000:489.528 - 0.155ms returns FALSE
T1658 000:489.538 JLINK_HasError()
T1658 000:491.366 JLINK_IsHalted()
T1658 000:491.547 - 0.180ms returns FALSE
T1658 000:491.554 JLINK_HasError()
T1658 000:493.338 JLINK_IsHalted()
T1658 000:494.330 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:494.561 - 1.222ms returns TRUE
T1658 000:494.573 JLINK_ReadReg(R15 (PC))
T1658 000:494.581 - 0.007ms returns 0x20000000
T1658 000:494.587 JLINK_ClrBPEx(BPHandle = 0x00000010)
T1658 000:494.592 - 0.005ms returns 0x00
T1658 000:494.598 JLINK_ReadReg(R0)
T1658 000:494.603 - 0.004ms returns 0x00000000
T1658 000:495.062 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:495.074 Data: 16 00 C0 07 60 B3 FF E7 09 98 01 68 4F F4 80 30 ...
T1658 000:495.087 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:496.557 - 1.494ms returns 0x29C
T1658 000:496.574 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:496.579 Data: 40 F0 80 00 08 90 05 E0 08 98 40 F4 80 70 08 90 ...
T1658 000:496.592 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:497.507 - 0.933ms returns 0x164
T1658 000:497.518 JLINK_HasError()
T1658 000:497.525 JLINK_WriteReg(R0, 0x08000400)
T1658 000:497.532 - 0.006ms returns 0
T1658 000:497.537 JLINK_WriteReg(R1, 0x00000400)
T1658 000:497.542 - 0.004ms returns 0
T1658 000:497.547 JLINK_WriteReg(R2, 0x20000164)
T1658 000:497.552 - 0.004ms returns 0
T1658 000:497.557 JLINK_WriteReg(R3, 0x00000000)
T1658 000:497.562 - 0.004ms returns 0
T1658 000:497.567 JLINK_WriteReg(R4, 0x00000000)
T1658 000:497.572 - 0.004ms returns 0
T1658 000:497.577 JLINK_WriteReg(R5, 0x00000000)
T1658 000:497.582 - 0.004ms returns 0
T1658 000:497.587 JLINK_WriteReg(R6, 0x00000000)
T1658 000:497.591 - 0.004ms returns 0
T1658 000:497.597 JLINK_WriteReg(R7, 0x00000000)
T1658 000:497.601 - 0.004ms returns 0
T1658 000:497.607 JLINK_WriteReg(R8, 0x00000000)
T1658 000:497.611 - 0.004ms returns 0
T1658 000:497.616 JLINK_WriteReg(R9, 0x20000160)
T1658 000:497.621 - 0.004ms returns 0
T1658 000:497.626 JLINK_WriteReg(R10, 0x00000000)
T1658 000:497.631 - 0.004ms returns 0
T1658 000:497.636 JLINK_WriteReg(R11, 0x00000000)
T1658 000:497.641 - 0.004ms returns 0
T1658 000:497.646 JLINK_WriteReg(R12, 0x00000000)
T1658 000:497.651 - 0.004ms returns 0
T1658 000:497.656 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:497.664 - 0.008ms returns 0
T1658 000:497.670 JLINK_WriteReg(R14, 0x20000001)
T1658 000:497.674 - 0.004ms returns 0
T1658 000:497.680 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:497.684 - 0.005ms returns 0
T1658 000:497.690 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:497.695 - 0.004ms returns 0
T1658 000:497.744 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:497.749 - 0.005ms returns 0
T1658 000:497.754 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:497.759 - 0.004ms returns 0
T1658 000:497.764 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:497.769 - 0.004ms returns 0
T1658 000:497.775 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:497.781 - 0.006ms returns 0x00000011
T1658 000:497.786 JLINK_Go()
T1658 000:497.798 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:499.037 - 1.249ms
T1658 000:499.056 JLINK_IsHalted()
T1658 000:499.244 - 0.188ms returns FALSE
T1658 000:499.256 JLINK_HasError()
T1658 000:502.359 JLINK_IsHalted()
T1658 000:502.610 - 0.251ms returns FALSE
T1658 000:502.622 JLINK_HasError()
T1658 000:504.410 JLINK_IsHalted()
T1658 000:504.657 - 0.247ms returns FALSE
T1658 000:504.669 JLINK_HasError()
T1658 000:506.420 JLINK_IsHalted()
T1658 000:506.657 - 0.236ms returns FALSE
T1658 000:506.668 JLINK_HasError()
T1658 000:508.395 JLINK_IsHalted()
T1658 000:508.634 - 0.238ms returns FALSE
T1658 000:508.645 JLINK_HasError()
T1658 000:510.448 JLINK_IsHalted()
T1658 000:510.696 - 0.247ms returns FALSE
T1658 000:510.707 JLINK_HasError()
T1658 000:512.453 JLINK_IsHalted()
T1658 000:512.730 - 0.277ms returns FALSE
T1658 000:512.741 JLINK_HasError()
T1658 000:514.547 JLINK_IsHalted()
T1658 000:514.786 - 0.238ms returns FALSE
T1658 000:514.797 JLINK_HasError()
T1658 000:516.574 JLINK_IsHalted()
T1658 000:516.899 - 0.324ms returns FALSE
T1658 000:516.911 JLINK_HasError()
T1658 000:519.471 JLINK_IsHalted()
T1658 000:519.780 - 0.309ms returns FALSE
T1658 000:519.791 JLINK_HasError()
T1658 000:521.526 JLINK_IsHalted()
T1658 000:521.784 - 0.257ms returns FALSE
T1658 000:521.796 JLINK_HasError()
T1658 000:523.526 JLINK_IsHalted()
T1658 000:523.783 - 0.256ms returns FALSE
T1658 000:523.794 JLINK_HasError()
T1658 000:525.530 JLINK_IsHalted()
T1658 000:525.788 - 0.257ms returns FALSE
T1658 000:525.799 JLINK_HasError()
T1658 000:527.516 JLINK_IsHalted()
T1658 000:527.783 - 0.267ms returns FALSE
T1658 000:527.794 JLINK_HasError()
T1658 000:529.509 JLINK_IsHalted()
T1658 000:529.786 - 0.276ms returns FALSE
T1658 000:529.797 JLINK_HasError()
T1658 000:531.448 JLINK_IsHalted()
T1658 000:532.545 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:532.817 - 1.368ms returns TRUE
T1658 000:532.829 JLINK_ReadReg(R15 (PC))
T1658 000:532.837 - 0.007ms returns 0x20000000
T1658 000:532.843 JLINK_ClrBPEx(BPHandle = 0x00000011)
T1658 000:532.848 - 0.005ms returns 0x00
T1658 000:532.854 JLINK_ReadReg(R0)
T1658 000:532.859 - 0.004ms returns 0x00000000
T1658 000:533.301 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:533.311 Data: 40 F0 20 00 08 60 06 E0 02 98 01 68 08 68 20 F0 ...
T1658 000:533.323 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:534.784 - 1.482ms returns 0x29C
T1658 000:534.796 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:534.801 Data: FF E7 07 98 00 21 C1 F2 32 01 88 42 13 D0 2F E0 ...
T1658 000:534.812 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:535.784 - 0.988ms returns 0x164
T1658 000:535.796 JLINK_HasError()
T1658 000:535.803 JLINK_WriteReg(R0, 0x08000800)
T1658 000:535.810 - 0.007ms returns 0
T1658 000:535.815 JLINK_WriteReg(R1, 0x00000400)
T1658 000:535.820 - 0.004ms returns 0
T1658 000:535.825 JLINK_WriteReg(R2, 0x20000164)
T1658 000:535.830 - 0.004ms returns 0
T1658 000:535.835 JLINK_WriteReg(R3, 0x00000000)
T1658 000:535.840 - 0.004ms returns 0
T1658 000:535.845 JLINK_WriteReg(R4, 0x00000000)
T1658 000:535.850 - 0.004ms returns 0
T1658 000:535.855 JLINK_WriteReg(R5, 0x00000000)
T1658 000:535.860 - 0.004ms returns 0
T1658 000:535.865 JLINK_WriteReg(R6, 0x00000000)
T1658 000:535.870 - 0.004ms returns 0
T1658 000:535.875 JLINK_WriteReg(R7, 0x00000000)
T1658 000:535.880 - 0.004ms returns 0
T1658 000:535.885 JLINK_WriteReg(R8, 0x00000000)
T1658 000:535.890 - 0.004ms returns 0
T1658 000:535.895 JLINK_WriteReg(R9, 0x20000160)
T1658 000:535.900 - 0.004ms returns 0
T1658 000:535.905 JLINK_WriteReg(R10, 0x00000000)
T1658 000:535.955 - 0.050ms returns 0
T1658 000:535.961 JLINK_WriteReg(R11, 0x00000000)
T1658 000:535.966 - 0.005ms returns 0
T1658 000:535.971 JLINK_WriteReg(R12, 0x00000000)
T1658 000:535.976 - 0.004ms returns 0
T1658 000:535.981 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:535.986 - 0.005ms returns 0
T1658 000:535.992 JLINK_WriteReg(R14, 0x20000001)
T1658 000:535.997 - 0.004ms returns 0
T1658 000:536.002 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:536.007 - 0.005ms returns 0
T1658 000:536.012 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:536.017 - 0.004ms returns 0
T1658 000:536.022 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:536.027 - 0.004ms returns 0
T1658 000:536.032 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:536.037 - 0.004ms returns 0
T1658 000:536.042 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:536.047 - 0.004ms returns 0
T1658 000:536.052 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:536.058 - 0.006ms returns 0x00000012
T1658 000:536.063 JLINK_Go()
T1658 000:536.074 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:537.557 - 1.493ms
T1658 000:537.569 JLINK_IsHalted()
T1658 000:537.813 - 0.243ms returns FALSE
T1658 000:537.824 JLINK_HasError()
T1658 000:539.592 JLINK_IsHalted()
T1658 000:539.925 - 0.331ms returns FALSE
T1658 000:539.936 JLINK_HasError()
T1658 000:541.584 JLINK_IsHalted()
T1658 000:541.886 - 0.301ms returns FALSE
T1658 000:541.897 JLINK_HasError()
T1658 000:542.995 JLINK_IsHalted()
T1658 000:543.250 - 0.253ms returns FALSE
T1658 000:543.261 JLINK_HasError()
T1658 000:544.355 JLINK_IsHalted()
T1658 000:544.597 - 0.241ms returns FALSE
T1658 000:544.609 JLINK_HasError()
T1658 000:546.363 JLINK_IsHalted()
T1658 000:546.608 - 0.244ms returns FALSE
T1658 000:546.621 JLINK_HasError()
T1658 000:548.578 JLINK_IsHalted()
T1658 000:548.912 - 0.333ms returns FALSE
T1658 000:548.926 JLINK_HasError()
T1658 000:550.003 JLINK_IsHalted()
T1658 000:550.322 - 0.318ms returns FALSE
T1658 000:550.336 JLINK_HasError()
T1658 000:551.998 JLINK_IsHalted()
T1658 000:552.274 - 0.275ms returns FALSE
T1658 000:552.287 JLINK_HasError()
T1658 000:553.373 JLINK_IsHalted()
T1658 000:553.627 - 0.252ms returns FALSE
T1658 000:553.640 JLINK_HasError()
T1658 000:555.381 JLINK_IsHalted()
T1658 000:555.693 - 0.312ms returns FALSE
T1658 000:555.708 JLINK_HasError()
T1658 000:557.350 JLINK_IsHalted()
T1658 000:557.626 - 0.274ms returns FALSE
T1658 000:557.640 JLINK_HasError()
T1658 000:559.719 JLINK_IsHalted()
T1658 000:559.989 - 0.270ms returns FALSE
T1658 000:560.006 JLINK_HasError()
T1658 000:561.749 JLINK_IsHalted()
T1658 000:562.043 - 0.292ms returns FALSE
T1658 000:562.059 JLINK_HasError()
T1658 000:563.774 JLINK_IsHalted()
T1658 000:564.073 - 0.298ms returns FALSE
T1658 000:564.092 JLINK_HasError()
T1658 000:567.120 JLINK_IsHalted()
T1658 000:567.425 - 0.304ms returns FALSE
T1658 000:567.444 JLINK_HasError()
T1658 000:569.120 JLINK_IsHalted()
T1658 000:570.316 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:570.643 - 1.522ms returns TRUE
T1658 000:570.665 JLINK_ReadReg(R15 (PC))
T1658 000:570.678 - 0.013ms returns 0x20000000
T1658 000:570.689 JLINK_ClrBPEx(BPHandle = 0x00000012)
T1658 000:570.698 - 0.009ms returns 0x00
T1658 000:570.708 JLINK_ReadReg(R0)
T1658 000:570.717 - 0.008ms returns 0x00000000
T1658 000:571.407 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:571.425 Data: FF E7 03 20 01 90 18 E0 11 98 41 F6 00 01 C4 F2 ...
T1658 000:571.446 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:573.028 - 1.620ms returns 0x29C
T1658 000:573.050 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:573.060 Data: 4F F0 FF 30 00 EB 91 40 04 90 40 F2 EC 00 C2 F2 ...
T1658 000:573.080 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:574.104 - 1.053ms returns 0x164
T1658 000:574.130 JLINK_HasError()
T1658 000:574.144 JLINK_WriteReg(R0, 0x08000C00)
T1658 000:574.158 - 0.014ms returns 0
T1658 000:574.170 JLINK_WriteReg(R1, 0x00000400)
T1658 000:574.180 - 0.010ms returns 0
T1658 000:574.192 JLINK_WriteReg(R2, 0x20000164)
T1658 000:574.283 - 0.091ms returns 0
T1658 000:574.296 JLINK_WriteReg(R3, 0x00000000)
T1658 000:574.306 - 0.010ms returns 0
T1658 000:574.317 JLINK_WriteReg(R4, 0x00000000)
T1658 000:574.328 - 0.010ms returns 0
T1658 000:574.339 JLINK_WriteReg(R5, 0x00000000)
T1658 000:574.349 - 0.010ms returns 0
T1658 000:574.360 JLINK_WriteReg(R6, 0x00000000)
T1658 000:574.370 - 0.010ms returns 0
T1658 000:574.381 JLINK_WriteReg(R7, 0x00000000)
T1658 000:574.391 - 0.010ms returns 0
T1658 000:574.403 JLINK_WriteReg(R8, 0x00000000)
T1658 000:574.413 - 0.010ms returns 0
T1658 000:574.424 JLINK_WriteReg(R9, 0x20000160)
T1658 000:574.434 - 0.010ms returns 0
T1658 000:574.446 JLINK_WriteReg(R10, 0x00000000)
T1658 000:574.456 - 0.010ms returns 0
T1658 000:574.468 JLINK_WriteReg(R11, 0x00000000)
T1658 000:574.478 - 0.010ms returns 0
T1658 000:574.489 JLINK_WriteReg(R12, 0x00000000)
T1658 000:574.499 - 0.010ms returns 0
T1658 000:574.511 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:574.522 - 0.011ms returns 0
T1658 000:574.533 JLINK_WriteReg(R14, 0x20000001)
T1658 000:574.543 - 0.010ms returns 0
T1658 000:574.554 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:574.564 - 0.010ms returns 0
T1658 000:574.576 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:574.586 - 0.010ms returns 0
T1658 000:574.597 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:574.608 - 0.010ms returns 0
T1658 000:574.619 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:574.629 - 0.010ms returns 0
T1658 000:574.640 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:574.650 - 0.010ms returns 0
T1658 000:574.663 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:574.675 - 0.012ms returns 0x00000013
T1658 000:574.686 JLINK_Go()
T1658 000:574.708 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:576.269 - 1.582ms
T1658 000:576.294 JLINK_IsHalted()
T1658 000:576.581 - 0.285ms returns FALSE
T1658 000:576.606 JLINK_HasError()
T1658 000:578.598 JLINK_IsHalted()
T1658 000:578.927 - 0.327ms returns FALSE
T1658 000:578.958 JLINK_HasError()
T1658 000:580.619 JLINK_IsHalted()
T1658 000:580.899 - 0.279ms returns FALSE
T1658 000:580.930 JLINK_HasError()
T1658 000:582.617 JLINK_IsHalted()
T1658 000:582.967 - 0.348ms returns FALSE
T1658 000:582.997 JLINK_HasError()
T1658 000:584.596 JLINK_IsHalted()
T1658 000:584.936 - 0.339ms returns FALSE
T1658 000:584.975 JLINK_HasError()
T1658 000:586.587 JLINK_IsHalted()
T1658 000:586.915 - 0.327ms returns FALSE
T1658 000:586.954 JLINK_HasError()
T1658 000:588.970 JLINK_IsHalted()
T1658 000:589.322 - 0.349ms returns FALSE
T1658 000:589.371 JLINK_HasError()
T1658 000:590.988 JLINK_IsHalted()
T1658 000:591.367 - 0.378ms returns FALSE
T1658 000:591.417 JLINK_HasError()
T1658 000:593.429 JLINK_IsHalted()
T1658 000:593.821 - 0.390ms returns FALSE
T1658 000:593.875 JLINK_HasError()
T1658 000:595.461 JLINK_IsHalted()
T1658 000:595.901 - 0.438ms returns FALSE
T1658 000:595.955 JLINK_HasError()
T1658 000:597.429 JLINK_IsHalted()
T1658 000:597.835 - 0.405ms returns FALSE
T1658 000:597.889 JLINK_HasError()
T1658 000:599.377 JLINK_IsHalted()
T1658 000:599.914 - 0.536ms returns FALSE
T1658 000:599.969 JLINK_HasError()
T1658 000:601.360 JLINK_IsHalted()
T1658 000:601.868 - 0.506ms returns FALSE
T1658 000:601.922 JLINK_HasError()
T1658 000:603.412 JLINK_IsHalted()
T1658 000:603.858 - 0.443ms returns FALSE
T1658 000:603.912 JLINK_HasError()
T1658 000:605.370 JLINK_IsHalted()
T1658 000:605.864 - 0.491ms returns FALSE
T1658 000:605.925 JLINK_HasError()
T1658 000:607.386 JLINK_IsHalted()
T1658 000:608.960 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:609.444 - 2.056ms returns TRUE
T1658 000:609.499 JLINK_ReadReg(R15 (PC))
T1658 000:609.533 - 0.033ms returns 0x20000000
T1658 000:609.560 JLINK_ClrBPEx(BPHandle = 0x00000013)
T1658 000:609.586 - 0.025ms returns 0x00
T1658 000:609.612 JLINK_ReadReg(R0)
T1658 000:609.635 - 0.023ms returns 0x00000000
T1658 000:611.384 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:611.428 Data: 42 F2 00 01 C4 F2 02 01 09 68 01 F0 07 01 88 42 ...
T1658 000:611.640 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:613.299 - 1.914ms returns 0x29C
T1658 000:613.355 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:613.381 Data: 00 68 70 47 80 B5 FF F7 F7 FF 41 F2 04 01 C4 F2 ...
T1658 000:613.434 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:614.647 - 1.291ms returns 0x164
T1658 000:614.703 JLINK_HasError()
T1658 000:614.735 JLINK_WriteReg(R0, 0x08001000)
T1658 000:614.768 - 0.033ms returns 0
T1658 000:614.795 JLINK_WriteReg(R1, 0x00000400)
T1658 000:614.823 - 0.028ms returns 0
T1658 000:614.850 JLINK_WriteReg(R2, 0x20000164)
T1658 000:614.916 - 0.023ms returns 0
T1658 000:614.985 JLINK_WriteReg(R3, 0x00000000)
T1658 000:615.019 - 0.034ms returns 0
T1658 000:615.045 JLINK_WriteReg(R4, 0x00000000)
T1658 000:615.069 - 0.024ms returns 0
T1658 000:615.097 JLINK_WriteReg(R5, 0x00000000)
T1658 000:615.120 - 0.023ms returns 0
T1658 000:615.146 JLINK_WriteReg(R6, 0x00000000)
T1658 000:615.169 - 0.023ms returns 0
T1658 000:615.194 JLINK_WriteReg(R7, 0x00000000)
T1658 000:615.217 - 0.023ms returns 0
T1658 000:615.243 JLINK_WriteReg(R8, 0x00000000)
T1658 000:615.266 - 0.023ms returns 0
T1658 000:615.292 JLINK_WriteReg(R9, 0x20000160)
T1658 000:615.315 - 0.022ms returns 0
T1658 000:615.341 JLINK_WriteReg(R10, 0x00000000)
T1658 000:615.364 - 0.023ms returns 0
T1658 000:615.389 JLINK_WriteReg(R11, 0x00000000)
T1658 000:615.412 - 0.023ms returns 0
T1658 000:615.438 JLINK_WriteReg(R12, 0x00000000)
T1658 000:615.461 - 0.023ms returns 0
T1658 000:615.487 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:615.511 - 0.025ms returns 0
T1658 000:615.537 JLINK_WriteReg(R14, 0x20000001)
T1658 000:615.560 - 0.023ms returns 0
T1658 000:615.586 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:615.609 - 0.023ms returns 0
T1658 000:615.634 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:615.658 - 0.023ms returns 0
T1658 000:615.684 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:615.707 - 0.023ms returns 0
T1658 000:615.734 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:615.757 - 0.024ms returns 0
T1658 000:615.762 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:615.767 - 0.004ms returns 0
T1658 000:615.773 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:615.779 - 0.006ms returns 0x00000014
T1658 000:615.784 JLINK_Go()
T1658 000:615.813 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:617.214 - 1.425ms
T1658 000:617.227 JLINK_IsHalted()
T1658 000:617.462 - 0.234ms returns FALSE
T1658 000:617.473 JLINK_HasError()
T1658 000:618.840 JLINK_IsHalted()
T1658 000:619.077 - 0.236ms returns FALSE
T1658 000:619.088 JLINK_HasError()
T1658 000:620.894 JLINK_IsHalted()
T1658 000:621.174 - 0.279ms returns FALSE
T1658 000:621.185 JLINK_HasError()
T1658 000:622.286 JLINK_IsHalted()
T1658 000:622.540 - 0.253ms returns FALSE
T1658 000:622.551 JLINK_HasError()
T1658 000:623.652 JLINK_IsHalted()
T1658 000:623.932 - 0.280ms returns FALSE
T1658 000:623.944 JLINK_HasError()
T1658 000:625.672 JLINK_IsHalted()
T1658 000:625.884 - 0.211ms returns FALSE
T1658 000:625.895 JLINK_HasError()
T1658 000:629.553 JLINK_IsHalted()
T1658 000:629.780 - 0.227ms returns FALSE
T1658 000:629.792 JLINK_HasError()
T1658 000:631.517 JLINK_IsHalted()
T1658 000:631.760 - 0.242ms returns FALSE
T1658 000:631.772 JLINK_HasError()
T1658 000:633.539 JLINK_IsHalted()
T1658 000:633.753 - 0.213ms returns FALSE
T1658 000:633.765 JLINK_HasError()
T1658 000:635.554 JLINK_IsHalted()
T1658 000:635.786 - 0.231ms returns FALSE
T1658 000:635.798 JLINK_HasError()
T1658 000:637.556 JLINK_IsHalted()
T1658 000:637.813 - 0.257ms returns FALSE
T1658 000:637.825 JLINK_HasError()
T1658 000:639.524 JLINK_IsHalted()
T1658 000:639.783 - 0.259ms returns FALSE
T1658 000:639.794 JLINK_HasError()
T1658 000:641.517 JLINK_IsHalted()
T1658 000:641.753 - 0.235ms returns FALSE
T1658 000:641.765 JLINK_HasError()
T1658 000:643.516 JLINK_IsHalted()
T1658 000:643.787 - 0.270ms returns FALSE
T1658 000:643.798 JLINK_HasError()
T1658 000:645.608 JLINK_IsHalted()
T1658 000:645.912 - 0.303ms returns FALSE
T1658 000:645.967 JLINK_HasError()
T1658 000:647.586 JLINK_IsHalted()
T1658 000:647.858 - 0.271ms returns FALSE
T1658 000:647.869 JLINK_HasError()
T1658 000:649.965 JLINK_IsHalted()
T1658 000:651.047 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:651.320 - 1.353ms returns TRUE
T1658 000:651.331 JLINK_ReadReg(R15 (PC))
T1658 000:651.339 - 0.007ms returns 0x20000000
T1658 000:651.344 JLINK_ClrBPEx(BPHandle = 0x00000014)
T1658 000:651.350 - 0.005ms returns 0x00
T1658 000:651.356 JLINK_ReadReg(R0)
T1658 000:651.360 - 0.004ms returns 0x00000000
T1658 000:651.793 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:651.803 Data: C0 07 00 28 00 F0 AE 80 FF E7 41 F2 04 00 C4 F2 ...
T1658 000:651.815 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:653.409 - 1.615ms returns 0x29C
T1658 000:653.420 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:653.426 Data: FF E7 40 F2 80 41 C4 F2 42 21 01 20 08 60 FF F7 ...
T1658 000:653.437 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:654.461 - 1.040ms returns 0x164
T1658 000:654.473 JLINK_HasError()
T1658 000:654.479 JLINK_WriteReg(R0, 0x08001400)
T1658 000:654.486 - 0.006ms returns 0
T1658 000:654.491 JLINK_WriteReg(R1, 0x00000400)
T1658 000:654.496 - 0.005ms returns 0
T1658 000:654.501 JLINK_WriteReg(R2, 0x20000164)
T1658 000:654.506 - 0.004ms returns 0
T1658 000:654.511 JLINK_WriteReg(R3, 0x00000000)
T1658 000:654.516 - 0.004ms returns 0
T1658 000:654.521 JLINK_WriteReg(R4, 0x00000000)
T1658 000:654.526 - 0.004ms returns 0
T1658 000:654.531 JLINK_WriteReg(R5, 0x00000000)
T1658 000:654.536 - 0.004ms returns 0
T1658 000:654.541 JLINK_WriteReg(R6, 0x00000000)
T1658 000:654.546 - 0.004ms returns 0
T1658 000:654.551 JLINK_WriteReg(R7, 0x00000000)
T1658 000:654.556 - 0.004ms returns 0
T1658 000:654.561 JLINK_WriteReg(R8, 0x00000000)
T1658 000:654.566 - 0.004ms returns 0
T1658 000:654.571 JLINK_WriteReg(R9, 0x20000160)
T1658 000:654.576 - 0.004ms returns 0
T1658 000:654.581 JLINK_WriteReg(R10, 0x00000000)
T1658 000:654.586 - 0.004ms returns 0
T1658 000:654.591 JLINK_WriteReg(R11, 0x00000000)
T1658 000:654.596 - 0.004ms returns 0
T1658 000:654.601 JLINK_WriteReg(R12, 0x00000000)
T1658 000:654.606 - 0.004ms returns 0
T1658 000:654.611 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:654.616 - 0.005ms returns 0
T1658 000:654.622 JLINK_WriteReg(R14, 0x20000001)
T1658 000:654.626 - 0.004ms returns 0
T1658 000:654.632 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:654.636 - 0.004ms returns 0
T1658 000:654.642 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:654.646 - 0.004ms returns 0
T1658 000:654.652 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:654.656 - 0.004ms returns 0
T1658 000:654.662 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:654.666 - 0.004ms returns 0
T1658 000:654.672 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:654.676 - 0.004ms returns 0
T1658 000:654.682 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:654.688 - 0.005ms returns 0x00000015
T1658 000:654.693 JLINK_Go()
T1658 000:654.703 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:656.227 - 1.534ms
T1658 000:656.240 JLINK_IsHalted()
T1658 000:656.554 - 0.313ms returns FALSE
T1658 000:656.567 JLINK_HasError()
T1658 000:658.188 JLINK_IsHalted()
T1658 000:658.455 - 0.266ms returns FALSE
T1658 000:658.466 JLINK_HasError()
T1658 000:660.175 JLINK_IsHalted()
T1658 000:660.410 - 0.235ms returns FALSE
T1658 000:660.422 JLINK_HasError()
T1658 000:661.476 JLINK_IsHalted()
T1658 000:661.761 - 0.285ms returns FALSE
T1658 000:661.769 JLINK_HasError()
T1658 000:663.846 JLINK_IsHalted()
T1658 000:664.164 - 0.318ms returns FALSE
T1658 000:664.176 JLINK_HasError()
T1658 000:665.850 JLINK_IsHalted()
T1658 000:666.079 - 0.229ms returns FALSE
T1658 000:666.090 JLINK_HasError()
T1658 000:667.849 JLINK_IsHalted()
T1658 000:668.128 - 0.278ms returns FALSE
T1658 000:668.140 JLINK_HasError()
T1658 000:669.849 JLINK_IsHalted()
T1658 000:670.087 - 0.238ms returns FALSE
T1658 000:670.099 JLINK_HasError()
T1658 000:671.832 JLINK_IsHalted()
T1658 000:672.161 - 0.328ms returns FALSE
T1658 000:672.174 JLINK_HasError()
T1658 000:673.786 JLINK_IsHalted()
T1658 000:674.213 - 0.426ms returns FALSE
T1658 000:674.268 JLINK_HasError()
T1658 000:679.836 JLINK_IsHalted()
T1658 000:680.265 - 0.427ms returns FALSE
T1658 000:680.320 JLINK_HasError()
T1658 000:681.763 JLINK_IsHalted()
T1658 000:682.180 - 0.415ms returns FALSE
T1658 000:682.241 JLINK_HasError()
T1658 000:683.773 JLINK_IsHalted()
T1658 000:684.181 - 0.406ms returns FALSE
T1658 000:684.236 JLINK_HasError()
T1658 000:685.858 JLINK_IsHalted()
T1658 000:686.272 - 0.412ms returns FALSE
T1658 000:686.326 JLINK_HasError()
T1658 000:687.854 JLINK_IsHalted()
T1658 000:689.323 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:689.818 - 1.962ms returns TRUE
T1658 000:689.874 JLINK_ReadReg(R15 (PC))
T1658 000:689.908 - 0.033ms returns 0x20000000
T1658 000:689.935 JLINK_ClrBPEx(BPHandle = 0x00000015)
T1658 000:689.960 - 0.025ms returns 0x00
T1658 000:689.987 JLINK_ReadReg(R0)
T1658 000:690.011 - 0.023ms returns 0x00000000
T1658 000:691.716 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:691.759 Data: 20 F0 04 00 08 60 1F E0 04 98 C0 68 05 28 0D D1 ...
T1658 000:691.816 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:693.437 - 1.721ms returns 0x29C
T1658 000:693.493 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:693.519 Data: 03 99 02 20 81 F8 3D 00 03 98 00 68 40 68 01 90 ...
T1658 000:693.571 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:694.703 - 1.209ms returns 0x164
T1658 000:694.759 JLINK_HasError()
T1658 000:694.789 JLINK_WriteReg(R0, 0x08001800)
T1658 000:694.821 - 0.032ms returns 0
T1658 000:694.847 JLINK_WriteReg(R1, 0x00000400)
T1658 000:694.871 - 0.023ms returns 0
T1658 000:694.897 JLINK_WriteReg(R2, 0x20000164)
T1658 000:694.919 - 0.022ms returns 0
T1658 000:694.945 JLINK_WriteReg(R3, 0x00000000)
T1658 000:694.967 - 0.023ms returns 0
T1658 000:694.993 JLINK_WriteReg(R4, 0x00000000)
T1658 000:695.016 - 0.023ms returns 0
T1658 000:695.041 JLINK_WriteReg(R5, 0x00000000)
T1658 000:695.064 - 0.023ms returns 0
T1658 000:695.090 JLINK_WriteReg(R6, 0x00000000)
T1658 000:695.112 - 0.022ms returns 0
T1658 000:695.138 JLINK_WriteReg(R7, 0x00000000)
T1658 000:695.161 - 0.023ms returns 0
T1658 000:695.186 JLINK_WriteReg(R8, 0x00000000)
T1658 000:695.209 - 0.023ms returns 0
T1658 000:695.234 JLINK_WriteReg(R9, 0x20000160)
T1658 000:695.257 - 0.023ms returns 0
T1658 000:695.283 JLINK_WriteReg(R10, 0x00000000)
T1658 000:695.306 - 0.023ms returns 0
T1658 000:695.332 JLINK_WriteReg(R11, 0x00000000)
T1658 000:695.355 - 0.023ms returns 0
T1658 000:695.381 JLINK_WriteReg(R12, 0x00000000)
T1658 000:695.422 - 0.041ms returns 0
T1658 000:695.448 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:695.473 - 0.025ms returns 0
T1658 000:695.498 JLINK_WriteReg(R14, 0x20000001)
T1658 000:695.521 - 0.022ms returns 0
T1658 000:695.547 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:695.570 - 0.023ms returns 0
T1658 000:695.596 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:695.619 - 0.023ms returns 0
T1658 000:695.644 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:695.667 - 0.023ms returns 0
T1658 000:695.693 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:695.715 - 0.022ms returns 0
T1658 000:695.741 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:695.763 - 0.023ms returns 0
T1658 000:695.791 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:695.817 - 0.027ms returns 0x00000016
T1658 000:695.842 JLINK_Go()
T1658 000:695.890 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:697.847 - 2.003ms
T1658 000:697.902 JLINK_IsHalted()
T1658 000:698.302 - 0.397ms returns FALSE
T1658 000:698.362 JLINK_HasError()
T1658 000:709.868 JLINK_IsHalted()
T1658 000:710.371 - 0.501ms returns FALSE
T1658 000:710.426 JLINK_HasError()
T1658 000:711.865 JLINK_IsHalted()
T1658 000:712.357 - 0.490ms returns FALSE
T1658 000:712.411 JLINK_HasError()
T1658 000:713.889 JLINK_IsHalted()
T1658 000:714.300 - 0.409ms returns FALSE
T1658 000:714.355 JLINK_HasError()
T1658 000:715.922 JLINK_IsHalted()
T1658 000:716.355 - 0.430ms returns FALSE
T1658 000:716.413 JLINK_HasError()
T1658 000:717.921 JLINK_IsHalted()
T1658 000:718.342 - 0.419ms returns FALSE
T1658 000:718.396 JLINK_HasError()
T1658 000:720.411 JLINK_IsHalted()
T1658 000:720.881 - 0.468ms returns FALSE
T1658 000:720.935 JLINK_HasError()
T1658 000:722.383 JLINK_IsHalted()
T1658 000:722.822 - 0.436ms returns FALSE
T1658 000:722.877 JLINK_HasError()
T1658 000:724.822 JLINK_IsHalted()
T1658 000:725.288 - 0.464ms returns FALSE
T1658 000:725.342 JLINK_HasError()
T1658 000:726.818 JLINK_IsHalted()
T1658 000:727.246 - 0.426ms returns FALSE
T1658 000:727.301 JLINK_HasError()
T1658 000:728.818 JLINK_IsHalted()
T1658 000:730.291 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:730.775 - 1.956ms returns TRUE
T1658 000:730.831 JLINK_ReadReg(R15 (PC))
T1658 000:730.864 - 0.032ms returns 0x20000000
T1658 000:730.892 JLINK_ClrBPEx(BPHandle = 0x00000016)
T1658 000:730.916 - 0.024ms returns 0x00
T1658 000:730.942 JLINK_ReadReg(R0)
T1658 000:730.966 - 0.023ms returns 0x00000000
T1658 000:732.844 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:732.897 Data: 00 20 8D F8 07 00 FF E7 9D F8 07 00 02 B0 80 BD ...
T1658 000:732.954 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:734.685 - 1.840ms returns 0x29C
T1658 000:734.740 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:734.767 Data: 04 99 00 20 81 F8 3C 00 FF E7 9D F8 0B 00 8D F8 ...
T1658 000:734.818 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:735.955 - 1.214ms returns 0x164
T1658 000:736.010 JLINK_HasError()
T1658 000:736.041 JLINK_WriteReg(R0, 0x08001C00)
T1658 000:736.074 - 0.032ms returns 0
T1658 000:736.100 JLINK_WriteReg(R1, 0x00000400)
T1658 000:736.124 - 0.024ms returns 0
T1658 000:736.155 JLINK_WriteReg(R2, 0x20000164)
T1658 000:736.178 - 0.024ms returns 0
T1658 000:736.205 JLINK_WriteReg(R3, 0x00000000)
T1658 000:736.228 - 0.023ms returns 0
T1658 000:736.253 JLINK_WriteReg(R4, 0x00000000)
T1658 000:736.276 - 0.023ms returns 0
T1658 000:736.302 JLINK_WriteReg(R5, 0x00000000)
T1658 000:736.325 - 0.023ms returns 0
T1658 000:736.350 JLINK_WriteReg(R6, 0x00000000)
T1658 000:736.373 - 0.022ms returns 0
T1658 000:736.398 JLINK_WriteReg(R7, 0x00000000)
T1658 000:736.421 - 0.023ms returns 0
T1658 000:736.447 JLINK_WriteReg(R8, 0x00000000)
T1658 000:736.470 - 0.023ms returns 0
T1658 000:736.495 JLINK_WriteReg(R9, 0x20000160)
T1658 000:736.518 - 0.023ms returns 0
T1658 000:736.544 JLINK_WriteReg(R10, 0x00000000)
T1658 000:736.566 - 0.023ms returns 0
T1658 000:736.593 JLINK_WriteReg(R11, 0x00000000)
T1658 000:736.616 - 0.023ms returns 0
T1658 000:736.641 JLINK_WriteReg(R12, 0x00000000)
T1658 000:736.664 - 0.023ms returns 0
T1658 000:736.690 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:736.715 - 0.025ms returns 0
T1658 000:736.741 JLINK_WriteReg(R14, 0x20000001)
T1658 000:736.763 - 0.022ms returns 0
T1658 000:736.789 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:736.813 - 0.024ms returns 0
T1658 000:736.839 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:736.862 - 0.023ms returns 0
T1658 000:736.887 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:736.910 - 0.023ms returns 0
T1658 000:736.935 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:736.958 - 0.022ms returns 0
T1658 000:736.984 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:737.007 - 0.023ms returns 0
T1658 000:737.034 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:737.061 - 0.028ms returns 0x00000017
T1658 000:737.086 JLINK_Go()
T1658 000:737.135 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:739.047 - 1.958ms
T1658 000:739.102 JLINK_IsHalted()
T1658 000:739.499 - 0.395ms returns FALSE
T1658 000:739.554 JLINK_HasError()
T1658 000:741.217 JLINK_IsHalted()
T1658 000:741.680 - 0.461ms returns FALSE
T1658 000:741.735 JLINK_HasError()
T1658 000:743.253 JLINK_IsHalted()
T1658 000:743.668 - 0.412ms returns FALSE
T1658 000:743.722 JLINK_HasError()
T1658 000:745.251 JLINK_IsHalted()
T1658 000:745.673 - 0.420ms returns FALSE
T1658 000:745.727 JLINK_HasError()
T1658 000:747.244 JLINK_IsHalted()
T1658 000:747.658 - 0.411ms returns FALSE
T1658 000:747.712 JLINK_HasError()
T1658 000:749.726 JLINK_IsHalted()
T1658 000:750.138 - 0.410ms returns FALSE
T1658 000:750.193 JLINK_HasError()
T1658 000:751.697 JLINK_IsHalted()
T1658 000:752.150 - 0.451ms returns FALSE
T1658 000:752.205 JLINK_HasError()
T1658 000:753.676 JLINK_IsHalted()
T1658 000:754.094 - 0.416ms returns FALSE
T1658 000:754.149 JLINK_HasError()
T1658 000:755.717 JLINK_IsHalted()
T1658 000:756.184 - 0.465ms returns FALSE
T1658 000:756.239 JLINK_HasError()
T1658 000:757.710 JLINK_IsHalted()
T1658 000:758.126 - 0.414ms returns FALSE
T1658 000:758.186 JLINK_HasError()
T1658 000:759.703 JLINK_IsHalted()
T1658 000:760.118 - 0.413ms returns FALSE
T1658 000:760.173 JLINK_HasError()
T1658 000:761.701 JLINK_IsHalted()
T1658 000:762.165 - 0.462ms returns FALSE
T1658 000:762.220 JLINK_HasError()
T1658 000:763.690 JLINK_IsHalted()
T1658 000:764.105 - 0.413ms returns FALSE
T1658 000:764.160 JLINK_HasError()
T1658 000:765.680 JLINK_IsHalted()
T1658 000:766.088 - 0.405ms returns FALSE
T1658 000:766.143 JLINK_HasError()
T1658 000:767.715 JLINK_IsHalted()
T1658 000:768.097 - 0.379ms returns FALSE
T1658 000:768.152 JLINK_HasError()
T1658 000:769.675 JLINK_IsHalted()
T1658 000:771.143 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:771.607 - 1.931ms returns TRUE
T1658 000:771.662 JLINK_ReadReg(R15 (PC))
T1658 000:771.696 - 0.032ms returns 0x20000000
T1658 000:771.722 JLINK_ClrBPEx(BPHandle = 0x00000017)
T1658 000:771.748 - 0.025ms returns 0x00
T1658 000:771.774 JLINK_ReadReg(R0)
T1658 000:771.797 - 0.022ms returns 0x00000000
T1658 000:773.486 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:773.530 Data: C0 69 10 F4 40 7F 04 D0 FF E7 03 98 FF F7 54 FF ...
T1658 000:773.613 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:775.205 - 1.718ms returns 0x29C
T1658 000:775.261 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:775.287 Data: 04 21 C4 F2 01 01 08 68 07 90 07 98 40 F0 E0 60 ...
T1658 000:775.340 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:776.572 - 1.310ms returns 0x164
T1658 000:776.628 JLINK_HasError()
T1658 000:776.674 JLINK_WriteReg(R0, 0x08002000)
T1658 000:776.707 - 0.033ms returns 0
T1658 000:776.734 JLINK_WriteReg(R1, 0x00000400)
T1658 000:776.758 - 0.023ms returns 0
T1658 000:776.783 JLINK_WriteReg(R2, 0x20000164)
T1658 000:776.806 - 0.023ms returns 0
T1658 000:776.831 JLINK_WriteReg(R3, 0x00000000)
T1658 000:776.853 - 0.022ms returns 0
T1658 000:776.879 JLINK_WriteReg(R4, 0x00000000)
T1658 000:776.902 - 0.023ms returns 0
T1658 000:776.928 JLINK_WriteReg(R5, 0x00000000)
T1658 000:776.951 - 0.023ms returns 0
T1658 000:776.976 JLINK_WriteReg(R6, 0x00000000)
T1658 000:776.999 - 0.023ms returns 0
T1658 000:777.024 JLINK_WriteReg(R7, 0x00000000)
T1658 000:777.046 - 0.022ms returns 0
T1658 000:777.073 JLINK_WriteReg(R8, 0x00000000)
T1658 000:777.095 - 0.023ms returns 0
T1658 000:777.121 JLINK_WriteReg(R9, 0x20000160)
T1658 000:777.144 - 0.023ms returns 0
T1658 000:777.169 JLINK_WriteReg(R10, 0x00000000)
T1658 000:777.193 - 0.023ms returns 0
T1658 000:777.218 JLINK_WriteReg(R11, 0x00000000)
T1658 000:777.240 - 0.022ms returns 0
T1658 000:777.265 JLINK_WriteReg(R12, 0x00000000)
T1658 000:777.288 - 0.023ms returns 0
T1658 000:777.314 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:777.339 - 0.025ms returns 0
T1658 000:777.364 JLINK_WriteReg(R14, 0x20000001)
T1658 000:777.387 - 0.023ms returns 0
T1658 000:777.413 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:777.435 - 0.023ms returns 0
T1658 000:777.461 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:777.484 - 0.023ms returns 0
T1658 000:777.510 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:777.532 - 0.023ms returns 0
T1658 000:777.564 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:777.587 - 0.023ms returns 0
T1658 000:777.612 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:777.635 - 0.023ms returns 0
T1658 000:777.663 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:777.689 - 0.026ms returns 0x00000018
T1658 000:777.876 JLINK_Go()
T1658 000:777.929 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:779.779 - 1.901ms
T1658 000:779.834 JLINK_IsHalted()
T1658 000:780.226 - 0.389ms returns FALSE
T1658 000:780.281 JLINK_HasError()
T1658 000:781.655 JLINK_IsHalted()
T1658 000:782.073 - 0.415ms returns FALSE
T1658 000:782.127 JLINK_HasError()
T1658 000:783.632 JLINK_IsHalted()
T1658 000:784.123 - 0.489ms returns FALSE
T1658 000:784.184 JLINK_HasError()
T1658 000:789.582 JLINK_IsHalted()
T1658 000:789.993 - 0.409ms returns FALSE
T1658 000:790.048 JLINK_HasError()
T1658 000:791.576 JLINK_IsHalted()
T1658 000:792.004 - 0.425ms returns FALSE
T1658 000:792.059 JLINK_HasError()
T1658 000:794.049 JLINK_IsHalted()
T1658 000:794.472 - 0.421ms returns FALSE
T1658 000:794.527 JLINK_HasError()
T1658 000:796.091 JLINK_IsHalted()
T1658 000:796.503 - 0.410ms returns FALSE
T1658 000:796.558 JLINK_HasError()
T1658 000:798.080 JLINK_IsHalted()
T1658 000:798.514 - 0.431ms returns FALSE
T1658 000:798.572 JLINK_HasError()
T1658 000:800.052 JLINK_IsHalted()
T1658 000:800.534 - 0.479ms returns FALSE
T1658 000:800.588 JLINK_HasError()
T1658 000:802.561 JLINK_IsHalted()
T1658 000:802.992 - 0.429ms returns FALSE
T1658 000:803.047 JLINK_HasError()
T1658 000:805.070 JLINK_IsHalted()
T1658 000:805.555 - 0.483ms returns FALSE
T1658 000:805.609 JLINK_HasError()
T1658 000:807.022 JLINK_IsHalted()
T1658 000:807.489 - 0.465ms returns FALSE
T1658 000:807.544 JLINK_HasError()
T1658 000:809.027 JLINK_IsHalted()
T1658 000:809.454 - 0.425ms returns FALSE
T1658 000:809.514 JLINK_HasError()
T1658 000:811.062 JLINK_IsHalted()
T1658 000:812.590 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:813.093 - 2.029ms returns TRUE
T1658 000:813.149 JLINK_ReadReg(R15 (PC))
T1658 000:813.183 - 0.033ms returns 0x20000000
T1658 000:813.211 JLINK_ClrBPEx(BPHandle = 0x00000018)
T1658 000:813.235 - 0.024ms returns 0x00
T1658 000:813.261 JLINK_ReadReg(R0)
T1658 000:813.285 - 0.023ms returns 0x00000000
T1658 000:814.983 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:815.027 Data: D3 52 C1 F2 62 02 A1 FB 02 21 89 09 48 43 00 90 ...
T1658 000:815.236 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:816.898 - 1.914ms returns 0x29C
T1658 000:816.954 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:816.980 Data: 04 98 80 69 01 90 01 98 20 F0 F0 00 01 90 02 99 ...
T1658 000:817.034 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:818.181 - 1.226ms returns 0x164
T1658 000:818.236 JLINK_HasError()
T1658 000:818.267 JLINK_WriteReg(R0, 0x08002400)
T1658 000:818.299 - 0.032ms returns 0
T1658 000:818.326 JLINK_WriteReg(R1, 0x00000400)
T1658 000:818.349 - 0.023ms returns 0
T1658 000:818.375 JLINK_WriteReg(R2, 0x20000164)
T1658 000:818.398 - 0.022ms returns 0
T1658 000:818.423 JLINK_WriteReg(R3, 0x00000000)
T1658 000:818.446 - 0.023ms returns 0
T1658 000:818.472 JLINK_WriteReg(R4, 0x00000000)
T1658 000:818.494 - 0.023ms returns 0
T1658 000:818.520 JLINK_WriteReg(R5, 0x00000000)
T1658 000:818.543 - 0.023ms returns 0
T1658 000:818.568 JLINK_WriteReg(R6, 0x00000000)
T1658 000:818.591 - 0.022ms returns 0
T1658 000:818.616 JLINK_WriteReg(R7, 0x00000000)
T1658 000:818.640 - 0.023ms returns 0
T1658 000:818.665 JLINK_WriteReg(R8, 0x00000000)
T1658 000:818.688 - 0.023ms returns 0
T1658 000:818.713 JLINK_WriteReg(R9, 0x20000160)
T1658 000:818.736 - 0.022ms returns 0
T1658 000:818.762 JLINK_WriteReg(R10, 0x00000000)
T1658 000:818.785 - 0.023ms returns 0
T1658 000:818.811 JLINK_WriteReg(R11, 0x00000000)
T1658 000:818.834 - 0.023ms returns 0
T1658 000:818.875 JLINK_WriteReg(R12, 0x00000000)
T1658 000:818.899 - 0.024ms returns 0
T1658 000:818.925 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:818.950 - 0.025ms returns 0
T1658 000:818.975 JLINK_WriteReg(R14, 0x20000001)
T1658 000:818.997 - 0.022ms returns 0
T1658 000:819.023 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:819.046 - 0.023ms returns 0
T1658 000:819.071 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:819.094 - 0.023ms returns 0
T1658 000:819.139 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:819.163 - 0.024ms returns 0
T1658 000:819.188 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:819.210 - 0.022ms returns 0
T1658 000:819.236 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:819.259 - 0.023ms returns 0
T1658 000:819.286 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:819.313 - 0.027ms returns 0x00000019
T1658 000:819.338 JLINK_Go()
T1658 000:819.387 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:821.387 - 2.047ms
T1658 000:821.442 JLINK_IsHalted()
T1658 000:821.837 - 0.392ms returns FALSE
T1658 000:821.892 JLINK_HasError()
T1658 000:823.881 JLINK_IsHalted()
T1658 000:824.381 - 0.498ms returns FALSE
T1658 000:824.435 JLINK_HasError()
T1658 000:825.921 JLINK_IsHalted()
T1658 000:826.352 - 0.429ms returns FALSE
T1658 000:826.406 JLINK_HasError()
T1658 000:827.867 JLINK_IsHalted()
T1658 000:828.273 - 0.404ms returns FALSE
T1658 000:828.327 JLINK_HasError()
T1658 000:830.335 JLINK_IsHalted()
T1658 000:830.768 - 0.431ms returns FALSE
T1658 000:830.823 JLINK_HasError()
T1658 000:832.306 JLINK_IsHalted()
T1658 000:832.792 - 0.484ms returns FALSE
T1658 000:832.846 JLINK_HasError()
T1658 000:834.427 JLINK_IsHalted()
T1658 000:834.913 - 0.484ms returns FALSE
T1658 000:834.967 JLINK_HasError()
T1658 000:836.320 JLINK_IsHalted()
T1658 000:836.727 - 0.405ms returns FALSE
T1658 000:836.782 JLINK_HasError()
T1658 000:838.752 JLINK_IsHalted()
T1658 000:839.136 - 0.382ms returns FALSE
T1658 000:839.191 JLINK_HasError()
T1658 000:841.172 JLINK_IsHalted()
T1658 000:841.643 - 0.469ms returns FALSE
T1658 000:841.698 JLINK_HasError()
T1658 000:843.164 JLINK_IsHalted()
T1658 000:843.584 - 0.417ms returns FALSE
T1658 000:843.639 JLINK_HasError()
T1658 000:845.591 JLINK_IsHalted()
T1658 000:846.065 - 0.472ms returns FALSE
T1658 000:846.119 JLINK_HasError()
T1658 000:847.553 JLINK_IsHalted()
T1658 000:847.975 - 0.420ms returns FALSE
T1658 000:848.029 JLINK_HasError()
T1658 000:850.018 JLINK_IsHalted()
T1658 000:850.508 - 0.488ms returns FALSE
T1658 000:850.562 JLINK_HasError()
T1658 000:851.998 JLINK_IsHalted()
T1658 000:853.503 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:854.006 - 2.006ms returns TRUE
T1658 000:854.060 JLINK_ReadReg(R15 (PC))
T1658 000:854.093 - 0.031ms returns 0x20000000
T1658 000:854.121 JLINK_ClrBPEx(BPHandle = 0x00000019)
T1658 000:854.146 - 0.025ms returns 0x00
T1658 000:854.172 JLINK_ReadReg(R0)
T1658 000:854.196 - 0.023ms returns 0x00000000
T1658 000:856.745 JLINK_WriteMem(0x20000164, 0x29C Bytes, ...)
T1658 000:856.788 Data: 10 43 01 90 01 98 08 60 03 B0 70 47 80 B5 82 B0 ...
T1658 000:856.842 CPU_WriteMem(668 bytes @ 0x20000164)
T1658 000:858.507 - 1.762ms returns 0x29C
T1658 000:858.563 JLINK_WriteMem(0x20000400, 0x164 Bytes, ...)
T1658 000:858.589 Data: FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ...
T1658 000:858.641 CPU_WriteMem(356 bytes @ 0x20000400)
T1658 000:859.862 - 1.297ms returns 0x164
T1658 000:859.922 JLINK_HasError()
T1658 000:859.954 JLINK_WriteReg(R0, 0x08002800)
T1658 000:859.985 - 0.031ms returns 0
T1658 000:860.015 JLINK_WriteReg(R1, 0x00000090)
T1658 000:860.040 - 0.025ms returns 0
T1658 000:860.070 JLINK_WriteReg(R2, 0x20000164)
T1658 000:860.093 - 0.023ms returns 0
T1658 000:860.122 JLINK_WriteReg(R3, 0x00000000)
T1658 000:860.146 - 0.023ms returns 0
T1658 000:860.175 JLINK_WriteReg(R4, 0x00000000)
T1658 000:860.198 - 0.023ms returns 0
T1658 000:860.227 JLINK_WriteReg(R5, 0x00000000)
T1658 000:860.250 - 0.023ms returns 0
T1658 000:860.278 JLINK_WriteReg(R6, 0x00000000)
T1658 000:860.302 - 0.023ms returns 0
T1658 000:860.346 JLINK_WriteReg(R7, 0x00000000)
T1658 000:860.369 - 0.024ms returns 0
T1658 000:860.542 JLINK_WriteReg(R8, 0x00000000)
T1658 000:860.598 - 0.057ms returns 0
T1658 000:860.628 JLINK_WriteReg(R9, 0x20000160)
T1658 000:860.652 - 0.024ms returns 0
T1658 000:860.678 JLINK_WriteReg(R10, 0x00000000)
T1658 000:860.701 - 0.023ms returns 0
T1658 000:860.727 JLINK_WriteReg(R11, 0x00000000)
T1658 000:860.762 - 0.035ms returns 0
T1658 000:860.795 JLINK_WriteReg(R12, 0x00000000)
T1658 000:860.819 - 0.023ms returns 0
T1658 000:860.844 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:860.869 - 0.025ms returns 0
T1658 000:860.894 JLINK_WriteReg(R14, 0x20000001)
T1658 000:860.917 - 0.023ms returns 0
T1658 000:860.943 JLINK_WriteReg(R15 (PC), 0x200000F4)
T1658 000:860.966 - 0.023ms returns 0
T1658 000:860.991 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:861.014 - 0.023ms returns 0
T1658 000:861.039 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:861.062 - 0.022ms returns 0
T1658 000:861.088 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:861.111 - 0.023ms returns 0
T1658 000:861.136 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:861.159 - 0.023ms returns 0
T1658 000:861.186 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:861.214 - 0.029ms returns 0x0000001A
T1658 000:861.240 JLINK_Go()
T1658 000:861.292 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:863.205 - 1.962ms
T1658 000:863.258 JLINK_IsHalted()
T1658 000:863.600 - 0.339ms returns FALSE
T1658 000:863.655 JLINK_HasError()
T1658 000:865.060 JLINK_IsHalted()
T1658 000:865.527 - 0.465ms returns FALSE
T1658 000:865.581 JLINK_HasError()
T1658 000:867.038 JLINK_IsHalted()
T1658 000:867.403 - 0.363ms returns FALSE
T1658 000:867.459 JLINK_HasError()
T1658 000:869.399 JLINK_IsHalted()
T1658 000:870.903 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:871.342 - 1.941ms returns TRUE
T1658 000:871.397 JLINK_ReadReg(R15 (PC))
T1658 000:871.430 - 0.032ms returns 0x20000000
T1658 000:871.457 JLINK_ClrBPEx(BPHandle = 0x0000001A)
T1658 000:871.482 - 0.024ms returns 0x00
T1658 000:871.508 JLINK_ReadReg(R0)
T1658 000:871.532 - 0.023ms returns 0x00000000
T1658 000:871.558 JLINK_HasError()
T1658 000:871.586 JLINK_WriteReg(R0, 0x00000002)
T1658 000:871.611 - 0.025ms returns 0
T1658 000:871.637 JLINK_WriteReg(R1, 0x00000090)
T1658 000:871.660 - 0.023ms returns 0
T1658 000:871.685 JLINK_WriteReg(R2, 0x20000164)
T1658 000:871.708 - 0.023ms returns 0
T1658 000:871.733 JLINK_WriteReg(R3, 0x00000000)
T1658 000:871.756 - 0.023ms returns 0
T1658 000:871.782 JLINK_WriteReg(R4, 0x00000000)
T1658 000:871.804 - 0.022ms returns 0
T1658 000:871.830 JLINK_WriteReg(R5, 0x00000000)
T1658 000:871.852 - 0.022ms returns 0
T1658 000:871.878 JLINK_WriteReg(R6, 0x00000000)
T1658 000:871.901 - 0.022ms returns 0
T1658 000:871.926 JLINK_WriteReg(R7, 0x00000000)
T1658 000:871.949 - 0.023ms returns 0
T1658 000:871.975 JLINK_WriteReg(R8, 0x00000000)
T1658 000:871.997 - 0.023ms returns 0
T1658 000:872.023 JLINK_WriteReg(R9, 0x20000160)
T1658 000:872.045 - 0.022ms returns 0
T1658 000:872.071 JLINK_WriteReg(R10, 0x00000000)
T1658 000:872.094 - 0.023ms returns 0
T1658 000:872.120 JLINK_WriteReg(R11, 0x00000000)
T1658 000:872.143 - 0.023ms returns 0
T1658 000:872.168 JLINK_WriteReg(R12, 0x00000000)
T1658 000:872.191 - 0.023ms returns 0
T1658 000:872.217 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:872.241 - 0.024ms returns 0
T1658 000:872.267 JLINK_WriteReg(R14, 0x20000001)
T1658 000:872.290 - 0.023ms returns 0
T1658 000:872.324 JLINK_WriteReg(R15 (PC), 0x2000006A)
T1658 000:872.348 - 0.024ms returns 0
T1658 000:872.373 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:872.396 - 0.022ms returns 0
T1658 000:872.422 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:872.444 - 0.023ms returns 0
T1658 000:872.470 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:872.493 - 0.023ms returns 0
T1658 000:872.518 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:872.541 - 0.023ms returns 0
T1658 000:872.567 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:872.592 - 0.026ms returns 0x0000001B
T1658 000:872.617 JLINK_Go()
T1658 000:872.665 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:874.551 - 1.931ms
T1658 000:874.605 JLINK_IsHalted()
T1658 000:876.060 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:876.487 - 1.880ms returns TRUE
T1658 000:876.543 JLINK_ReadReg(R15 (PC))
T1658 000:876.574 - 0.031ms returns 0x20000000
T1658 000:876.602 JLINK_ClrBPEx(BPHandle = 0x0000001B)
T1658 000:876.637 - 0.034ms returns 0x00
T1658 000:876.670 JLINK_ReadReg(R0)
T1658 000:876.694 - 0.023ms returns 0x00000000
T1658 000:946.454 JLINK_WriteMem(0x20000000, 0x164 Bytes, ...)
T1658 000:946.489 Data: 00 BE 0A E0 0D 78 2D 06 68 40 08 24 40 00 00 D3 ...
T1658 000:946.535 CPU_WriteMem(356 bytes @ 0x20000000)
T1658 000:947.676 - 1.221ms returns 0x164
T1658 000:947.769 JLINK_HasError()
T1658 000:947.796 JLINK_WriteReg(R0, 0x08000000)
T1658 000:947.818 - 0.022ms returns 0
T1658 000:947.835 JLINK_WriteReg(R1, 0x007A1200)
T1658 000:947.851 - 0.015ms returns 0
T1658 000:947.868 JLINK_WriteReg(R2, 0x00000003)
T1658 000:947.884 - 0.015ms returns 0
T1658 000:947.901 JLINK_WriteReg(R3, 0x00000000)
T1658 000:947.917 - 0.015ms returns 0
T1658 000:947.934 JLINK_WriteReg(R4, 0x00000000)
T1658 000:947.949 - 0.015ms returns 0
T1658 000:947.966 JLINK_WriteReg(R5, 0x00000000)
T1658 000:947.981 - 0.015ms returns 0
T1658 000:947.999 JLINK_WriteReg(R6, 0x00000000)
T1658 000:948.014 - 0.015ms returns 0
T1658 000:948.031 JLINK_WriteReg(R7, 0x00000000)
T1658 000:948.047 - 0.015ms returns 0
T1658 000:948.064 JLINK_WriteReg(R8, 0x00000000)
T1658 000:948.080 - 0.016ms returns 0
T1658 000:948.097 JLINK_WriteReg(R9, 0x20000160)
T1658 000:948.111 - 0.015ms returns 0
T1658 000:948.129 JLINK_WriteReg(R10, 0x00000000)
T1658 000:948.145 - 0.015ms returns 0
T1658 000:948.162 JLINK_WriteReg(R11, 0x00000000)
T1658 000:948.177 - 0.015ms returns 0
T1658 000:948.194 JLINK_WriteReg(R12, 0x00000000)
T1658 000:948.210 - 0.015ms returns 0
T1658 000:948.227 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:948.244 - 0.017ms returns 0
T1658 000:948.262 JLINK_WriteReg(R14, 0x20000001)
T1658 000:948.277 - 0.016ms returns 0
T1658 000:948.295 JLINK_WriteReg(R15 (PC), 0x20000038)
T1658 000:948.310 - 0.016ms returns 0
T1658 000:948.328 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:948.343 - 0.016ms returns 0
T1658 000:948.360 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:948.375 - 0.015ms returns 0
T1658 000:948.394 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:948.409 - 0.015ms returns 0
T1658 000:948.427 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:948.443 - 0.016ms returns 0
T1658 000:948.461 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:948.552 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:948.953 - 0.492ms returns 0x0000001C
T1658 000:948.982 JLINK_Go()
T1658 000:949.002 CPU_WriteMem(2 bytes @ 0x20000000)
T1658 000:949.363 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:951.055 - 2.072ms
T1658 000:951.084 JLINK_IsHalted()
T1658 000:952.344 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 000:952.656 - 1.571ms returns TRUE
T1658 000:952.678 JLINK_ReadReg(R15 (PC))
T1658 000:952.693 - 0.014ms returns 0x20000000
T1658 000:952.707 JLINK_ClrBPEx(BPHandle = 0x0000001C)
T1658 000:952.719 - 0.012ms returns 0x00
T1658 000:952.732 JLINK_ReadReg(R0)
T1658 000:952.744 - 0.011ms returns 0x00000000
T1658 000:952.757 JLINK_HasError()
T1658 000:952.771 JLINK_WriteReg(R0, 0xFFFFFFFF)
T1658 000:952.784 - 0.012ms returns 0
T1658 000:952.797 JLINK_WriteReg(R1, 0x08000000)
T1658 000:952.809 - 0.011ms returns 0
T1658 000:952.821 JLINK_WriteReg(R2, 0x00002890)
T1658 000:952.832 - 0.011ms returns 0
T1658 000:952.845 JLINK_WriteReg(R3, 0x04C11DB7)
T1658 000:952.856 - 0.011ms returns 0
T1658 000:952.869 JLINK_WriteReg(R4, 0x00000000)
T1658 000:952.880 - 0.011ms returns 0
T1658 000:952.893 JLINK_WriteReg(R5, 0x00000000)
T1658 000:952.905 - 0.011ms returns 0
T1658 000:952.917 JLINK_WriteReg(R6, 0x00000000)
T1658 000:952.929 - 0.011ms returns 0
T1658 000:952.941 JLINK_WriteReg(R7, 0x00000000)
T1658 000:952.953 - 0.011ms returns 0
T1658 000:952.966 JLINK_WriteReg(R8, 0x00000000)
T1658 000:952.977 - 0.011ms returns 0
T1658 000:952.990 JLINK_WriteReg(R9, 0x20000160)
T1658 000:953.001 - 0.011ms returns 0
T1658 000:953.014 JLINK_WriteReg(R10, 0x00000000)
T1658 000:953.026 - 0.011ms returns 0
T1658 000:953.038 JLINK_WriteReg(R11, 0x00000000)
T1658 000:953.050 - 0.011ms returns 0
T1658 000:953.062 JLINK_WriteReg(R12, 0x00000000)
T1658 000:953.085 - 0.022ms returns 0
T1658 000:953.099 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 000:953.111 - 0.012ms returns 0
T1658 000:953.124 JLINK_WriteReg(R14, 0x20000001)
T1658 000:953.135 - 0.011ms returns 0
T1658 000:953.148 JLINK_WriteReg(R15 (PC), 0x20000002)
T1658 000:953.159 - 0.011ms returns 0
T1658 000:953.172 JLINK_WriteReg(XPSR, 0x01000000)
T1658 000:953.184 - 0.011ms returns 0
T1658 000:953.196 JLINK_WriteReg(MSP, 0x20001000)
T1658 000:953.208 - 0.011ms returns 0
T1658 000:953.220 JLINK_WriteReg(PSP, 0x20001000)
T1658 000:953.231 - 0.011ms returns 0
T1658 000:953.244 JLINK_WriteReg(CFBP, 0x00000000)
T1658 000:953.256 - 0.011ms returns 0
T1658 000:953.269 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 000:953.282 - 0.013ms returns 0x0000001D
T1658 000:953.295 JLINK_Go()
T1658 000:953.319 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 000:954.887 - 1.591ms
T1658 000:954.910 JLINK_IsHalted()
T1658 000:955.153 - 0.241ms returns FALSE
T1658 000:955.176 JLINK_HasError()
T1658 000:960.087 JLINK_IsHalted()
T1658 000:960.396 - 0.308ms returns FALSE
T1658 000:960.415 JLINK_HasError()
T1658 000:962.451 JLINK_IsHalted()
T1658 000:962.719 - 0.268ms returns FALSE
T1658 000:962.740 JLINK_HasError()
T1658 000:964.768 JLINK_IsHalted()
T1658 000:965.036 - 0.267ms returns FALSE
T1658 000:965.056 JLINK_HasError()
T1658 000:966.711 JLINK_IsHalted()
T1658 000:966.999 - 0.287ms returns FALSE
T1658 000:967.018 JLINK_HasError()
T1658 000:968.757 JLINK_IsHalted()
T1658 000:969.078 - 0.319ms returns FALSE
T1658 000:969.096 JLINK_HasError()
T1658 000:971.159 JLINK_IsHalted()
T1658 000:971.442 - 0.283ms returns FALSE
T1658 000:971.461 JLINK_HasError()
T1658 000:973.180 JLINK_IsHalted()
T1658 000:973.473 - 0.292ms returns FALSE
T1658 000:973.491 JLINK_HasError()
T1658 000:975.166 JLINK_IsHalted()
T1658 000:975.452 - 0.284ms returns FALSE
T1658 000:975.470 JLINK_HasError()
T1658 000:977.134 JLINK_IsHalted()
T1658 000:977.437 - 0.302ms returns FALSE
T1658 000:977.456 JLINK_HasError()
T1658 000:979.130 JLINK_IsHalted()
T1658 000:979.403 - 0.272ms returns FALSE
T1658 000:979.422 JLINK_HasError()
T1658 000:981.216 JLINK_IsHalted()
T1658 000:981.493 - 0.276ms returns FALSE
T1658 000:981.512 JLINK_HasError()
T1658 000:983.294 JLINK_IsHalted()
T1658 000:983.637 - 0.343ms returns FALSE
T1658 000:983.651 JLINK_HasError()
T1658 000:985.305 JLINK_IsHalted()
T1658 000:985.573 - 0.267ms returns FALSE
T1658 000:985.592 JLINK_HasError()
T1658 000:987.287 JLINK_IsHalted()
T1658 000:987.589 - 0.300ms returns FALSE
T1658 000:987.608 JLINK_HasError()
T1658 000:989.283 JLINK_IsHalted()
T1658 000:989.580 - 0.296ms returns FALSE
T1658 000:989.598 JLINK_HasError()
T1658 000:991.280 JLINK_IsHalted()
T1658 000:991.569 - 0.288ms returns FALSE
T1658 000:991.588 JLINK_HasError()
T1658 000:993.648 JLINK_IsHalted()
T1658 000:993.944 - 0.295ms returns FALSE
T1658 000:993.962 JLINK_HasError()
T1658 000:996.046 JLINK_IsHalted()
T1658 000:996.348 - 0.300ms returns FALSE
T1658 000:996.366 JLINK_HasError()
T1658 000:998.018 JLINK_IsHalted()
T1658 000:998.365 - 0.346ms returns FALSE
T1658 000:998.384 JLINK_HasError()
T1658 001:000.011 JLINK_IsHalted()
T1658 001:000.321 - 0.308ms returns FALSE
T1658 001:000.342 JLINK_HasError()
T1658 001:002.002 JLINK_IsHalted()
T1658 001:002.250 - 0.247ms returns FALSE
T1658 001:002.272 JLINK_HasError()
T1658 001:004.993 JLINK_IsHalted()
T1658 001:005.311 - 0.317ms returns FALSE
T1658 001:005.337 JLINK_HasError()
T1658 001:006.992 JLINK_IsHalted()
T1658 001:007.330 - 0.337ms returns FALSE
T1658 001:007.355 JLINK_HasError()
T1658 001:008.996 JLINK_IsHalted()
T1658 001:009.340 - 0.343ms returns FALSE
T1658 001:009.370 JLINK_HasError()
T1658 001:011.095 JLINK_IsHalted()
T1658 001:011.435 - 0.339ms returns FALSE
T1658 001:011.465 JLINK_HasError()
T1658 001:013.096 JLINK_IsHalted()
T1658 001:013.441 - 0.343ms returns FALSE
T1658 001:013.471 JLINK_HasError()
T1658 001:015.049 JLINK_IsHalted()
T1658 001:015.443 - 0.392ms returns FALSE
T1658 001:015.488 JLINK_HasError()
T1658 001:017.082 JLINK_IsHalted()
T1658 001:017.512 - 0.428ms returns FALSE
T1658 001:017.551 JLINK_HasError()
T1658 001:019.098 JLINK_IsHalted()
T1658 001:019.467 - 0.368ms returns FALSE
T1658 001:019.517 JLINK_HasError()
T1658 001:021.072 JLINK_IsHalted()
T1658 001:021.461 - 0.386ms returns FALSE
T1658 001:021.510 JLINK_HasError()
T1658 001:023.516 JLINK_IsHalted()
T1658 001:024.008 - 0.491ms returns FALSE
T1658 001:024.063 JLINK_HasError()
T1658 001:025.511 JLINK_IsHalted()
T1658 001:025.995 - 0.481ms returns FALSE
T1658 001:026.050 JLINK_HasError()
T1658 001:027.509 JLINK_IsHalted()
T1658 001:027.936 - 0.424ms returns FALSE
T1658 001:027.991 JLINK_HasError()
T1658 001:030.008 JLINK_IsHalted()
T1658 001:030.419 - 0.409ms returns FALSE
T1658 001:030.473 JLINK_HasError()
T1658 001:031.957 JLINK_IsHalted()
T1658 001:032.368 - 0.409ms returns FALSE
T1658 001:032.424 JLINK_HasError()
T1658 001:033.949 JLINK_IsHalted()
T1658 001:034.348 - 0.397ms returns FALSE
T1658 001:034.402 JLINK_HasError()
T1658 001:035.977 JLINK_IsHalted()
T1658 001:036.442 - 0.463ms returns FALSE
T1658 001:036.496 JLINK_HasError()
T1658 001:037.945 JLINK_IsHalted()
T1658 001:038.342 - 0.395ms returns FALSE
T1658 001:038.397 JLINK_HasError()
T1658 001:039.985 JLINK_IsHalted()
T1658 001:040.384 - 0.396ms returns FALSE
T1658 001:040.445 JLINK_HasError()
T1658 001:041.978 JLINK_IsHalted()
T1658 001:042.371 - 0.391ms returns FALSE
T1658 001:042.426 JLINK_HasError()
T1658 001:044.396 JLINK_IsHalted()
T1658 001:044.897 - 0.498ms returns FALSE
T1658 001:044.951 JLINK_HasError()
T1658 001:046.395 JLINK_IsHalted()
T1658 001:046.870 - 0.473ms returns FALSE
T1658 001:046.924 JLINK_HasError()
T1658 001:048.914 JLINK_IsHalted()
T1658 001:049.426 - 0.510ms returns FALSE
T1658 001:049.481 JLINK_HasError()
T1658 001:050.899 JLINK_IsHalted()
T1658 001:051.295 - 0.393ms returns FALSE
T1658 001:051.349 JLINK_HasError()
T1658 001:052.885 JLINK_IsHalted()
T1658 001:053.310 - 0.423ms returns FALSE
T1658 001:053.365 JLINK_HasError()
T1658 001:055.348 JLINK_IsHalted()
T1658 001:055.852 - 0.502ms returns FALSE
T1658 001:055.906 JLINK_HasError()
T1658 001:057.352 JLINK_IsHalted()
T1658 001:057.874 - 0.519ms returns FALSE
T1658 001:057.929 JLINK_HasError()
T1658 001:059.901 JLINK_IsHalted()
T1658 001:060.354 - 0.451ms returns FALSE
T1658 001:060.409 JLINK_HasError()
T1658 001:061.894 JLINK_IsHalted()
T1658 001:062.288 - 0.392ms returns FALSE
T1658 001:062.342 JLINK_HasError()
T1658 001:063.887 JLINK_IsHalted()
T1658 001:064.306 - 0.417ms returns FALSE
T1658 001:064.362 JLINK_HasError()
T1658 001:065.905 JLINK_IsHalted()
T1658 001:066.307 - 0.400ms returns FALSE
T1658 001:066.361 JLINK_HasError()
T1658 001:067.882 JLINK_IsHalted()
T1658 001:068.375 - 0.491ms returns FALSE
T1658 001:068.430 JLINK_HasError()
T1658 001:069.871 JLINK_IsHalted()
T1658 001:071.383 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 001:071.799 - 1.928ms returns TRUE
T1658 001:071.814 JLINK_ReadReg(R15 (PC))
T1658 001:071.821 - 0.007ms returns 0x20000000
T1658 001:071.827 JLINK_ClrBPEx(BPHandle = 0x0000001D)
T1658 001:071.832 - 0.005ms returns 0x00
T1658 001:071.838 JLINK_ReadReg(R0)
T1658 001:071.843 - 0.005ms returns 0x36327BFC
T1658 001:072.605 JLINK_HasError()
T1658 001:072.616 JLINK_WriteReg(R0, 0x00000003)
T1658 001:072.622 - 0.006ms returns 0
T1658 001:072.628 JLINK_WriteReg(R1, 0x08000000)
T1658 001:072.632 - 0.004ms returns 0
T1658 001:072.638 JLINK_WriteReg(R2, 0x00002890)
T1658 001:072.642 - 0.004ms returns 0
T1658 001:072.647 JLINK_WriteReg(R3, 0x04C11DB7)
T1658 001:072.652 - 0.004ms returns 0
T1658 001:072.657 JLINK_WriteReg(R4, 0x00000000)
T1658 001:072.662 - 0.004ms returns 0
T1658 001:072.667 JLINK_WriteReg(R5, 0x00000000)
T1658 001:072.672 - 0.005ms returns 0
T1658 001:072.677 JLINK_WriteReg(R6, 0x00000000)
T1658 001:072.682 - 0.004ms returns 0
T1658 001:072.687 JLINK_WriteReg(R7, 0x00000000)
T1658 001:072.692 - 0.004ms returns 0
T1658 001:072.701 JLINK_WriteReg(R8, 0x00000000)
T1658 001:072.708 - 0.007ms returns 0
T1658 001:072.713 JLINK_WriteReg(R9, 0x20000160)
T1658 001:072.718 - 0.004ms returns 0
T1658 001:072.723 JLINK_WriteReg(R10, 0x00000000)
T1658 001:072.728 - 0.004ms returns 0
T1658 001:072.733 JLINK_WriteReg(R11, 0x00000000)
T1658 001:072.738 - 0.004ms returns 0
T1658 001:072.743 JLINK_WriteReg(R12, 0x00000000)
T1658 001:072.748 - 0.004ms returns 0
T1658 001:072.753 JLINK_WriteReg(R13 (SP), 0x20001000)
T1658 001:072.758 - 0.005ms returns 0
T1658 001:072.763 JLINK_WriteReg(R14, 0x20000001)
T1658 001:072.768 - 0.004ms returns 0
T1658 001:072.773 JLINK_WriteReg(R15 (PC), 0x2000006A)
T1658 001:072.778 - 0.004ms returns 0
T1658 001:072.783 JLINK_WriteReg(XPSR, 0x01000000)
T1658 001:072.788 - 0.004ms returns 0
T1658 001:072.793 JLINK_WriteReg(MSP, 0x20001000)
T1658 001:072.798 - 0.004ms returns 0
T1658 001:072.805 JLINK_WriteReg(PSP, 0x20001000)
T1658 001:072.810 - 0.004ms returns 0
T1658 001:072.815 JLINK_WriteReg(CFBP, 0x00000000)
T1658 001:072.819 - 0.004ms returns 0
T1658 001:072.825 JLINK_SetBPEx(Addr = 0x20000000, Type = 0xFFFFFFF2)
T1658 001:072.831 - 0.005ms returns 0x0000001E
T1658 001:072.836 JLINK_Go()
T1658 001:072.847 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 001:074.235 - 1.398ms
T1658 001:074.246 JLINK_IsHalted()
T1658 001:075.357 CPU_ReadMem(2 bytes @ 0x20000000)
T1658 001:075.656 - 1.409ms returns TRUE
T1658 001:075.668 JLINK_ReadReg(R15 (PC))
T1658 001:075.675 - 0.006ms returns 0x20000000
T1658 001:075.680 JLINK_ClrBPEx(BPHandle = 0x0000001E)
T1658 001:075.685 - 0.005ms returns 0x00
T1658 001:075.691 JLINK_ReadReg(R0)
T1658 001:075.696 - 0.004ms returns 0x00000000
T1658 001:132.917 JLINK_WriteMemEx(0x20000000, 0x00000002 Bytes, Flags = 0x02000000)
T1658 001:132.941 Data: FE E7
T1658 001:132.961 CPU_WriteMem(2 bytes @ 0x20000000)
T1658 001:133.243 - 0.325ms returns 0x2
T1658 001:133.256 JLINK_HasError()
T1658 001:133.262 JLINK_HasError()
T1658 001:133.267 JLINK_SetResetType(JLINKARM_CM3_RESET_TYPE_NORMAL)
T1658 001:133.272 - 0.005ms returns JLINKARM_CM3_RESET_TYPE_NORMAL
T1658 001:133.278 JLINK_Reset()
T1658 001:134.775 Memory map 'before startup completion point' is active
T1658 001:134.794 JLINK_GetResetTypeDesc
T1658 001:134.799 - 0.005ms
T1658 001:136.461 Reset type: NORMAL (https://wiki.segger.com/J-Link_Reset_Strategies)
T1658 001:136.478 CPU_WriteMem(4 bytes @ 0xE000EDF0)
T1658 001:136.866 CPU_WriteMem(4 bytes @ 0xE000EDFC)
T1658 001:138.515 Reset: Halt core after reset via DEMCR.VC_CORERESET.
T1658 001:139.880 Reset: Reset device via AIRCR.SYSRESETREQ.
T1658 001:139.894 CPU_WriteMem(4 bytes @ 0xE000ED0C)
T1658 001:192.889 CPU_ReadMem(4 bytes @ 0xE000EDF0)
T1658 001:193.439 CPU_ReadMem(4 bytes @ 0xE000EDF0)
T1658 001:194.017 CPU_WriteMem(4 bytes @ 0xE000EDFC)
T1658 001:200.822 CPU_ReadMem(4 bytes @ 0xE000EDF0)
T1658 001:202.583 CPU_WriteMem(4 bytes @ 0xE000EDFC)
T1658 001:203.002 CPU_WriteMem(4 bytes @ 0xE0001028)
T1658 001:203.404 CPU_WriteMem(4 bytes @ 0xE0001038)
T1658 001:203.834 CPU_WriteMem(4 bytes @ 0xE0001048)
T1658 001:204.200 CPU_WriteMem(4 bytes @ 0xE0001058)
T1658 001:204.552 CPU_WriteMem(4 bytes @ 0xE0002000)
T1658 001:204.941 CPU_ReadMem(4 bytes @ 0xE000EDFC)
T1658 001:205.284 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 001:205.636 - 72.356ms
T1658 001:205.683 JLINK_Go()
T1658 001:205.697 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 001:205.985 CPU_WriteMem(4 bytes @ 0xE0002008)
T1658 001:205.998 CPU_WriteMem(4 bytes @ 0xE000200C)
T1658 001:206.004 CPU_WriteMem(4 bytes @ 0xE0002010)
T1658 001:206.011 CPU_WriteMem(4 bytes @ 0xE0002014)
T1658 001:206.018 CPU_WriteMem(4 bytes @ 0xE0002018)
T1658 001:206.024 CPU_WriteMem(4 bytes @ 0xE000201C)
T1658 001:206.741 CPU_WriteMem(4 bytes @ 0xE0001004)
T1658 001:210.018 Memory map 'after startup completion point' is active
T1658 001:210.034 - 4.350ms
T1658 001:214.429 JLINK_Close()
T1658 001:215.297 CPU is running
T1658 001:215.386 CPU_WriteMem(4 bytes @ 0xE0002008)
T1658 001:215.821 CPU is running
T1658 001:215.904 CPU_WriteMem(4 bytes @ 0xE000200C)
T1658 001:216.348 CPU is running
T1658 001:216.410 CPU_WriteMem(4 bytes @ 0xE0002010)
T1658 001:216.817 CPU is running
T1658 001:216.895 CPU_WriteMem(4 bytes @ 0xE0002014)
T1658 001:217.360 CPU is running
T1658 001:217.420 CPU_WriteMem(4 bytes @ 0xE0002018)
T1658 001:217.875 CPU is running
T1658 001:217.936 CPU_WriteMem(4 bytes @ 0xE000201C)
T1658 001:228.050 OnDisconnectTarget() start
T1658 001:228.111 J-Link Script File: Executing OnDisconnectTarget()
T1658 001:228.159 CPU_WriteMem(4 bytes @ 0xE0042004)
T1658 001:236.565 OnDisconnectTarget() end - Took 517us
T1658 001:236.652 CPU_ReadMem(4 bytes @ 0xE0001000)
T1658 001:246.298 - 31.869ms
T1658 001:246.310
T1658 001:246.314 Closed

View File

@@ -1,47 +0,0 @@
[BREAKPOINTS]
ForceImpTypeAny = 0
ShowInfoWin = 1
EnableFlashBP = 2
BPDuringExecution = 0
[CFI]
CFISize = 0x00
CFIAddr = 0x00
[CPU]
MonModeVTableAddr = 0xFFFFFFFF
MonModeDebug = 0
MaxNumAPs = 0
LowPowerHandlingMode = 0
OverrideMemMap = 0
AllowSimulation = 1
ScriptFile=""
[FLASH]
RMWThreshold = 0x400
Loaders=""
EraseType = 0x00
CacheExcludeSize = 0x00
CacheExcludeAddr = 0x00
MinNumBytesFlashDL = 0
SkipProgOnCRCMatch = 1
VerifyDownload = 1
AllowCaching = 1
EnableFlashDL = 2
Override = 0
Device="ARM7"
[GENERAL]
MaxNumTransfers = 0x00
WorkRAMSize = 0x00
WorkRAMAddr = 0x00
RAMUsageLimit = 0x00
[SWO]
SWOLogFile=""
[MEM]
RdOverrideOrMask = 0x00
RdOverrideAndMask = 0xFFFFFFFF
RdOverrideAddr = 0xFFFFFFFF
WrOverrideOrMask = 0x00
WrOverrideAndMask = 0xFFFFFFFF
WrOverrideAddr = 0xFFFFFFFF
[RAM]
VerifyDownload = 0x00
[DYN_MEM_MAP]
NumUserRegion = 0x00

View File

@@ -0,0 +1,21 @@
/*
* Auto generated Run-Time-Environment Configuration File
* *** Do not modify ! ***
*
* Project: 'uksvep_2_2_v1'
* Target: 'bootloader'
*/
#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*
* Define the Device Header File:
*/
#define CMSIS_device_header "stm32f10x.h"
#endif /* RTE_COMPONENTS_H */

View File

@@ -0,0 +1,16 @@
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x0000C000 { ; load region size_region
ER_IROM1 0x08000000 0x0000C000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
.ANY (+XO)
}
RW_IRAM1 0x20000000 0x0000C000 { ; RW data
.ANY (+RW +ZI)
}
}

View File

@@ -2,8 +2,8 @@
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x08000000 0x00040000 { ; load region size_region
ER_IROM1 0x08000000 0x00040000 { ; load address = execution address
LR_IROM1 0x0800C000 0x00040000 { ; load region size_region
ER_IROM1 0x0800C000 0x00040000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)

File diff suppressed because one or more lines are too long

View File

@@ -12,7 +12,7 @@
<lExt>*.lib</lExt>
<tExt>*.txt; *.h; *.inc; *.md</tExt>
<pExt>*.plm</pExt>
<CppX>*.cpp</CppX>
<CppX>*.cpp; *.cc; *.cxx</CppX>
<nMigrate>0</nMigrate>
</Extensions>
@@ -25,6 +25,161 @@
<TargetName>uksvep_2_2_v1</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<CLKADS>8000000</CLKADS>
<OPTTT>
<gFlags>0</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
<RunAbUc>0</RunAbUc>
</OPTTT>
<OPTHX>
<HexSelection>1</HexSelection>
<FlashByte>65535</FlashByte>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
</OPTHX>
<OPTLEX>
<PageWidth>79</PageWidth>
<PageLength>66</PageLength>
<TabStop>8</TabStop>
<ListingPath></ListingPath>
</OPTLEX>
<ListingPage>
<CreateCListing>1</CreateCListing>
<CreateAListing>1</CreateAListing>
<CreateLListing>1</CreateLListing>
<CreateIListing>0</CreateIListing>
<AsmCond>1</AsmCond>
<AsmSymb>1</AsmSymb>
<AsmXref>0</AsmXref>
<CCond>1</CCond>
<CCode>0</CCode>
<CListInc>0</CListInc>
<CSymb>0</CSymb>
<LinkerCodeListing>0</LinkerCodeListing>
</ListingPage>
<OPTXL>
<LMap>1</LMap>
<LComments>1</LComments>
<LGenerateSymbols>1</LGenerateSymbols>
<LLibSym>1</LLibSym>
<LLines>1</LLines>
<LLocSym>1</LLocSym>
<LPubSym>1</LPubSym>
<LXref>0</LXref>
<LExpSel>0</LExpSel>
</OPTXL>
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
<uSim>0</uSim>
<uTrg>1</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
<sRwatch>1</sRwatch>
<sRmem>1</sRmem>
<sRfunc>1</sRfunc>
<sRbox>1</sRbox>
<tLdApp>1</tLdApp>
<tGomain>1</tGomain>
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
<tRfunc>0</tRfunc>
<tRbox>1</tRbox>
<tRtrace>1</tRtrace>
<sRSysVw>1</sRSysVw>
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>0</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgPa></sDlgPa>
<sIfile></sIfile>
<tDll></tDll>
<tDllPa></tDllPa>
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<pMon>BIN\UL2CM3.DLL</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>0</periodic>
<aLwin>0</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>0</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
<AscS1>0</AscS1>
<AscS2>0</AscS2>
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
<StkLoc>0</StkLoc>
<TrcWin>0</TrcWin>
<newCpu>0</newCpu>
<uProt>0</uProt>
</DebugFlag>
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<bLintAuto>0</bLintAuto>
<bAutoGenD>0</bAutoGenD>
<LntExFlags>0</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>1</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>10000000</DbgClock>
</DebugDescription>
</TargetOption>
</Target>
<Target>
<TargetName>bootloader</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<CLKADS>8000000</CLKADS>
<OPTTT>
@@ -93,7 +248,7 @@
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
<tRfunc>1</tRfunc>
<tRfunc>0</tRfunc>
<tRbox>1</tRbox>
<tRtrace>1</tRtrace>
<sRSysVw>1</sRSysVw>
@@ -117,23 +272,78 @@
<pMon>Segger\JL2CM3.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGTARM</Key>
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name></Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name></Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>JL2CM3</Key>
<Name>-U60145543 -O14 -S10 -ZTIFSpeedSel25000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(3BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06414041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM)</Name>
<Name>-U60145543 -O14 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight JTAG-DP") -D00(3BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06414041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM))</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U-O142 -O2190 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512 -FS08000000 -FL040000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM)</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>368</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134230816</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>..\Core\Bootloader\Src\bootloader.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\bootloader\../Core/Bootloader/Src/bootloader.c\368</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>boot</ItemText>
</Ww>
</WatchWindow1>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>0x0800c000</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<MemoryWindow2>
<Mm>
<WinNumber>2</WinNumber>
<SubType>0</SubType>
<ItemText>0x08009800</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow2>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
@@ -158,7 +368,7 @@
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
<StkLoc>1</StkLoc>
<StkLoc>0</StkLoc>
<TrcWin>0</TrcWin>
<newCpu>0</newCpu>
<uProt>0</uProt>
@@ -178,7 +388,7 @@
<pMultCmdsp></pMultCmdsp>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableFlashSeq>1</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>10000000</DbgClock>
@@ -219,6 +429,42 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\crc16.c</PathWithFileName>
<FilenameWithoutPath>crc16.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\eeprom.c</PathWithFileName>
<FilenameWithoutPath>eeprom.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\lampa.c</PathWithFileName>
<FilenameWithoutPath>lampa.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/main.c</PathWithFileName>
<FilenameWithoutPath>main.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
@@ -226,7 +472,19 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Src\message.c</PathWithFileName>
<FilenameWithoutPath>message.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -238,7 +496,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>4</FileNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -250,7 +508,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>5</FileNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -262,7 +520,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>6</FileNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -274,7 +532,19 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>7</FileNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/usart.c</PathWithFileName>
<FilenameWithoutPath>usart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -286,7 +556,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -298,7 +568,7 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>9</FileNumber>
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -318,7 +588,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>10</FileNumber>
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -330,7 +600,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>11</FileNumber>
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -342,7 +612,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>12</FileNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -354,7 +624,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>13</FileNumber>
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -366,7 +636,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>14</FileNumber>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -378,7 +648,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>15</FileNumber>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -390,7 +660,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>16</FileNumber>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -402,7 +672,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>17</FileNumber>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -414,7 +684,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>18</FileNumber>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -426,7 +696,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>19</FileNumber>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -438,7 +708,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>20</FileNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -450,7 +720,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>21</FileNumber>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -462,7 +732,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>22</FileNumber>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -474,7 +744,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>23</FileNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -486,7 +756,7 @@
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>24</FileNumber>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -496,6 +766,18 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c</PathWithFileName>
<FilenameWithoutPath>stm32f1xx_hal_uart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@@ -506,7 +788,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>25</FileNumber>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -518,6 +800,110 @@
</File>
</Group>
<Group>
<GroupName>Bootloader</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>32</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Bootloader\Inc\boot_project_setup.h</PathWithFileName>
<FilenameWithoutPath>boot_project_setup.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Bootloader\Src\boot_main.c</PathWithFileName>
<FilenameWithoutPath>boot_main.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Bootloader\Src\bootloader.c</PathWithFileName>
<FilenameWithoutPath>bootloader.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Bootloader\Src\boot_uart.c</PathWithFileName>
<FilenameWithoutPath>boot_uart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Bootloader\Src\boot_can.c</PathWithFileName>
<FilenameWithoutPath>boot_can.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Bootloader\Src\boot_flash.c</PathWithFileName>
<FilenameWithoutPath>boot_flash.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Bootloader\Src\boot_gpio.c</PathWithFileName>
<FilenameWithoutPath>boot_gpio.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Core\Bootloader\Src\boot_jump.c</PathWithFileName>
<FilenameWithoutPath>boot_jump.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>

View File

@@ -11,6 +11,7 @@
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pArmCC>6190000::V6.19::ARMCLANG</pArmCC>
<pCCUsed>6190000::V6.19::ARMCLANG</pCCUsed>
<uAC6>1</uAC6>
<TargetOption>
<TargetCommonOption>
@@ -18,7 +19,7 @@
<Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.4.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000-0x2000BFFF) IROM(0x8000000-0x803FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") TZ</Cpu>
<Cpu>IRAM(0x20000000-0x2000BFFF) IROM(0x8000000-0x803FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") TZ</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile>
<FlashDriverDll></FlashDriverDll>
@@ -80,9 +81,9 @@
<nStopB2X>0</nStopB2X>
</BeforeMake>
<AfterMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg1>1</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg1Name>fromelf.exe --bin --output .\Listings\@L.bin !L</UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
@@ -137,7 +138,812 @@
<DriverSelection>4101</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2V8M.DLL</Flash2>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3></Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>
<pFcarmGrp></pFcarmGrp>
<pFcArmRoot></pFcArmRoot>
<FcArmLst>0</FcArmLst>
</Utilities>
<TargetArmAds>
<ArmAdsMisc>
<GenerateListings>0</GenerateListings>
<asHll>1</asHll>
<asAsm>1</asAsm>
<asMacX>1</asMacX>
<asSyms>1</asSyms>
<asFals>1</asFals>
<asDbgD>1</asDbgD>
<asForm>1</asForm>
<ldLst>0</ldLst>
<ldmm>1</ldmm>
<ldXref>1</ldXref>
<BigEnd>0</BigEnd>
<AdsALst>1</AdsALst>
<AdsACrf>1</AdsACrf>
<AdsANop>0</AdsANop>
<AdsANot>0</AdsANot>
<AdsLLst>1</AdsLLst>
<AdsLmap>1</AdsLmap>
<AdsLcgr>1</AdsLcgr>
<AdsLsym>1</AdsLsym>
<AdsLszi>1</AdsLszi>
<AdsLtoi>1</AdsLtoi>
<AdsLsun>1</AdsLsun>
<AdsLven>1</AdsLven>
<AdsLsxf>1</AdsLsxf>
<RvctClst>0</RvctClst>
<GenPPlst>0</GenPPlst>
<AdsCpuType>"Cortex-M3"</AdsCpuType>
<RvctDeviceName></RvctDeviceName>
<mOS>0</mOS>
<uocRom>0</uocRom>
<uocRam>0</uocRam>
<hadIROM>1</hadIROM>
<hadIRAM>1</hadIRAM>
<hadXRAM>0</hadXRAM>
<uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<nBranchProt>0</nBranchProt>
<hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
<useUlib>0</useUlib>
<EndSel>0</EndSel>
<uLtcg>0</uLtcg>
<nSecure>0</nSecure>
<RoSelD>3</RoSelD>
<RwSelD>4</RwSelD>
<CodeSel>0</CodeSel>
<OptFeed>0</OptFeed>
<NoZi1>0</NoZi1>
<NoZi2>0</NoZi2>
<NoZi3>0</NoZi3>
<NoZi4>0</NoZi4>
<NoZi5>0</NoZi5>
<Ro1Chk>0</Ro1Chk>
<Ro2Chk>0</Ro2Chk>
<Ro3Chk>0</Ro3Chk>
<Ir1Chk>1</Ir1Chk>
<Ir2Chk>0</Ir2Chk>
<Ra1Chk>0</Ra1Chk>
<Ra2Chk>0</Ra2Chk>
<Ra3Chk>0</Ra3Chk>
<Im1Chk>1</Im1Chk>
<Im2Chk>0</Im2Chk>
<OnChipMemories>
<Ocm1>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm1>
<Ocm2>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm2>
<Ocm3>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm3>
<Ocm4>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm4>
<Ocm5>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm5>
<Ocm6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</Ocm6>
<IRAM>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0xc000</Size>
</IRAM>
<IROM>
<Type>1</Type>
<StartAddress>0x8000000</StartAddress>
<Size>0x40000</Size>
</IROM>
<XRAM>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</XRAM>
<OCR_RVCT1>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT1>
<OCR_RVCT2>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT2>
<OCR_RVCT3>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT3>
<OCR_RVCT4>
<Type>1</Type>
<StartAddress>0x800c000</StartAddress>
<Size>0x40000</Size>
</OCR_RVCT4>
<OCR_RVCT5>
<Type>1</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT5>
<OCR_RVCT6>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT6>
<OCR_RVCT7>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT7>
<OCR_RVCT8>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT8>
<OCR_RVCT9>
<Type>0</Type>
<StartAddress>0x20000000</StartAddress>
<Size>0xc000</Size>
</OCR_RVCT9>
<OCR_RVCT10>
<Type>0</Type>
<StartAddress>0x0</StartAddress>
<Size>0x0</Size>
</OCR_RVCT10>
</OnChipMemories>
<RvctStartVector></RvctStartVector>
</ArmAdsMisc>
<Cads>
<interw>1</interw>
<Optim>1</Optim>
<oTime>0</oTime>
<SplitLS>0</SplitLS>
<OneElfS>1</OneElfS>
<Strict>0</Strict>
<EnumInt>0</EnumInt>
<PlainCh>0</PlainCh>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<wLevel>3</wLevel>
<uThumb>0</uThumb>
<uSurpInc>0</uSurpInc>
<uC99>1</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO>
<v6Lang>3</v6Lang>
<v6LangP>5</v6LangP>
<vShortEn>1</vShortEn>
<vShortWch>1</vShortWch>
<v6Lto>0</v6Lto>
<v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define>USE_HAL_DRIVER,STM32F103xE</Define>
<Undefine></Undefine>
<IncludePath>../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;..\Core\Bootloader\Inc</IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>1</interw>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<thumb>0</thumb>
<SplitLS>0</SplitLS>
<SwStkChk>0</SwStkChk>
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<ClangAsOpt>1</ClangAsOpt>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Aads>
<LDads>
<umfTarg>1</umfTarg>
<Ropi>0</Ropi>
<Rwpi>0</Rwpi>
<noStLib>0</noStLib>
<RepFail>1</RepFail>
<useFile>0</useFile>
<TextAddressRange></TextAddressRange>
<DataAddressRange></DataAddressRange>
<pXoBase></pXoBase>
<ScatterFile></ScatterFile>
<IncludeLibs></IncludeLibs>
<IncludeLibsPath></IncludeLibsPath>
<Misc></Misc>
<LinkerInputFile></LinkerInputFile>
<DisabledWarnings></DisabledWarnings>
</LDads>
</TargetArmAds>
</TargetOption>
<Groups>
<Group>
<GroupName>Application/MDK-ARM</GroupName>
<Files>
<File>
<FileName>startup_stm32f103xe.s</FileName>
<FileType>2</FileType>
<FilePath>startup_stm32f103xe.s</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Application/User/Core</GroupName>
<Files>
<File>
<FileName>crc16.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\crc16.c</FilePath>
</File>
<File>
<FileName>eeprom.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\eeprom.c</FilePath>
</File>
<File>
<FileName>lampa.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\lampa.c</FilePath>
</File>
<File>
<FileName>main.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/main.c</FilePath>
</File>
<File>
<FileName>message.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\message.c</FilePath>
</File>
<File>
<FileName>gpio.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/gpio.c</FilePath>
</File>
<File>
<FileName>can.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/can.c</FilePath>
</File>
<File>
<FileName>iwdg.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/iwdg.c</FilePath>
</File>
<File>
<FileName>tim.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/tim.c</FilePath>
</File>
<File>
<FileName>usart.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/usart.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
<File>
<FileName>stm32f1xx_it.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/stm32f1xx_it.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_msp.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/stm32f1xx_hal_msp.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_timebase_tim.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/stm32f1xx_hal_timebase_tim.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Drivers/STM32F1xx_HAL_Driver</GroupName>
<Files>
<File>
<FileName>stm32f1xx_hal_gpio_ex.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_can.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_can.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_rcc_ex.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_dma.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_cortex.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_pwr.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_flash.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_flash_ex.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_exti.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_iwdg.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_tim.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_tim_ex.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_uart.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
</Files>
</Group>
<Group>
<GroupName>Drivers/CMSIS</GroupName>
<Files>
<File>
<FileName>system_stm32f1xx.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/system_stm32f1xx.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>Bootloader</GroupName>
<Files>
<File>
<FileName>boot_project_setup.h</FileName>
<FileType>5</FileType>
<FilePath>..\Core\Bootloader\Inc\boot_project_setup.h</FilePath>
</File>
<File>
<FileName>boot_main.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_main.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
<File>
<FileName>bootloader.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\bootloader.c</FilePath>
</File>
<File>
<FileName>boot_uart.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_uart.c</FilePath>
</File>
<File>
<FileName>boot_can.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_can.c</FilePath>
</File>
<File>
<FileName>boot_flash.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_flash.c</FilePath>
</File>
<File>
<FileName>boot_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_gpio.c</FilePath>
</File>
<File>
<FileName>boot_jump.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_jump.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
</Groups>
</Target>
<Target>
<TargetName>bootloader</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pArmCC>6190000::V6.19::ARMCLANG</pArmCC>
<pCCUsed>6190000::V6.19::ARMCLANG</pCCUsed>
<uAC6>1</uAC6>
<TargetOption>
<TargetCommonOption>
<Device>STM32F103RC</Device>
<Vendor>STMicroelectronics</Vendor>
<PackID>Keil.STM32F1xx_DFP.2.4.0</PackID>
<PackURL>http://www.keil.com/pack/</PackURL>
<Cpu>IRAM(0x20000000-0x2000BFFF) IROM(0x8000000-0x803FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3") TZ</Cpu>
<FlashUtilSpec></FlashUtilSpec>
<StartupFile></StartupFile>
<FlashDriverDll></FlashDriverDll>
<DeviceId>0</DeviceId>
<RegisterFile></RegisterFile>
<MemoryEnv></MemoryEnv>
<Cmp></Cmp>
<Asm></Asm>
<Linker></Linker>
<OHString></OHString>
<InfinionOptionDll></InfinionOptionDll>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
<SFDFile>$$Device:STM32F103RC$SVD\STM32F103xx.svd</SFDFile>
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<IncludePath></IncludePath>
<LibPath></LibPath>
<RegisterFilePath></RegisterFilePath>
<DBRegisterFilePath></DBRegisterFilePath>
<TargetStatus>
<Error>0</Error>
<ExitCodeStop>0</ExitCodeStop>
<ButtonStop>0</ButtonStop>
<NotGenerated>0</NotGenerated>
<InvalidFlash>1</InvalidFlash>
</TargetStatus>
<OutputDirectory>.\bootloader\</OutputDirectory>
<OutputName>bootloader</OutputName>
<CreateExecutable>1</CreateExecutable>
<CreateLib>0</CreateLib>
<CreateHexFile>1</CreateHexFile>
<DebugInformation>1</DebugInformation>
<BrowseInformation>0</BrowseInformation>
<ListingPath></ListingPath>
<HexFormatSelection>1</HexFormatSelection>
<Merge32K>0</Merge32K>
<CreateBatchFile>0</CreateBatchFile>
<BeforeCompile>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopU1X>0</nStopU1X>
<nStopU2X>0</nStopU2X>
</BeforeCompile>
<BeforeMake>
<RunUserProg1>0</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopB1X>0</nStopB1X>
<nStopB2X>0</nStopB2X>
</BeforeMake>
<AfterMake>
<RunUserProg1>1</RunUserProg1>
<RunUserProg2>0</RunUserProg2>
<UserProg1Name>fromelf.exe --bin --output .\Listings\@L.bin !L</UserProg1Name>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
<nStopA1X>0</nStopA1X>
<nStopA2X>0</nStopA2X>
</AfterMake>
<SelectedForBatchBuild>1</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
</TargetCommonOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>0</AlwaysBuild>
<GenerateAssemblyFile>0</GenerateAssemblyFile>
<AssembleAssemblyFile>0</AssembleAssemblyFile>
<PublicsOnly>0</PublicsOnly>
<StopOnExitCode>3</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>0</ComprImg>
</CommonProperty>
<DllOption>
<SimDllName>SARMCM3.DLL</SimDllName>
<SimDllArguments>-REMAP</SimDllArguments>
<SimDlgDll>DCM.DLL</SimDlgDll>
<SimDlgDllArguments>-pCM3</SimDlgDllArguments>
<TargetDllName>SARMCM3.DLL</TargetDllName>
<TargetDllArguments></TargetDllArguments>
<TargetDlgDll>TCM.DLL</TargetDlgDll>
<TargetDlgDllArguments>-pCM3</TargetDlgDllArguments>
</DllOption>
<DebugOption>
<OPTHX>
<HexSelection>1</HexSelection>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
<Oh166RecLen>16</Oh166RecLen>
</OPTHX>
</DebugOption>
<Utilities>
<Flash1>
<UseTargetDll>1</UseTargetDll>
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<DriverSelection>4101</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
<Flash3></Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>
@@ -277,7 +1083,7 @@
<OCR_RVCT4>
<Type>1</Type>
<StartAddress>0x8000000</StartAddress>
<Size>0x40000</Size>
<Size>0xc000</Size>
</OCR_RVCT4>
<OCR_RVCT5>
<Type>1</Type>
@@ -329,7 +1135,7 @@
<uC99>1</uC99>
<uGnu>0</uGnu>
<useXO>0</useXO>
<v6Lang>5</v6Lang>
<v6Lang>3</v6Lang>
<v6LangP>5</v6LangP>
<vShortEn>1</vShortEn>
<vShortWch>1</vShortWch>
@@ -340,7 +1146,7 @@
<MiscControls></MiscControls>
<Define>USE_HAL_DRIVER,STM32F103xE</Define>
<Undefine></Undefine>
<IncludePath>../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include</IncludePath>
<IncludePath>..\Core\Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;..\Core\Bootloader\Inc</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -393,12 +1199,101 @@
</Group>
<Group>
<GroupName>Application/User/Core</GroupName>
<GroupOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<GroupArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>2</interw>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<thumb>2</thumb>
<SplitLS>2</SplitLS>
<SwStkChk>2</SwStkChk>
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Aads>
</GroupArmAds>
</GroupOption>
<Files>
<File>
<FileName>crc16.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\crc16.c</FilePath>
</File>
<File>
<FileName>eeprom.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\eeprom.c</FilePath>
</File>
<File>
<FileName>lampa.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\lampa.c</FilePath>
</File>
<File>
<FileName>main.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/main.c</FilePath>
</File>
<File>
<FileName>message.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Src\message.c</FilePath>
</File>
<File>
<FileName>gpio.c</FileName>
<FileType>1</FileType>
@@ -419,6 +1314,11 @@
<FileType>1</FileType>
<FilePath>../Core/Src/tim.c</FilePath>
</File>
<File>
<FileName>usart.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/usart.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_it.c</FileName>
<FileType>1</FileType>
@@ -514,6 +1414,62 @@
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c</FilePath>
</File>
<File>
<FileName>stm32f1xx_hal_uart.c</FileName>
<FileType>1</FileType>
<FilePath>../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>1</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File>
</Files>
</Group>
<Group>
@@ -526,6 +1482,51 @@
</File>
</Files>
</Group>
<Group>
<GroupName>Bootloader</GroupName>
<Files>
<File>
<FileName>boot_project_setup.h</FileName>
<FileType>5</FileType>
<FilePath>..\Core\Bootloader\Inc\boot_project_setup.h</FilePath>
</File>
<File>
<FileName>boot_main.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_main.c</FilePath>
</File>
<File>
<FileName>bootloader.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\bootloader.c</FilePath>
</File>
<File>
<FileName>boot_uart.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_uart.c</FilePath>
</File>
<File>
<FileName>boot_can.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_can.c</FilePath>
</File>
<File>
<FileName>boot_flash.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_flash.c</FilePath>
</File>
<File>
<FileName>boot_gpio.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_gpio.c</FilePath>
</File>
<File>
<FileName>boot_jump.c</FileName>
<FileType>1</FileType>
<FilePath>..\Core\Bootloader\Src\boot_jump.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
</Group>
@@ -539,6 +1540,7 @@
<component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="5.6.0" condition="ARMv6_7_8-M Device">
<package name="CMSIS" schemaVersion="1.7.7" url="http://www.keil.com/pack/" vendor="ARM" version="5.9.0"/>
<targetInfos>
<targetInfo name="bootloader"/>
<targetInfo name="uksvep_2_2_v1"/>
</targetInfos>
</component>
@@ -546,4 +1548,13 @@
<files/>
</RTE>
<LayerInfo>
<Layers>
<Layer>
<LayName>uksvep_2_2_v1</LayName>
<LayPrjMark>1</LayPrjMark>
</Layer>
</Layers>
</LayerInfo>
</Project>

View File

@@ -1,2 +0,0 @@
[EXTDLL]
Count=0

View File

@@ -1,31 +0,0 @@
uksvep_2_2_v1/can.o: ..\Core\Src\can.c ..\Core\Inc\can.h \
..\Core\Inc\main.h ..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h \
..\Core\Inc\stm32f1xx_hal_conf.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h \
..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h \
..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xe.h \
..\Drivers\CMSIS\Include\core_cm3.h \
C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stdint.h \
..\Drivers\CMSIS\Include\cmsis_version.h \
..\Drivers\CMSIS\Include\cmsis_compiler.h \
..\Drivers\CMSIS\Include\cmsis_armclang.h \
C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_compat.h \
C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\arm_acle.h \
..\Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \
C:\Keil_v5\ARM\ARMCLANG\Bin\..\include\stddef.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_can.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_iwdg.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h \
..\Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h

Some files were not shown because too many files have changed in this diff Show More