初始版本
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
/**
|
||||
*******************************************************************************
|
||||
* @file iap/iap_ymodem_boot/source/flash.h
|
||||
* @brief This file contains all the functions prototypes of the Flash driver.
|
||||
@verbatim
|
||||
Change Logs:
|
||||
Date Author Notes
|
||||
2022-03-31 CDT First version
|
||||
@endverbatim
|
||||
*******************************************************************************
|
||||
* Copyright (C) 2022-2025, Xiaohua Semiconductor Co., Ltd. All rights reserved.
|
||||
*
|
||||
* This software component is licensed by XHSC under BSD 3-Clause license
|
||||
* (the "License"); You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
*
|
||||
*******************************************************************************
|
||||
*/
|
||||
#ifndef __HDL_FLASH_H__
|
||||
#define __HDL_FLASH_H__
|
||||
|
||||
#include "stdint.h"
|
||||
|
||||
/* C binding of definitions if building with C++ compiler */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
/*******************************************************************************
|
||||
* Include files
|
||||
******************************************************************************/
|
||||
#include "hc32_ll_efm.h"
|
||||
|
||||
#include "hc32_ll_SWDT.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* Global type definitions ('typedef')
|
||||
******************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
* Global pre-processor symbols/macros ('#define')
|
||||
******************************************************************************/
|
||||
/* Flash definitions */
|
||||
#define FLASH_BASE (EFM_START_ADDR)
|
||||
#define FLASH_SIZE (EFM_END_ADDR + 1U)
|
||||
#define FLASH_SECTOR_SIZE (EFM_SECTOR_SIZE)
|
||||
#define FLASH_SECTOR_NUM (64U)
|
||||
|
||||
/* SRAM definitions */
|
||||
#define SRAM_SIZE (0x02F000UL)
|
||||
/* Vector table */
|
||||
#define VECT_TAB_STEP (0x000UL)
|
||||
|
||||
/* flash rom map ´æ´¢·ÖÇø*/
|
||||
//boot 16k
|
||||
#define FLASH_BOOT_BASE (FLASH_BASE)
|
||||
#define FLASH_BOOT_SIZE (4*FLASH_SECTOR_SIZE)
|
||||
//app
|
||||
#define FLASH_APP_BASE (FLASH_BOOT_BASE+ FLASH_BOOT_SIZE)
|
||||
#define FLASH_APP_SIZE (58*FLASH_SECTOR_SIZE)
|
||||
|
||||
//boot info
|
||||
#define FLASH_BINFO_BASE (FLASH_APP_BASE + FLASH_APP_SIZE)
|
||||
#define FLASH_BINFO_SIZE (1*FLASH_SECTOR_SIZE)
|
||||
|
||||
//user config
|
||||
#define FLASH_CFG_BASE (FLASH_BINFO_BASE + FLASH_BINFO_SIZE)
|
||||
#define FLASH_CFG_SIZE (1*FLASH_SECTOR_SIZE)
|
||||
|
||||
#define FLASH_CFG_MAGIC (0xa5)
|
||||
|
||||
/*******************************************************************************
|
||||
* Global variable definitions ('extern')
|
||||
******************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
Global function prototypes (definition in C source)
|
||||
******************************************************************************/
|
||||
int32_t hdl_flash_unlock(void);
|
||||
int32_t hdl_flash_lock(void);
|
||||
|
||||
int32_t hdl_flash_check_addralign(uint32_t u32Addr);
|
||||
int32_t hdl_flash_erase_sector(uint32_t u32Addr, uint32_t u32Size);
|
||||
int32_t hdl_flash_write_data(uint32_t u32Addr, uint8_t *pu8Buff, uint32_t u32Len);
|
||||
int32_t hdl_flash_read_data(uint32_t u32Addr, uint8_t *pu8Buff, uint32_t u32Len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __FLASH_H__ */
|
||||
|
||||
/*******************************************************************************
|
||||
* EOF (not truncated)
|
||||
******************************************************************************/
|
||||
Reference in New Issue
Block a user