Initial commit
This commit is contained in:
committed by
Tenocha
parent
02b570a41c
commit
3173e999aa
90
Core/Inc/bootloader.h
Normal file
90
Core/Inc/bootloader.h
Normal file
@@ -0,0 +1,90 @@
|
||||
#include "main.h"
|
||||
|
||||
#include "usart.h"
|
||||
#include "dma.h"
|
||||
#include "tim.h"
|
||||
#include "custom_flash.h"
|
||||
#include "gpio.h"
|
||||
#include "can.h"
|
||||
#include "sdio.h"
|
||||
#include "fatfs.h"
|
||||
|
||||
|
||||
// KEY defines
|
||||
#define BOOTLOADER_KEY_ADR (uint32_t)0x08009800
|
||||
#define BOOTLOADER_KEY_PAGE 20
|
||||
#define BL_KEY_APP_WRITTEN 0xAAAA5555
|
||||
|
||||
// MAIN APP defines
|
||||
#define MAIN_APP_START_ADR (uint32_t)0x0800C000
|
||||
#define MAIN_APP_PAGE 21
|
||||
#define MAIN_APP_NUM_OF_PAGE 250-MAIN_APP_PAGE
|
||||
|
||||
// ERROR DEFINES
|
||||
|
||||
|
||||
|
||||
struct flag
|
||||
{
|
||||
unsigned reInitMCU:1; // флаг перепрошивки (очишает память перед прошивкой новой)
|
||||
unsigned InitOrWait:1; // флаг активной прошивки (1) или ожидания комманды UART/CAN (0)
|
||||
unsigned StartInit:1; // флаг что необходимо начать прием прошивки/прошивку
|
||||
unsigned InitBootPeriph:1;// флаг старта инициализации перифирии для прошивки
|
||||
unsigned BootloaderCMD:3; // комманда: интерфейс для прошивки
|
||||
unsigned InitMCUReady:1; // окончание прошивки
|
||||
unsigned HalfOfWrite:1; // какая половина из dma буфера не записана
|
||||
|
||||
|
||||
unsigned SDCardIn:1;
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct Bootloader_Errors
|
||||
{
|
||||
unsigned FLASH_ERASE:1;
|
||||
unsigned FLASH_WRITE:1;
|
||||
|
||||
unsigned CMD_INVALID:1;
|
||||
unsigned USART_RECEIVE:1;
|
||||
|
||||
|
||||
#ifdef __CAN_H__
|
||||
unsigned CAN:1;
|
||||
#endif
|
||||
|
||||
#ifdef __SDIO_H__
|
||||
unsigned SD_CARD_NOT_INSERTED:1;
|
||||
unsigned SD_CARD_READ:1;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct Bootloader_Errors_Counters
|
||||
{
|
||||
unsigned FLASH_ERASE;
|
||||
unsigned FLASH_WRITE;
|
||||
|
||||
unsigned CMD_INVALID;
|
||||
unsigned USART_RECEIVE;
|
||||
|
||||
#ifdef __CAN_H__
|
||||
unsigned CAN_RECEIVE;
|
||||
#endif
|
||||
#ifdef __SDIO_H__
|
||||
unsigned SD_CARD_NOT_INSERTED;
|
||||
unsigned SD_CARD_READ;
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
void Bootloader_main(void);
|
||||
|
||||
void SD_Programming(FRESULT *res_fresult, HAL_StatusTypeDef *res_hal);
|
||||
void Bootloader_TIM_Handler(void); // handler for "WD" Timer
|
||||
void Check_CMD_USART(uint8_t *DataUART);
|
||||
void SetKey(void);
|
||||
uint32_t ReadKey(void);
|
||||
void ResetKey(void);
|
||||
void Boot_SystemClock_Config(void);
|
||||
Reference in New Issue
Block a user