ct_test/Keil_C/FWLib/SC92F_Lib/inc/sc92f_iap.h

82 lines
3.2 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//************************************************************
// Copyright (c) 深圳市赛元微电子有限公司
// 文件名称: sc92f_iap.h
// 作者: 赛元应用团队
// 模块功能: IAP固件库函数头文件
// 最后更正日期: 2022年3月23日
// 版本: V1.100005
// 说明: 本文件仅适用于赛元92F/93F/92L系列单片机
//*************************************************************
#ifndef _sc92f_IAP_H_
#define _sc92f_IAP_H_
#include "sc92f.h"
#include "intrins.h"
typedef enum
{
IAP_MEMTYPE_ROM = (uint8_t)0x00, //IAP操作区域为ROM
IAP_MEMTYPE_UID = (uint8_t)0x01, //IAP操作区域为UID只允许读操作!!!
IAP_MEMTYPE_EEPROM = (uint8_t)0x02 //IAP操作区域为EEPROM
} IAP_MemType_TypeDef;
#if defined(SC92F854x) || defined(SC92F754x) || defined(SC92F844xB) || defined(SC92F744xB) || defined(SC92F84Ax_2) || defined(SC92F74Ax_2)\
|| defined(SC92F7003) || defined(SC92F8003) || defined(SC92F740x)
typedef enum
{
IAP_HOLDTIME_1500US = (uint8_t)0x08, //设定CPU Hold Time为1.5MS
IAP_HOLDTIME_3000US = (uint8_t)0x04, //设定CPU Hold Time为3MS
IAP_HOLDTIME_6000US = (uint8_t)0x00 //设定CPU Hold Time为6MS
}IAP_HoldTime_TypeDef;
#elif defined (SC92F846xB) || defined (SC92F746xB) || defined (SC92F836xB) || defined (SC92F736xB)|| defined (SC92F83Ax) || defined (SC92F73Ax)\
|| defined (SC92F84Ax) || defined (SC92F74Ax)|| defined (SC92F742x) || defined (SC92F730x) || defined (SC92F827X) || defined (SC92F837X) \
|| defined (SC92F725X) || defined (SC92F735X) || defined (SC92F732X) || defined (SC92F7490) || defined (SC93F833x) || defined (SC93F843x)\
|| defined (SC93F733x) || defined (SC93F743x)
typedef enum
{
IAP_HOLDTIME_4MS = (uint8_t)0x00, //设定CPU Hold Time为4MS
IAP_HOLDTIME_2MS = (uint8_t)0x04, //设定CPU Hold Time为2MS
IAP_HOLDTIME_1MS = (uint8_t)0x08 //设定CPU Hold Time为1MS
}IAP_HoldTime_TypeDef;
#elif defined (SC92FWxx)
typedef enum
{
IAP_HOLDTIME_3000US = (uint8_t)0x00, //设定CPU Hold Time为4MS
IAP_HOLDTIME_1500US = (uint8_t)0x04, //设定CPU Hold Time为2MS
IAP_HOLDTIME_1000US = (uint8_t)0x08 //设定CPU Hold Time为1MS
}IAP_HoldTime_TypeDef;
#elif defined(SC92F848x) || defined(SC92F748x) || defined(SC92F859x) || defined(SC92F759x) || defined (SC92L853x) || defined (SC92L753x)
typedef enum
{
IAP_HOLDTIME_Null = (uint8_t)0x00 //高速Flash不需要Hold Time
}IAP_HoldTime_TypeDef;
typedef enum
{
IAP_BTLDType_APPROM = (uint8_t)0x00, //MCU复位后从APROM复位
IAP_BTLDType_LDROM = (uint8_t)0x01, //MCU复位后从LDROM复位
} IAP_BTLDType_TypeDef;
#endif
void IAP_DeInit(void);
void IAP_SetHoldTime(IAP_HoldTime_TypeDef IAP_HoldTime);
void IAP_ProgramByte(uint16_t Address,
uint8_t Data, IAP_MemType_TypeDef IAP_MemType,
uint8_t WriteTimeLimit);
uint8_t IAP_ReadByte(uint16_t Address,
IAP_MemType_TypeDef IAP_MemType);
#if defined(SC92F848x) || defined(SC92F748x) || defined(SC92F859x) || defined(SC92F759x) || defined (SC92L853x) || defined (SC92L753x)
void IAP_SectorErase(IAP_MemType_TypeDef IAP_MemType, uint32_t IAP_SectorEraseAddress,
uint8_t WriteTimeLimit);
void IAP_BootLoaderControl(IAP_BTLDType_TypeDef IAP_BTLDType);
#endif
#endif
/******************* (C) COPYRIGHT 2020 SinOne Microelectronics *****END OF FILE****/