hpw422移植新的sdk
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
#ifndef _BOOTSECOND_H_
|
||||
#define _BOOTSECOND_H_
|
||||
|
||||
#define __RAM_DMA __attribute__((section("ram_code")))
|
||||
typedef enum
|
||||
{
|
||||
INVALIDSTAT = 0,
|
||||
ACTIVEASTAT = 1,
|
||||
ERASEASTAT = 2,
|
||||
OVERWRITEASTAT = 3,
|
||||
ACTIVEBSTAT = 4,
|
||||
ERASEBSTAT = 5,
|
||||
OVERWRITEBSTAT = 6,
|
||||
} STATUS_T;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
ERRNONE = 0,
|
||||
ERRPARAMDAMAGE = 1,
|
||||
ERROVERWRITE = 2,
|
||||
ERRCHECK = 3,
|
||||
} ERROR_T;
|
||||
typedef enum
|
||||
{
|
||||
STATUS_APPBOOT,
|
||||
STATUS_APPUPDATA,
|
||||
STATUS_APPERROR,
|
||||
} PARMSTATUS;
|
||||
typedef enum
|
||||
{
|
||||
APPBOOTA = 0,
|
||||
APPUPDATA = 2,
|
||||
APPBOOTB = 3,
|
||||
APPBOOTERR = 4,
|
||||
} APPSTATUS;
|
||||
typedef enum
|
||||
{
|
||||
FLASH_SIZE_1M = 0x11,
|
||||
FLASH_SIZE_2M = 0x12,
|
||||
FLASH_SIZE_4M = 0x13,
|
||||
} FLASH_SIZEID;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FLASH_1M_BACKUPADDR = 29 * 4096,
|
||||
FLASH_2M_BACKUPADDR = 61 * 4096,
|
||||
FLASH_4M_BACKUPADDR = 125 * 4096,
|
||||
} FLASH_SIZE;
|
||||
#define DEBUG_PRINT
|
||||
#define PIN_AB_DAMAGE 18
|
||||
|
||||
// #define PIN_DETECT
|
||||
#define PIN_AB_ACTIVE 0
|
||||
|
||||
#define CRC32_INITIAL 0
|
||||
|
||||
#define CODES_OFFSET 0x20
|
||||
#define PARAM_CNT 5
|
||||
#define PARAM_LENGTH 240
|
||||
#define TO_B 0
|
||||
#define TO_A 1
|
||||
|
||||
#define CPR_CTLAPBCLKEN_GRCTL_MASK_OFFSET (16UL)
|
||||
#define CPR_CTLAPBCLKEN_GRCTL_WDT_PCLK_EN_Pos (0x0UL) // /*!< Position of WDT_PCLK_EN field. */
|
||||
#define CPR_CTLAPBCLKEN_GRCTL_WDT_PCLK_EN_Msk (0x1UL << CPR_CTLAPBCLKEN_GRCTL_WDT_PCLK_EN_Pos)
|
||||
#define CPR_CTLAPBCLKEN_GRCTL_WDT_PCLK_EN_DISABLE (0x0UL << CPR_CTLAPBCLKEN_GRCTL_WDT_PCLK_EN_Pos) /*!< 0����ʹ��ʱ�� */
|
||||
#define CPR_CTLAPBCLKEN_GRCTL_WDT_PCLK_EN_ENABLE (0x1UL << CPR_CTLAPBCLKEN_GRCTL_WDT_PCLK_EN_Pos) /*!< 1��ʹ��ʱ��*/
|
||||
#define CPR_RSTCTL_CTLAPB_SW_WDT_RSTN_Pos (0x2UL) // /*!< Position of WDT_RSTN field. */
|
||||
#define CPR_RSTCTL_CTLAPB_SW_WDT_RSTN_Msk (0x1UL << CPR_RSTCTL_CTLAPB_SW_WDT_RSTN_Pos)
|
||||
#define CPR_RSTCTL_CTLAPB_SW_WDT_RSTN_DISABLE (RSTN_INVALID << CPR_RSTCTL_CTLAPB_SW_WDT_RSTN_Pos) /*!< 1������λ */
|
||||
#define CPR_RSTCTL_CTLAPB_SW_WDT_RSTN_ENABLE (RSTN_VALID << CPR_RSTCTL_CTLAPB_SW_WDT_RSTN_Pos) /*!< 0����λ*/
|
||||
#define CPR_RSTCTL_WDTRST_MASK_WDT_SYS_RSTN_MASK_Pos (0x0UL) // /*!< Position of WDT_SYS_RSTN_MASK field. */
|
||||
#define CPR_RSTCTL_WDTRST_MASK_WDT_SYS_RSTN_MASK_Msk (0x1UL << CPR_RSTCTL_WDTRST_MASK_WDT_SYS_RSTN_MASK_Pos)
|
||||
#define CPR_RSTCTL_WDTRST_MASK_WDT_SYS_RSTN_MASK_DISABLE (0x0UL << CPR_RSTCTL_WDTRST_MASK_WDT_SYS_RSTN_MASK_Pos) /*!< 0�������� */
|
||||
#define CPR_RSTCTL_WDTRST_MASK_WDT_SYS_RSTN_MASK_ENABLE (0x1UL << CPR_RSTCTL_WDTRST_MASK_WDT_SYS_RSTN_MASK_Pos) /*!< 1������*/
|
||||
#define CPR_RSTCTL_WDTRST_MASK_WDT_M4_RSTN_MASK_Pos (0x1UL) // /*!< Position of WDT_M0_RSTN_MASK field. */
|
||||
#define CPR_RSTCTL_WDTRST_MASK_WDT_M4_RSTN_MASK_Msk (0x1UL << CPR_RSTCTL_WDTRST_MASK_WDT_M4_RSTN_MASK_Pos)
|
||||
#define CPR_RSTCTL_WDTRST_MASK_WDT_M4_RSTN_MASK_DISABLE (0x0UL << CPR_RSTCTL_WDTRST_MASK_WDT_M4_RSTN_MASK_Pos) /*!< 0�������� */
|
||||
#define CPR_RSTCTL_WDTRST_MASK_WDT_M4_RSTN_MASK_ENABLE (0x1UL << CPR_RSTCTL_WDTRST_MASK_WDT_M4_RSTN_MASK_Pos) /*!< 1������*/
|
||||
#define RSTN_VALID (0UL)
|
||||
#define RSTN_INVALID (1UL)
|
||||
#define PARAM_ADDR ((8*1024)-512)
|
||||
#define FLASH_VIR_AADDR 0x11000000
|
||||
#define ALIGN(num) __attribute__((aligned(num)))
|
||||
|
||||
//#define FLASH_READ_PAGE spi_flash_Read_Page
|
||||
//#define FLASH_SECTOR_ERASE spi_flash_sector_erase
|
||||
//#define SPI_WRITE_ENABLE spi_flash_write_enable
|
||||
//#define FLASH_WRITE_PAGE xc_spi_flash_write_page
|
||||
//#define FLASH_WAIT_READY while (spi_flash_wait_till_ready())
|
||||
#define FLASH_READ_PAGE xc_spi_flash_read_page
|
||||
#define FLASH_SECTOR_ERASE xc_spi_flash_erase_sector
|
||||
#define FLASH_PAGE_ERASE xc_spi_flash_erase_page
|
||||
#define SPI_WRITE_ENABLE
|
||||
#define FLASH_WRITE_PAGE xc_spi_flash_write_page
|
||||
#define FLASH_WAIT_READY
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t status; /**/
|
||||
uint32_t softver; /**/
|
||||
uint32_t acheck; /*crc32*/
|
||||
uint32_t aaddr; /*sector align*/
|
||||
uint32_t alen; /*page align*/
|
||||
uint32_t bcheck; /**/
|
||||
uint32_t baddr; /**/
|
||||
uint32_t blen; /**/
|
||||
uint32_t aloadaddr;
|
||||
uint32_t bloadaddr;
|
||||
uint32_t RESERVED0[2];
|
||||
} param_unit;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
param_unit paramunit[PARAM_CNT];
|
||||
uint32_t paramcrc32;
|
||||
uint32_t RESERVED1[3];
|
||||
} sboot_message;
|
||||
void boot_run_sec(void);
|
||||
extern volatile uint32_t param_backup_addr;
|
||||
void boot_run(void);
|
||||
void param_analy(param_unit *sParam);
|
||||
__RAM_CODE __asm void MSR_MSP(uint32_t addr);
|
||||
void flash_init(void);
|
||||
void overwrite_backup(param_unit *oparam);
|
||||
int uart_printf(const char *fmt,...);
|
||||
#endif
|
||||
Reference in New Issue
Block a user