добавила файл игнора, включаю притяжку к питанию на rx

This commit is contained in:
klassents 2024-09-09 14:33:37 +07:00
parent bb5a94e9ab
commit dac54a68e3
2 changed files with 15 additions and 13 deletions

6
.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
.pio
.vscode/.browse.c_cpp.db*
.vscode/c_cpp_properties.json
.vscode/launch.json
.vscode/ipch
.vscode/

View File

@ -60,7 +60,10 @@ void Bootloader_UART_Init()
{ {
PM->CLK_APB_P_SET = PM_CLOCK_APB_P_UART_0_M; // Включение тактирования UART0 PM->CLK_APB_P_SET = PM_CLOCK_APB_P_UART_0_M; // Включение тактирования UART0
PAD_CONFIG->PORT_0_CFG |= (0b01 << (5 << 1)) | (0b01 << (6 << 1)); // Настройка выводов PORT0.5 и PORT0.6 // Настройка выводов PORT0.5 и PORT0.6 на последовательный интерфейс
PAD_CONFIG->PORT_0_CFG |= (0b01 << (5 << 1)) | (0b01 << (6 << 1));
// Включение притяжки к питанию на линии rx
PAD_CONFIG->PORT_0_PUPD |= (0b01 << (5 << 1));
/* /*
* Настройки USART: * Настройки USART:
@ -89,7 +92,10 @@ void Bootloader_UART_Deinit()
UART_0->FLAGS = 0xFFFFFFFF; // сброс всех флагов UART_0->FLAGS = 0xFFFFFFFF; // сброс всех флагов
UART_0->TXDATA = 0x00; UART_0->TXDATA = 0x00;
PAD_CONFIG->PORT_0_CFG &= ~((0b11 << (5 << 1)) | (0b11 << (6 << 1))); // Настройка выводов PORT0.5 и PORT0.6 // Настройка выводов PORT0.5 и PORT0.6 на порт общего назначения
PAD_CONFIG->PORT_0_CFG &= ~((0b11 << (5 << 1)) | (0b11 << (6 << 1)));
// Отключение притяжки на линии rx
PAD_CONFIG->PORT_0_PUPD &= ~(0b01 << (5 << 1));
PM->CLK_APB_P_SET &= !PM_CLOCK_APB_P_UART_0_M; // Выключение тактирования UART0 PM->CLK_APB_P_SET &= !PM_CLOCK_APB_P_UART_0_M; // Выключение тактирования UART0
} }
@ -156,17 +162,7 @@ uint8_t erase_chip(SPIFI_HandleTypeDef *spifi)
/* Загрузить данные пакета в RAM */ /* Загрузить данные пакета в RAM */
#define SIZE_4K 4096 #define SIZE_4K 4096
void Bootloader_LoadArrayInRam(uint8_t uart_data[])
{
static uint32_t relative_write_address;
if ((relative_write_address % SIZE_4K) == 0)
HAL_SPIFI_W25_SectorErase4K(&spifi, relative_write_address);
HAL_SPIFI_W25_PageProgram(&spifi, (uint32_t)hBootloader.address, hBootloader.size_package, uart_data);
hBootloader.address += hBootloader.size_package;
relative_write_address += hBootloader.size_package;
}
// разметка строки в хекс-файле // разметка строки в хекс-файле
#define BYTE_COUNT_POS 0 // индекс счетчика байт данных #define BYTE_COUNT_POS 0 // индекс счетчика байт данных
@ -217,7 +213,7 @@ void Bootloader_parseHexAndLoadInMemory(uint8_t rx_data[])
switch (rec_type) switch (rec_type)
{ {
case REC_TYPE_EXT_LIN_ADDR: case REC_TYPE_EXT_LIN_ADDR:
// если так получилось, что нам слали данные, буфер на 256 не заполнился, а тут прилетела команда смены адреса, то пишем сколько есть // если так получилось, что нам слали данные, буфер на 256 не заполнился, а тут прилетела команда смены адреса, то пишем сколько есть
if (page_fill_size != 0) if (page_fill_size != 0)
mem_write(); mem_write();
// собираем адрес, с которого начинаем писать из данных команды смены адреса. нам присылают только 2 старших байта адреса // собираем адрес, с которого начинаем писать из данных команды смены адреса. нам присылают только 2 старших байта адреса