MXC-A36_2024.04.18/fr3092_mcu/examples/application/bootloader/customer_ota/ota.h

79 lines
2.0 KiB
C
Raw Permalink Normal View History

2024-04-17 19:45:26 +08:00
#ifndef OTA_H
#define OTA_H
#include <stdint.h>
#include <cmsis_armclang.h>
#define OTA_BOOT_INFO_ADDRESS 0x64000
#define OTA_B_STORAGE_ADDRESS 0x32000
#define APP_CODE_STORAGE_ADDRESS 0x66000
#define RETARGET_APP_CODE_ADDRESS 0x08066000 //APP地址
#define APP_CODE_INFO_OFFSET 0x148
#define IMGAE_INFO_SIZE 0x10
#define FILE_CODE_ADDRESS_OFFSET IMGAE_INFO_SIZE
#define FLASH_SIZE 0x400000 // 2M
#define DSP_SIZE (152*1024) // DSP SIZE 152k
#define CONTROLLER_SIZE (64*1024)
#define DSP_STORAGE_ADDRESS (FLASH_SIZE-DSP_SIZE)
#define CONTROLLER_STORAGE_ADDRESS (DSP_STORAGE_ADDRESS-CONTROLLER_SIZE)
#define DSP_START_ADDRESS (DSP_STORAGE_ADDRESS+FILE_CODE_ADDRESS_OFFSET)
#define CONTROLLER_START_ADDRESS (CONTROLLER_STORAGE_ADDRESS+FILE_CODE_ADDRESS_OFFSET)
#define OTA_HDR_RESULT_LEN 1
#define OTA_HDR_OPCODE_LEN 1
#define OTA_HDR_LENGTH_LEN 2
typedef enum
{
OTA_CMD_NVDS_TYPE,
OTA_CMD_GET_STR_BASE,
OTA_CMD_READ_FW_VER, //read firmware version
OTA_CMD_PAGE_ERASE,
OTA_CMD_CHIP_ERASE,
OTA_CMD_WRITE_DATA,
OTA_CMD_READ_DATA,
OTA_CMD_WRITE_MEM,
OTA_CMD_READ_MEM,
OTA_CMD_REBOOT,
OTA_CMD_START,
OTA_CMD_NULL,
} ota_cmd_t;
typedef enum
{
FILE_BOOT_LOADER =1,
FILE_APP,
FILE_CONTROLLER,
FILE_DSP,
}ota_file_type_t;
typedef enum
{
OTA_RSP_SUCCESS,
OTA_RSP_ERROR,
OTA_RSP_UNKNOWN_CMD,
}ota_rsp_t;
/*****************************************************************************
* TYPEDEFS ()
*/
struct app_otas_status_t
{
uint8_t read_opcode;
uint8_t length;
uint32_t base_addr;
};
__PACKED_STRUCT file_head_info_t{
uint8_t check[4];
uint32_t version;
uint32_t code_length;
uint32_t crc;
};
void app_otas_recv_data(uint8_t conidx,uint8_t *p_data,uint16_t len);
void ota_check_file_init(void);
#endif